Subversion Repositories Code-Repo

Compare Revisions

No changes between revisions

Ignore whitespace Rev 91 → Rev 92

/Android Development/IOIODebuggerServer/.classpath
0,0 → 1,7
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
<classpathentry kind="lib" path="lib/netty-3.2.5.Final.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>
/Android Development/IOIODebuggerServer/.project
0,0 → 1,17
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>IOIODebuggerServer</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>
/Android Development/IOIODebuggerServer/.settings/org.eclipse.jdt.core.prefs
0,0 → 1,12
#Tue Nov 29 23:05:17 EST 2011
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=1.6
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.source=1.6
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/AbstractMessage$Builder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/AbstractMessage$Builder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/AbstractMessage.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/AbstractMessage.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/AbstractMessageLite$Builder$LimitedInputStream.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/AbstractMessageLite$Builder$LimitedInputStream.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/AbstractMessageLite$Builder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/AbstractMessageLite$Builder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/AbstractMessageLite.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/AbstractMessageLite.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/BlockingRpcChannel.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/BlockingRpcChannel.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/BlockingService.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/BlockingService.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/ByteString$CodedBuilder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/ByteString$CodedBuilder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/ByteString$Output.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/ByteString$Output.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/ByteString.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/ByteString.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/CodedInputStream.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/CodedInputStream.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/CodedOutputStream$OutOfSpaceException.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/CodedOutputStream$OutOfSpaceException.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/CodedOutputStream.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/CodedOutputStream.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$1.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$1.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$DescriptorProto$Builder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$DescriptorProto$Builder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$DescriptorProto$ExtensionRange$Builder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$DescriptorProto$ExtensionRange$Builder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$DescriptorProto$ExtensionRange.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$DescriptorProto$ExtensionRange.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$DescriptorProto$ExtensionRangeOrBuilder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$DescriptorProto$ExtensionRangeOrBuilder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$DescriptorProto.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$DescriptorProto.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$DescriptorProtoOrBuilder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$DescriptorProtoOrBuilder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$EnumDescriptorProto$Builder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$EnumDescriptorProto$Builder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$EnumDescriptorProto.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$EnumDescriptorProto.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$EnumDescriptorProtoOrBuilder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$EnumDescriptorProtoOrBuilder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$EnumOptions$Builder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$EnumOptions$Builder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$EnumOptions.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$EnumOptions.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$EnumOptionsOrBuilder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$EnumOptionsOrBuilder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$EnumValueDescriptorProto$Builder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$EnumValueDescriptorProto$Builder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$EnumValueDescriptorProto.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$EnumValueDescriptorProto.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$EnumValueDescriptorProtoOrBuilder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$EnumValueDescriptorProtoOrBuilder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$EnumValueOptions$Builder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$EnumValueOptions$Builder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$EnumValueOptions.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$EnumValueOptions.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$EnumValueOptionsOrBuilder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$EnumValueOptionsOrBuilder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$FieldDescriptorProto$Builder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$FieldDescriptorProto$Builder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$FieldDescriptorProto$Label$1.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$FieldDescriptorProto$Label$1.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$FieldDescriptorProto$Label.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$FieldDescriptorProto$Label.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$FieldDescriptorProto$Type$1.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$FieldDescriptorProto$Type$1.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$FieldDescriptorProto$Type.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$FieldDescriptorProto$Type.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$FieldDescriptorProto.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$FieldDescriptorProto.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$FieldDescriptorProtoOrBuilder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$FieldDescriptorProtoOrBuilder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$FieldOptions$Builder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$FieldOptions$Builder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$FieldOptions$CType$1.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$FieldOptions$CType$1.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$FieldOptions$CType.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$FieldOptions$CType.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$FieldOptions.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$FieldOptions.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$FieldOptionsOrBuilder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$FieldOptionsOrBuilder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$FileDescriptorProto$Builder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$FileDescriptorProto$Builder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$FileDescriptorProto.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$FileDescriptorProto.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$FileDescriptorProtoOrBuilder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$FileDescriptorProtoOrBuilder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$FileDescriptorSet$Builder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$FileDescriptorSet$Builder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$FileDescriptorSet.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$FileDescriptorSet.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$FileDescriptorSetOrBuilder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$FileDescriptorSetOrBuilder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$FileOptions$Builder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$FileOptions$Builder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$FileOptions$OptimizeMode$1.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$FileOptions$OptimizeMode$1.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$FileOptions$OptimizeMode.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$FileOptions$OptimizeMode.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$FileOptions.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$FileOptions.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$FileOptionsOrBuilder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$FileOptionsOrBuilder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$MessageOptions$Builder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$MessageOptions$Builder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$MessageOptions.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$MessageOptions.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$MessageOptionsOrBuilder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$MessageOptionsOrBuilder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$MethodDescriptorProto$Builder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$MethodDescriptorProto$Builder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$MethodDescriptorProto.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$MethodDescriptorProto.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$MethodDescriptorProtoOrBuilder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$MethodDescriptorProtoOrBuilder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$MethodOptions$Builder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$MethodOptions$Builder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$MethodOptions.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$MethodOptions.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$MethodOptionsOrBuilder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$MethodOptionsOrBuilder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$ServiceDescriptorProto$Builder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$ServiceDescriptorProto$Builder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$ServiceDescriptorProto.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$ServiceDescriptorProto.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$ServiceDescriptorProtoOrBuilder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$ServiceDescriptorProtoOrBuilder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$ServiceOptions$Builder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$ServiceOptions$Builder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$ServiceOptions.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$ServiceOptions.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$ServiceOptionsOrBuilder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$ServiceOptionsOrBuilder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$SourceCodeInfo$Builder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$SourceCodeInfo$Builder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$SourceCodeInfo$Location$Builder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$SourceCodeInfo$Location$Builder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$SourceCodeInfo$Location.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$SourceCodeInfo$Location.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$SourceCodeInfo$LocationOrBuilder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$SourceCodeInfo$LocationOrBuilder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$SourceCodeInfo.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$SourceCodeInfo.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$SourceCodeInfoOrBuilder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$SourceCodeInfoOrBuilder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$UninterpretedOption$Builder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$UninterpretedOption$Builder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$UninterpretedOption$NamePart$Builder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$UninterpretedOption$NamePart$Builder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$UninterpretedOption$NamePart.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$UninterpretedOption$NamePart.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$UninterpretedOption$NamePartOrBuilder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$UninterpretedOption$NamePartOrBuilder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$UninterpretedOption.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$UninterpretedOption.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$UninterpretedOptionOrBuilder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos$UninterpretedOptionOrBuilder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DescriptorProtos.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/Descriptors$Descriptor.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/Descriptors$Descriptor.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/Descriptors$DescriptorPool$DescriptorIntPair.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/Descriptors$DescriptorPool$DescriptorIntPair.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/Descriptors$DescriptorPool$PackageDescriptor.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/Descriptors$DescriptorPool$PackageDescriptor.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/Descriptors$DescriptorPool.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/Descriptors$DescriptorPool.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/Descriptors$DescriptorValidationException.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/Descriptors$DescriptorValidationException.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/Descriptors$EnumDescriptor.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/Descriptors$EnumDescriptor.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/Descriptors$EnumValueDescriptor.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/Descriptors$EnumValueDescriptor.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/Descriptors$FieldDescriptor$JavaType.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/Descriptors$FieldDescriptor$JavaType.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/Descriptors$FieldDescriptor$Type.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/Descriptors$FieldDescriptor$Type.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/Descriptors$FieldDescriptor.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/Descriptors$FieldDescriptor.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/Descriptors$FileDescriptor$InternalDescriptorAssigner.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/Descriptors$FileDescriptor$InternalDescriptorAssigner.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/Descriptors$FileDescriptor.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/Descriptors$FileDescriptor.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/Descriptors$GenericDescriptor.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/Descriptors$GenericDescriptor.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/Descriptors$MethodDescriptor.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/Descriptors$MethodDescriptor.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/Descriptors$ServiceDescriptor.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/Descriptors$ServiceDescriptor.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/Descriptors.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/Descriptors.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DynamicMessage$Builder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DynamicMessage$Builder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DynamicMessage.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/DynamicMessage.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/ExtensionRegistry$DescriptorIntPair.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/ExtensionRegistry$DescriptorIntPair.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/ExtensionRegistry$ExtensionInfo.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/ExtensionRegistry$ExtensionInfo.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/ExtensionRegistry.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/ExtensionRegistry.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/ExtensionRegistryLite$ObjectIntPair.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/ExtensionRegistryLite$ObjectIntPair.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/ExtensionRegistryLite.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/ExtensionRegistryLite.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/FieldSet$FieldDescriptorLite.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/FieldSet$FieldDescriptorLite.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/FieldSet.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/FieldSet.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/GeneratedMessage$1.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/GeneratedMessage$1.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/GeneratedMessage$Builder$BuilderParentImpl.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/GeneratedMessage$Builder$BuilderParentImpl.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/GeneratedMessage$Builder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/GeneratedMessage$Builder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/GeneratedMessage$BuilderParent.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/GeneratedMessage$BuilderParent.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/GeneratedMessage$ExtendableBuilder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/GeneratedMessage$ExtendableBuilder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/GeneratedMessage$ExtendableMessage$ExtensionWriter.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/GeneratedMessage$ExtendableMessage$ExtensionWriter.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/GeneratedMessage$ExtendableMessage.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/GeneratedMessage$ExtendableMessage.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/GeneratedMessage$ExtendableMessageOrBuilder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/GeneratedMessage$ExtendableMessageOrBuilder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/GeneratedMessage$ExtensionDescriptorRetriever.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/GeneratedMessage$ExtensionDescriptorRetriever.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/GeneratedMessage$FieldAccessorTable$FieldAccessor.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/GeneratedMessage$FieldAccessorTable$FieldAccessor.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/GeneratedMessage$FieldAccessorTable$RepeatedEnumFieldAccessor.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/GeneratedMessage$FieldAccessorTable$RepeatedEnumFieldAccessor.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/GeneratedMessage$FieldAccessorTable$RepeatedFieldAccessor.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/GeneratedMessage$FieldAccessorTable$RepeatedFieldAccessor.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/GeneratedMessage$FieldAccessorTable$RepeatedMessageFieldAccessor.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/GeneratedMessage$FieldAccessorTable$RepeatedMessageFieldAccessor.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/GeneratedMessage$FieldAccessorTable$SingularEnumFieldAccessor.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/GeneratedMessage$FieldAccessorTable$SingularEnumFieldAccessor.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/GeneratedMessage$FieldAccessorTable$SingularFieldAccessor.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/GeneratedMessage$FieldAccessorTable$SingularFieldAccessor.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/GeneratedMessage$FieldAccessorTable$SingularMessageFieldAccessor.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/GeneratedMessage$FieldAccessorTable$SingularMessageFieldAccessor.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/GeneratedMessage$FieldAccessorTable.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/GeneratedMessage$FieldAccessorTable.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/GeneratedMessage$GeneratedExtension$1.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/GeneratedMessage$GeneratedExtension$1.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/GeneratedMessage$GeneratedExtension.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/GeneratedMessage$GeneratedExtension.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/GeneratedMessage.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/GeneratedMessage.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/GeneratedMessageLite$Builder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/GeneratedMessageLite$Builder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/GeneratedMessageLite$ExtendableBuilder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/GeneratedMessageLite$ExtendableBuilder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/GeneratedMessageLite$ExtendableMessage$ExtensionWriter.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/GeneratedMessageLite$ExtendableMessage$ExtensionWriter.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/GeneratedMessageLite$ExtendableMessage.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/GeneratedMessageLite$ExtendableMessage.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/GeneratedMessageLite$ExtendableMessageOrBuilder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/GeneratedMessageLite$ExtendableMessageOrBuilder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/GeneratedMessageLite$ExtensionDescriptor.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/GeneratedMessageLite$ExtensionDescriptor.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/GeneratedMessageLite$GeneratedExtension.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/GeneratedMessageLite$GeneratedExtension.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/GeneratedMessageLite$SerializedForm.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/GeneratedMessageLite$SerializedForm.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/GeneratedMessageLite.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/GeneratedMessageLite.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/Internal$EnumLite.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/Internal$EnumLite.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/Internal$EnumLiteMap.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/Internal$EnumLiteMap.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/Internal.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/Internal.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/InvalidProtocolBufferException.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/InvalidProtocolBufferException.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/LazyStringArrayList.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/LazyStringArrayList.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/LazyStringList.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/LazyStringList.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/Message$Builder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/Message$Builder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/Message.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/Message.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/MessageLite$Builder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/MessageLite$Builder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/MessageLite.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/MessageLite.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/MessageLiteOrBuilder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/MessageLiteOrBuilder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/MessageOrBuilder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/MessageOrBuilder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/ProtocolMessageEnum.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/ProtocolMessageEnum.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/RepeatedFieldBuilder$BuilderExternalList.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/RepeatedFieldBuilder$BuilderExternalList.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/RepeatedFieldBuilder$MessageExternalList.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/RepeatedFieldBuilder$MessageExternalList.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/RepeatedFieldBuilder$MessageOrBuilderExternalList.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/RepeatedFieldBuilder$MessageOrBuilderExternalList.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/RepeatedFieldBuilder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/RepeatedFieldBuilder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/RpcCallback.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/RpcCallback.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/RpcChannel.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/RpcChannel.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/RpcController.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/RpcController.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/RpcUtil$1.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/RpcUtil$1.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/RpcUtil$2.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/RpcUtil$2.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/RpcUtil$AlreadyCalledException.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/RpcUtil$AlreadyCalledException.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/RpcUtil.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/RpcUtil.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/Service.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/Service.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/ServiceException.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/ServiceException.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/SingleFieldBuilder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/SingleFieldBuilder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/SmallSortedMap$1.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/SmallSortedMap$1.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/SmallSortedMap$EmptySet$1.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/SmallSortedMap$EmptySet$1.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/SmallSortedMap$EmptySet$2.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/SmallSortedMap$EmptySet$2.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/SmallSortedMap$EmptySet.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/SmallSortedMap$EmptySet.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/SmallSortedMap$Entry.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/SmallSortedMap$Entry.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/SmallSortedMap$EntryIterator.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/SmallSortedMap$EntryIterator.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/SmallSortedMap$EntrySet.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/SmallSortedMap$EntrySet.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/SmallSortedMap.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/SmallSortedMap.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/TextFormat$InvalidEscapeSequenceException.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/TextFormat$InvalidEscapeSequenceException.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/TextFormat$ParseException.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/TextFormat$ParseException.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/TextFormat$Printer.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/TextFormat$Printer.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/TextFormat$TextGenerator.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/TextFormat$TextGenerator.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/TextFormat$Tokenizer.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/TextFormat$Tokenizer.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/TextFormat.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/TextFormat.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/UninitializedMessageException.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/UninitializedMessageException.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/UnknownFieldSet$Builder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/UnknownFieldSet$Builder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/UnknownFieldSet$Field$Builder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/UnknownFieldSet$Field$Builder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/UnknownFieldSet$Field.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/UnknownFieldSet$Field.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/UnknownFieldSet.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/UnknownFieldSet.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/UnmodifiableLazyStringList$1.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/UnmodifiableLazyStringList$1.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/UnmodifiableLazyStringList$2.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/UnmodifiableLazyStringList$2.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/UnmodifiableLazyStringList.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/UnmodifiableLazyStringList.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/WireFormat$FieldType$1.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/WireFormat$FieldType$1.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/WireFormat$FieldType$2.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/WireFormat$FieldType$2.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/WireFormat$FieldType$3.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/WireFormat$FieldType$3.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/WireFormat$FieldType$4.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/WireFormat$FieldType$4.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/WireFormat$FieldType.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/WireFormat$FieldType.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/WireFormat$JavaType.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/WireFormat$JavaType.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/WireFormat.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/com/google/protobuf/WireFormat.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/ioio/debugger/server/Debug Protocol Details.txt
0,0 → 1,24
Network Debug Protocol Message Type Details:
 
Type# Description
1 General ACK_SUCCESS
2 General ACK_FAILURE
 
 
10 Check if connection is ok
11 Connection ok response
12 Connection not ok response
13 Reset board (hard reset)
 
50 Start pin
Type: InAnalog Pin:# Freq:#
Type: InDigital Pin:# Freq:# Mode:[Float/Pull Up/Pull Down]
Type: OutDigital Pin:# State:[Low/High] Boolean:[True/False]
51 Stop pin
Pin:#
52 Remove pin
Pin:#
70 Send new data
Pin:# Data:#
/Android Development/IOIODebuggerServer/bin/ioio/debugger/server/IOIODebuggerServer.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/ioio/debugger/server/IOIODebuggerServer.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/ioio/debugger/server/IOIODebuggerServerHandler.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/ioio/debugger/server/IOIODebuggerServerHandler.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/ioio/debugger/server/IOIODebuggerServerPipelineFactory.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/ioio/debugger/server/IOIODebuggerServerPipelineFactory.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/ioio/debugger/server/Main.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/ioio/debugger/server/Main.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/ioio/debugger/server/NetworkIOIOProtocol$1.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/ioio/debugger/server/NetworkIOIOProtocol$1.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/ioio/debugger/server/NetworkIOIOProtocol$Message$Builder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/ioio/debugger/server/NetworkIOIOProtocol$Message$Builder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/ioio/debugger/server/NetworkIOIOProtocol$Message.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/ioio/debugger/server/NetworkIOIOProtocol$Message.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/ioio/debugger/server/NetworkIOIOProtocol$MessageOrBuilder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/ioio/debugger/server/NetworkIOIOProtocol$MessageOrBuilder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/ioio/debugger/server/NetworkIOIOProtocol$TrackingMessage$Builder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/ioio/debugger/server/NetworkIOIOProtocol$TrackingMessage$Builder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/ioio/debugger/server/NetworkIOIOProtocol$TrackingMessage.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/ioio/debugger/server/NetworkIOIOProtocol$TrackingMessage.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/ioio/debugger/server/NetworkIOIOProtocol$TrackingMessageOrBuilder.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/ioio/debugger/server/NetworkIOIOProtocol$TrackingMessageOrBuilder.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/ioio/debugger/server/NetworkIOIOProtocol.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/ioio/debugger/server/NetworkIOIOProtocol.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/ioio/debugger/server/NetworkIOIOProtocol.proto
0,0 → 1,17
package ioio.debugger.server;
 
message TrackingMessage {
required int32 id = 1;
required int32 type = 2;
repeated Message message = 3;
}
 
message Message {
optional int32 pin = 1;
repeated double data = 2;
optional string type = 3;
optional int64 freq = 4;
optional string mode = 5;
optional string state = 6;
optional bool boolean = 7;
}
/Android Development/IOIODebuggerServer/bin/ioio/debugger/server/ServerHelper.class
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/bin/ioio/debugger/server/ServerHelper.class
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/bin/ioio/debugger/server/build_protocol.sh
0,0 → 1,0
protoc NetworkIOIOProtocol.proto --java_out=../../../
/Android Development/IOIODebuggerServer/lib/netty-3.2.5.Final.jar
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/Android Development/IOIODebuggerServer/lib/netty-3.2.5.Final.jar
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Android Development/IOIODebuggerServer/src/com/google/protobuf/AbstractMessage.java
0,0 → 1,764
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// http://code.google.com/p/protobuf/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
package com.google.protobuf;
 
import com.google.protobuf.Descriptors.Descriptor;
import com.google.protobuf.Descriptors.FieldDescriptor;
import com.google.protobuf.Internal.EnumLite;
 
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
 
/**
* A partial implementation of the {@link Message} interface which implements
* as many methods of that interface as possible in terms of other methods.
*
* @author kenton@google.com Kenton Varda
*/
public abstract class AbstractMessage extends AbstractMessageLite
implements Message {
@SuppressWarnings("unchecked")
public boolean isInitialized() {
// Check that all required fields are present.
for (final FieldDescriptor field : getDescriptorForType().getFields()) {
if (field.isRequired()) {
if (!hasField(field)) {
return false;
}
}
}
 
// Check that embedded messages are initialized.
for (final Map.Entry<FieldDescriptor, Object> entry :
getAllFields().entrySet()) {
final FieldDescriptor field = entry.getKey();
if (field.getJavaType() == FieldDescriptor.JavaType.MESSAGE) {
if (field.isRepeated()) {
for (final Message element : (List<Message>) entry.getValue()) {
if (!element.isInitialized()) {
return false;
}
}
} else {
if (!((Message) entry.getValue()).isInitialized()) {
return false;
}
}
}
}
 
return true;
}
 
@Override
public final String toString() {
return TextFormat.printToString(this);
}
 
public void writeTo(final CodedOutputStream output) throws IOException {
final boolean isMessageSet =
getDescriptorForType().getOptions().getMessageSetWireFormat();
 
for (final Map.Entry<FieldDescriptor, Object> entry :
getAllFields().entrySet()) {
final FieldDescriptor field = entry.getKey();
final Object value = entry.getValue();
if (isMessageSet && field.isExtension() &&
field.getType() == FieldDescriptor.Type.MESSAGE &&
!field.isRepeated()) {
output.writeMessageSetExtension(field.getNumber(), (Message) value);
} else {
FieldSet.writeField(field, value, output);
}
}
 
final UnknownFieldSet unknownFields = getUnknownFields();
if (isMessageSet) {
unknownFields.writeAsMessageSetTo(output);
} else {
unknownFields.writeTo(output);
}
}
 
private int memoizedSize = -1;
 
public int getSerializedSize() {
int size = memoizedSize;
if (size != -1) {
return size;
}
 
size = 0;
final boolean isMessageSet =
getDescriptorForType().getOptions().getMessageSetWireFormat();
 
for (final Map.Entry<FieldDescriptor, Object> entry :
getAllFields().entrySet()) {
final FieldDescriptor field = entry.getKey();
final Object value = entry.getValue();
if (isMessageSet && field.isExtension() &&
field.getType() == FieldDescriptor.Type.MESSAGE &&
!field.isRepeated()) {
size += CodedOutputStream.computeMessageSetExtensionSize(
field.getNumber(), (Message) value);
} else {
size += FieldSet.computeFieldSize(field, value);
}
}
 
final UnknownFieldSet unknownFields = getUnknownFields();
if (isMessageSet) {
size += unknownFields.getSerializedSizeAsMessageSet();
} else {
size += unknownFields.getSerializedSize();
}
 
memoizedSize = size;
return size;
}
 
@Override
public boolean equals(final Object other) {
if (other == this) {
return true;
}
if (!(other instanceof Message)) {
return false;
}
final Message otherMessage = (Message) other;
if (getDescriptorForType() != otherMessage.getDescriptorForType()) {
return false;
}
return getAllFields().equals(otherMessage.getAllFields()) &&
getUnknownFields().equals(otherMessage.getUnknownFields());
}
 
@Override
public int hashCode() {
int hash = 41;
hash = (19 * hash) + getDescriptorForType().hashCode();
hash = hashFields(hash, getAllFields());
hash = (29 * hash) + getUnknownFields().hashCode();
return hash;
}
 
/** Get a hash code for given fields and values, using the given seed. */
@SuppressWarnings("unchecked")
protected int hashFields(int hash, Map<FieldDescriptor, Object> map) {
for (Map.Entry<FieldDescriptor, Object> entry : map.entrySet()) {
FieldDescriptor field = entry.getKey();
Object value = entry.getValue();
hash = (37 * hash) + field.getNumber();
if (field.getType() != FieldDescriptor.Type.ENUM){
hash = (53 * hash) + value.hashCode();
} else if (field.isRepeated()) {
List<? extends EnumLite> list = (List<? extends EnumLite>) value;
hash = (53 * hash) + hashEnumList(list);
} else {
hash = (53 * hash) + hashEnum((EnumLite) value);
}
}
return hash;
}
 
/**
* Helper method for implementing {@link Message#hashCode()}.
* @see Boolean#hashCode()
*/
protected static int hashLong(long n) {
return (int) (n ^ (n >>> 32));
}
 
/**
* Helper method for implementing {@link Message#hashCode()}.
* @see Boolean#hashCode()
*/
protected static int hashBoolean(boolean b) {
return b ? 1231 : 1237;
}
 
/**
* Helper method for implementing {@link Message#hashCode()}.
* <p>
* This is needed because {@link java.lang.Enum#hashCode()} is final, but we
* need to use the field number as the hash code to ensure compatibility
* between statically and dynamically generated enum objects.
*/
protected static int hashEnum(EnumLite e) {
return e.getNumber();
}
 
/** Helper method for implementing {@link Message#hashCode()}. */
protected static int hashEnumList(List<? extends EnumLite> list) {
int hash = 1;
for (EnumLite e : list) {
hash = 31 * hash + hashEnum(e);
}
return hash;
}
 
// =================================================================
 
/**
* A partial implementation of the {@link Message.Builder} interface which
* implements as many methods of that interface as possible in terms of
* other methods.
*/
@SuppressWarnings("unchecked")
public static abstract class Builder<BuilderType extends Builder>
extends AbstractMessageLite.Builder<BuilderType>
implements Message.Builder {
// The compiler produces an error if this is not declared explicitly.
@Override
public abstract BuilderType clone();
 
public BuilderType clear() {
for (final Map.Entry<FieldDescriptor, Object> entry :
getAllFields().entrySet()) {
clearField(entry.getKey());
}
return (BuilderType) this;
}
 
public BuilderType mergeFrom(final Message other) {
if (other.getDescriptorForType() != getDescriptorForType()) {
throw new IllegalArgumentException(
"mergeFrom(Message) can only merge messages of the same type.");
}
 
// Note: We don't attempt to verify that other's fields have valid
// types. Doing so would be a losing battle. We'd have to verify
// all sub-messages as well, and we'd have to make copies of all of
// them to insure that they don't change after verification (since
// the Message interface itself cannot enforce immutability of
// implementations).
// TODO(kenton): Provide a function somewhere called makeDeepCopy()
// which allows people to make secure deep copies of messages.
 
for (final Map.Entry<FieldDescriptor, Object> entry :
other.getAllFields().entrySet()) {
final FieldDescriptor field = entry.getKey();
if (field.isRepeated()) {
for (final Object element : (List)entry.getValue()) {
addRepeatedField(field, element);
}
} else if (field.getJavaType() == FieldDescriptor.JavaType.MESSAGE) {
final Message existingValue = (Message)getField(field);
if (existingValue == existingValue.getDefaultInstanceForType()) {
setField(field, entry.getValue());
} else {
setField(field,
existingValue.newBuilderForType()
.mergeFrom(existingValue)
.mergeFrom((Message)entry.getValue())
.build());
}
} else {
setField(field, entry.getValue());
}
}
 
mergeUnknownFields(other.getUnknownFields());
 
return (BuilderType) this;
}
 
@Override
public BuilderType mergeFrom(final CodedInputStream input)
throws IOException {
return mergeFrom(input, ExtensionRegistry.getEmptyRegistry());
}
 
@Override
public BuilderType mergeFrom(
final CodedInputStream input,
final ExtensionRegistryLite extensionRegistry)
throws IOException {
final UnknownFieldSet.Builder unknownFields =
UnknownFieldSet.newBuilder(getUnknownFields());
while (true) {
final int tag = input.readTag();
if (tag == 0) {
break;
}
 
if (!mergeFieldFrom(input, unknownFields, extensionRegistry,
this, tag)) {
// end group tag
break;
}
}
setUnknownFields(unknownFields.build());
return (BuilderType) this;
}
 
/**
* Like {@link #mergeFrom(CodedInputStream, UnknownFieldSet.Builder,
* ExtensionRegistryLite, Message.Builder)}, but parses a single field.
* Package-private because it is used by GeneratedMessage.ExtendableMessage.
* @param tag The tag, which should have already been read.
* @return {@code true} unless the tag is an end-group tag.
*/
static boolean mergeFieldFrom(
final CodedInputStream input,
final UnknownFieldSet.Builder unknownFields,
final ExtensionRegistryLite extensionRegistry,
final Message.Builder builder,
final int tag) throws IOException {
final Descriptor type = builder.getDescriptorForType();
 
if (type.getOptions().getMessageSetWireFormat() &&
tag == WireFormat.MESSAGE_SET_ITEM_TAG) {
mergeMessageSetExtensionFromCodedStream(
input, unknownFields, extensionRegistry, builder);
return true;
}
 
final int wireType = WireFormat.getTagWireType(tag);
final int fieldNumber = WireFormat.getTagFieldNumber(tag);
 
final FieldDescriptor field;
Message defaultInstance = null;
 
if (type.isExtensionNumber(fieldNumber)) {
// extensionRegistry may be either ExtensionRegistry or
// ExtensionRegistryLite. Since the type we are parsing is a full
// message, only a full ExtensionRegistry could possibly contain
// extensions of it. Otherwise we will treat the registry as if it
// were empty.
if (extensionRegistry instanceof ExtensionRegistry) {
final ExtensionRegistry.ExtensionInfo extension =
((ExtensionRegistry) extensionRegistry)
.findExtensionByNumber(type, fieldNumber);
if (extension == null) {
field = null;
} else {
field = extension.descriptor;
defaultInstance = extension.defaultInstance;
if (defaultInstance == null &&
field.getJavaType() == FieldDescriptor.JavaType.MESSAGE) {
throw new IllegalStateException(
"Message-typed extension lacked default instance: " +
field.getFullName());
}
}
} else {
field = null;
}
} else {
field = type.findFieldByNumber(fieldNumber);
}
 
boolean unknown = false;
boolean packed = false;
if (field == null) {
unknown = true; // Unknown field.
} else if (wireType == FieldSet.getWireFormatForFieldType(
field.getLiteType(),
false /* isPacked */)) {
packed = false;
} else if (field.isPackable() &&
wireType == FieldSet.getWireFormatForFieldType(
field.getLiteType(),
true /* isPacked */)) {
packed = true;
} else {
unknown = true; // Unknown wire type.
}
 
if (unknown) { // Unknown field or wrong wire type. Skip.
return unknownFields.mergeFieldFrom(tag, input);
}
 
if (packed) {
final int length = input.readRawVarint32();
final int limit = input.pushLimit(length);
if (field.getLiteType() == WireFormat.FieldType.ENUM) {
while (input.getBytesUntilLimit() > 0) {
final int rawValue = input.readEnum();
final Object value = field.getEnumType().findValueByNumber(rawValue);
if (value == null) {
// If the number isn't recognized as a valid value for this
// enum, drop it (don't even add it to unknownFields).
return true;
}
builder.addRepeatedField(field, value);
}
} else {
while (input.getBytesUntilLimit() > 0) {
final Object value =
FieldSet.readPrimitiveField(input, field.getLiteType());
builder.addRepeatedField(field, value);
}
}
input.popLimit(limit);
} else {
final Object value;
switch (field.getType()) {
case GROUP: {
final Message.Builder subBuilder;
if (defaultInstance != null) {
subBuilder = defaultInstance.newBuilderForType();
} else {
subBuilder = builder.newBuilderForField(field);
}
if (!field.isRepeated()) {
subBuilder.mergeFrom((Message) builder.getField(field));
}
input.readGroup(field.getNumber(), subBuilder, extensionRegistry);
value = subBuilder.build();
break;
}
case MESSAGE: {
final Message.Builder subBuilder;
if (defaultInstance != null) {
subBuilder = defaultInstance.newBuilderForType();
} else {
subBuilder = builder.newBuilderForField(field);
}
if (!field.isRepeated()) {
subBuilder.mergeFrom((Message) builder.getField(field));
}
input.readMessage(subBuilder, extensionRegistry);
value = subBuilder.build();
break;
}
case ENUM:
final int rawValue = input.readEnum();
value = field.getEnumType().findValueByNumber(rawValue);
// If the number isn't recognized as a valid value for this enum,
// drop it.
if (value == null) {
unknownFields.mergeVarintField(fieldNumber, rawValue);
return true;
}
break;
default:
value = FieldSet.readPrimitiveField(input, field.getLiteType());
break;
}
 
if (field.isRepeated()) {
builder.addRepeatedField(field, value);
} else {
builder.setField(field, value);
}
}
 
return true;
}
 
/** Called by {@code #mergeFieldFrom()} to parse a MessageSet extension. */
private static void mergeMessageSetExtensionFromCodedStream(
final CodedInputStream input,
final UnknownFieldSet.Builder unknownFields,
final ExtensionRegistryLite extensionRegistry,
final Message.Builder builder) throws IOException {
final Descriptor type = builder.getDescriptorForType();
 
// The wire format for MessageSet is:
// message MessageSet {
// repeated group Item = 1 {
// required int32 typeId = 2;
// required bytes message = 3;
// }
// }
// "typeId" is the extension's field number. The extension can only be
// a message type, where "message" contains the encoded bytes of that
// message.
//
// In practice, we will probably never see a MessageSet item in which
// the message appears before the type ID, or where either field does not
// appear exactly once. However, in theory such cases are valid, so we
// should be prepared to accept them.
 
int typeId = 0;
ByteString rawBytes = null; // If we encounter "message" before "typeId"
Message.Builder subBuilder = null;
FieldDescriptor field = null;
 
while (true) {
final int tag = input.readTag();
if (tag == 0) {
break;
}
 
if (tag == WireFormat.MESSAGE_SET_TYPE_ID_TAG) {
typeId = input.readUInt32();
// Zero is not a valid type ID.
if (typeId != 0) {
final ExtensionRegistry.ExtensionInfo extension;
 
// extensionRegistry may be either ExtensionRegistry or
// ExtensionRegistryLite. Since the type we are parsing is a full
// message, only a full ExtensionRegistry could possibly contain
// extensions of it. Otherwise we will treat the registry as if it
// were empty.
if (extensionRegistry instanceof ExtensionRegistry) {
extension = ((ExtensionRegistry) extensionRegistry)
.findExtensionByNumber(type, typeId);
} else {
extension = null;
}
 
if (extension != null) {
field = extension.descriptor;
subBuilder = extension.defaultInstance.newBuilderForType();
final Message originalMessage = (Message)builder.getField(field);
if (originalMessage != null) {
subBuilder.mergeFrom(originalMessage);
}
if (rawBytes != null) {
// We already encountered the message. Parse it now.
subBuilder.mergeFrom(
CodedInputStream.newInstance(rawBytes.newInput()));
rawBytes = null;
}
} else {
// Unknown extension number. If we already saw data, put it
// in rawBytes.
if (rawBytes != null) {
unknownFields.mergeField(typeId,
UnknownFieldSet.Field.newBuilder()
.addLengthDelimited(rawBytes)
.build());
rawBytes = null;
}
}
}
} else if (tag == WireFormat.MESSAGE_SET_MESSAGE_TAG) {
if (typeId == 0) {
// We haven't seen a type ID yet, so we have to store the raw bytes
// for now.
rawBytes = input.readBytes();
} else if (subBuilder == null) {
// We don't know how to parse this. Ignore it.
unknownFields.mergeField(typeId,
UnknownFieldSet.Field.newBuilder()
.addLengthDelimited(input.readBytes())
.build());
} else {
// We already know the type, so we can parse directly from the input
// with no copying. Hooray!
input.readMessage(subBuilder, extensionRegistry);
}
} else {
// Unknown tag. Skip it.
if (!input.skipField(tag)) {
break; // end of group
}
}
}
 
input.checkLastTagWas(WireFormat.MESSAGE_SET_ITEM_END_TAG);
 
if (subBuilder != null) {
builder.setField(field, subBuilder.build());
}
}
 
public BuilderType mergeUnknownFields(final UnknownFieldSet unknownFields) {
setUnknownFields(
UnknownFieldSet.newBuilder(getUnknownFields())
.mergeFrom(unknownFields)
.build());
return (BuilderType) this;
}
 
/**
* Construct an UninitializedMessageException reporting missing fields in
* the given message.
*/
protected static UninitializedMessageException
newUninitializedMessageException(Message message) {
return new UninitializedMessageException(findMissingFields(message));
}
 
/**
* Populates {@code this.missingFields} with the full "path" of each
* missing required field in the given message.
*/
private static List<String> findMissingFields(final Message message) {
final List<String> results = new ArrayList<String>();
findMissingFields(message, "", results);
return results;
}
 
/** Recursive helper implementing {@link #findMissingFields(Message)}. */
private static void findMissingFields(final Message message,
final String prefix,
final List<String> results) {
for (final FieldDescriptor field :
message.getDescriptorForType().getFields()) {
if (field.isRequired() && !message.hasField(field)) {
results.add(prefix + field.getName());
}
}
 
for (final Map.Entry<FieldDescriptor, Object> entry :
message.getAllFields().entrySet()) {
final FieldDescriptor field = entry.getKey();
final Object value = entry.getValue();
 
if (field.getJavaType() == FieldDescriptor.JavaType.MESSAGE) {
if (field.isRepeated()) {
int i = 0;
for (final Object element : (List) value) {
findMissingFields((Message) element,
subMessagePrefix(prefix, field, i++),
results);
}
} else {
if (message.hasField(field)) {
findMissingFields((Message) value,
subMessagePrefix(prefix, field, -1),
results);
}
}
}
}
}
 
private static String subMessagePrefix(final String prefix,
final FieldDescriptor field,
final int index) {
final StringBuilder result = new StringBuilder(prefix);
if (field.isExtension()) {
result.append('(')
.append(field.getFullName())
.append(')');
} else {
result.append(field.getName());
}
if (index != -1) {
result.append('[')
.append(index)
.append(']');
}
result.append('.');
return result.toString();
}
 
// ===============================================================
// The following definitions seem to be required in order to make javac
// not produce weird errors like:
//
// java/com/google/protobuf/DynamicMessage.java:203: types
// com.google.protobuf.AbstractMessage.Builder<
// com.google.protobuf.DynamicMessage.Builder> and
// com.google.protobuf.AbstractMessage.Builder<
// com.google.protobuf.DynamicMessage.Builder> are incompatible; both
// define mergeFrom(com.google.protobuf.ByteString), but with unrelated
// return types.
//
// Strangely, these lines are only needed if javac is invoked separately
// on AbstractMessage.java and AbstractMessageLite.java. If javac is
// invoked on both simultaneously, it works. (Or maybe the important
// point is whether or not DynamicMessage.java is compiled together with
// AbstractMessageLite.java -- not sure.) I suspect this is a compiler
// bug.
 
@Override
public BuilderType mergeFrom(final ByteString data)
throws InvalidProtocolBufferException {
return super.mergeFrom(data);
}
 
@Override
public BuilderType mergeFrom(
final ByteString data,
final ExtensionRegistryLite extensionRegistry)
throws InvalidProtocolBufferException {
return super.mergeFrom(data, extensionRegistry);
}
 
@Override
public BuilderType mergeFrom(final byte[] data)
throws InvalidProtocolBufferException {
return super.mergeFrom(data);
}
 
@Override
public BuilderType mergeFrom(
final byte[] data, final int off, final int len)
throws InvalidProtocolBufferException {
return super.mergeFrom(data, off, len);
}
 
@Override
public BuilderType mergeFrom(
final byte[] data,
final ExtensionRegistryLite extensionRegistry)
throws InvalidProtocolBufferException {
return super.mergeFrom(data, extensionRegistry);
}
 
@Override
public BuilderType mergeFrom(
final byte[] data, final int off, final int len,
final ExtensionRegistryLite extensionRegistry)
throws InvalidProtocolBufferException {
return super.mergeFrom(data, off, len, extensionRegistry);
}
 
@Override
public BuilderType mergeFrom(final InputStream input)
throws IOException {
return super.mergeFrom(input);
}
 
@Override
public BuilderType mergeFrom(
final InputStream input,
final ExtensionRegistryLite extensionRegistry)
throws IOException {
return super.mergeFrom(input, extensionRegistry);
}
 
@Override
public boolean mergeDelimitedFrom(final InputStream input)
throws IOException {
return super.mergeDelimitedFrom(input);
}
 
@Override
public boolean mergeDelimitedFrom(
final InputStream input,
final ExtensionRegistryLite extensionRegistry)
throws IOException {
return super.mergeDelimitedFrom(input, extensionRegistry);
}
 
}
}
/Android Development/IOIODebuggerServer/src/com/google/protobuf/AbstractMessageLite.java
0,0 → 1,325
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// http://code.google.com/p/protobuf/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
package com.google.protobuf;
 
import java.io.FilterInputStream;
import java.io.InputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Collection;
 
/**
* A partial implementation of the {@link MessageLite} interface which
* implements as many methods of that interface as possible in terms of other
* methods.
*
* @author kenton@google.com Kenton Varda
*/
public abstract class AbstractMessageLite implements MessageLite {
public ByteString toByteString() {
try {
final ByteString.CodedBuilder out =
ByteString.newCodedBuilder(getSerializedSize());
writeTo(out.getCodedOutput());
return out.build();
} catch (IOException e) {
throw new RuntimeException(
"Serializing to a ByteString threw an IOException (should " +
"never happen).", e);
}
}
 
public byte[] toByteArray() {
try {
final byte[] result = new byte[getSerializedSize()];
final CodedOutputStream output = CodedOutputStream.newInstance(result);
writeTo(output);
output.checkNoSpaceLeft();
return result;
} catch (IOException e) {
throw new RuntimeException(
"Serializing to a byte array threw an IOException " +
"(should never happen).", e);
}
}
 
public void writeTo(final OutputStream output) throws IOException {
final int bufferSize =
CodedOutputStream.computePreferredBufferSize(getSerializedSize());
final CodedOutputStream codedOutput =
CodedOutputStream.newInstance(output, bufferSize);
writeTo(codedOutput);
codedOutput.flush();
}
 
public void writeDelimitedTo(final OutputStream output) throws IOException {
final int serialized = getSerializedSize();
final int bufferSize = CodedOutputStream.computePreferredBufferSize(
CodedOutputStream.computeRawVarint32Size(serialized) + serialized);
final CodedOutputStream codedOutput =
CodedOutputStream.newInstance(output, bufferSize);
codedOutput.writeRawVarint32(serialized);
writeTo(codedOutput);
codedOutput.flush();
}
 
/**
* A partial implementation of the {@link Message.Builder} interface which
* implements as many methods of that interface as possible in terms of
* other methods.
*/
@SuppressWarnings("unchecked")
public static abstract class Builder<BuilderType extends Builder>
implements MessageLite.Builder {
// The compiler produces an error if this is not declared explicitly.
@Override
public abstract BuilderType clone();
 
public BuilderType mergeFrom(final CodedInputStream input)
throws IOException {
return mergeFrom(input, ExtensionRegistryLite.getEmptyRegistry());
}
 
// Re-defined here for return type covariance.
public abstract BuilderType mergeFrom(
final CodedInputStream input,
final ExtensionRegistryLite extensionRegistry)
throws IOException;
 
public BuilderType mergeFrom(final ByteString data)
throws InvalidProtocolBufferException {
try {
final CodedInputStream input = data.newCodedInput();
mergeFrom(input);
input.checkLastTagWas(0);
return (BuilderType) this;
} catch (InvalidProtocolBufferException e) {
throw e;
} catch (IOException e) {
throw new RuntimeException(
"Reading from a ByteString threw an IOException (should " +
"never happen).", e);
}
}
 
public BuilderType mergeFrom(
final ByteString data,
final ExtensionRegistryLite extensionRegistry)
throws InvalidProtocolBufferException {
try {
final CodedInputStream input = data.newCodedInput();
mergeFrom(input, extensionRegistry);
input.checkLastTagWas(0);
return (BuilderType) this;
} catch (InvalidProtocolBufferException e) {
throw e;
} catch (IOException e) {
throw new RuntimeException(
"Reading from a ByteString threw an IOException (should " +
"never happen).", e);
}
}
 
public BuilderType mergeFrom(final byte[] data)
throws InvalidProtocolBufferException {
return mergeFrom(data, 0, data.length);
}
 
public BuilderType mergeFrom(final byte[] data, final int off,
final int len)
throws InvalidProtocolBufferException {
try {
final CodedInputStream input =
CodedInputStream.newInstance(data, off, len);
mergeFrom(input);
input.checkLastTagWas(0);
return (BuilderType) this;
} catch (InvalidProtocolBufferException e) {
throw e;
} catch (IOException e) {
throw new RuntimeException(
"Reading from a byte array threw an IOException (should " +
"never happen).", e);
}
}
 
public BuilderType mergeFrom(
final byte[] data,
final ExtensionRegistryLite extensionRegistry)
throws InvalidProtocolBufferException {
return mergeFrom(data, 0, data.length, extensionRegistry);
}
 
public BuilderType mergeFrom(
final byte[] data, final int off, final int len,
final ExtensionRegistryLite extensionRegistry)
throws InvalidProtocolBufferException {
try {
final CodedInputStream input =
CodedInputStream.newInstance(data, off, len);
mergeFrom(input, extensionRegistry);
input.checkLastTagWas(0);
return (BuilderType) this;
} catch (InvalidProtocolBufferException e) {
throw e;
} catch (IOException e) {
throw new RuntimeException(
"Reading from a byte array threw an IOException (should " +
"never happen).", e);
}
}
 
public BuilderType mergeFrom(final InputStream input) throws IOException {
final CodedInputStream codedInput = CodedInputStream.newInstance(input);
mergeFrom(codedInput);
codedInput.checkLastTagWas(0);
return (BuilderType) this;
}
 
public BuilderType mergeFrom(
final InputStream input,
final ExtensionRegistryLite extensionRegistry)
throws IOException {
final CodedInputStream codedInput = CodedInputStream.newInstance(input);
mergeFrom(codedInput, extensionRegistry);
codedInput.checkLastTagWas(0);
return (BuilderType) this;
}
 
/**
* An InputStream implementations which reads from some other InputStream
* but is limited to a particular number of bytes. Used by
* mergeDelimitedFrom(). This is intentionally package-private so that
* UnknownFieldSet can share it.
*/
static final class LimitedInputStream extends FilterInputStream {
private int limit;
 
LimitedInputStream(InputStream in, int limit) {
super(in);
this.limit = limit;
}
 
@Override
public int available() throws IOException {
return Math.min(super.available(), limit);
}
 
@Override
public int read() throws IOException {
if (limit <= 0) {
return -1;
}
final int result = super.read();
if (result >= 0) {
--limit;
}
return result;
}
 
@Override
public int read(final byte[] b, final int off, int len)
throws IOException {
if (limit <= 0) {
return -1;
}
len = Math.min(len, limit);
final int result = super.read(b, off, len);
if (result >= 0) {
limit -= result;
}
return result;
}
 
@Override
public long skip(final long n) throws IOException {
final long result = super.skip(Math.min(n, limit));
if (result >= 0) {
limit -= result;
}
return result;
}
}
 
public boolean mergeDelimitedFrom(
final InputStream input,
final ExtensionRegistryLite extensionRegistry)
throws IOException {
final int firstByte = input.read();
if (firstByte == -1) {
return false;
}
final int size = CodedInputStream.readRawVarint32(firstByte, input);
final InputStream limitedInput = new LimitedInputStream(input, size);
mergeFrom(limitedInput, extensionRegistry);
return true;
}
 
public boolean mergeDelimitedFrom(final InputStream input)
throws IOException {
return mergeDelimitedFrom(input,
ExtensionRegistryLite.getEmptyRegistry());
}
 
/**
* Construct an UninitializedMessageException reporting missing fields in
* the given message.
*/
protected static UninitializedMessageException
newUninitializedMessageException(MessageLite message) {
return new UninitializedMessageException(message);
}
 
/**
* Adds the {@code values} to the {@code list}. This is a helper method
* used by generated code. Users should ignore it.
*
* @throws NullPointerException if any of the elements of {@code values} is
* null.
*/
protected static <T> void addAll(final Iterable<T> values,
final Collection<? super T> list) {
for (final T value : values) {
if (value == null) {
throw new NullPointerException();
}
}
if (values instanceof Collection) {
final Collection<T> collection = (Collection<T>) values;
list.addAll(collection);
} else {
for (final T value : values) {
list.add(value);
}
}
}
}
}
/Android Development/IOIODebuggerServer/src/com/google/protobuf/BlockingRpcChannel.java
0,0 → 1,51
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// http://code.google.com/p/protobuf/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
package com.google.protobuf;
 
/**
* <p>Abstract interface for a blocking RPC channel. {@code BlockingRpcChannel}
* is the blocking equivalent to {@link RpcChannel}.
*
* @author kenton@google.com Kenton Varda
* @author cpovirk@google.com Chris Povirk
*/
public interface BlockingRpcChannel {
/**
* Call the given method of the remote service and blocks until it returns.
* {@code callBlockingMethod()} is the blocking equivalent to
* {@link RpcChannel#callMethod}.
*/
Message callBlockingMethod(
Descriptors.MethodDescriptor method,
RpcController controller,
Message request,
Message responsePrototype) throws ServiceException;
}
/Android Development/IOIODebuggerServer/src/com/google/protobuf/BlockingService.java
0,0 → 1,64
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// http://code.google.com/p/protobuf/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
package com.google.protobuf;
 
/**
* Blocking equivalent to {@link Service}.
*
* @author kenton@google.com Kenton Varda
* @author cpovirk@google.com Chris Povirk
*/
public interface BlockingService {
/**
* Equivalent to {@link Service#getDescriptorForType}.
*/
Descriptors.ServiceDescriptor getDescriptorForType();
 
/**
* Equivalent to {@link Service#callMethod}, except that
* {@code callBlockingMethod()} returns the result of the RPC or throws a
* {@link ServiceException} if there is a failure, rather than passing the
* information to a callback.
*/
Message callBlockingMethod(Descriptors.MethodDescriptor method,
RpcController controller,
Message request) throws ServiceException;
 
/**
* Equivalent to {@link Service#getRequestPrototype}.
*/
Message getRequestPrototype(Descriptors.MethodDescriptor method);
 
/**
* Equivalent to {@link Service#getResponsePrototype}.
*/
Message getResponsePrototype(Descriptors.MethodDescriptor method);
}
/Android Development/IOIODebuggerServer/src/com/google/protobuf/ByteString.java
0,0 → 1,403
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// http://code.google.com/p/protobuf/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
package com.google.protobuf;
 
import java.io.InputStream;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.FilterOutputStream;
import java.io.UnsupportedEncodingException;
import java.nio.ByteBuffer;
import java.util.List;
 
/**
* Immutable array of bytes.
*
* @author crazybob@google.com Bob Lee
* @author kenton@google.com Kenton Varda
*/
public final class ByteString {
private final byte[] bytes;
 
private ByteString(final byte[] bytes) {
this.bytes = bytes;
}
 
/**
* Gets the byte at the given index.
*
* @throws ArrayIndexOutOfBoundsException {@code index} is < 0 or >= size
*/
public byte byteAt(final int index) {
return bytes[index];
}
 
/**
* Gets the number of bytes.
*/
public int size() {
return bytes.length;
}
 
/**
* Returns {@code true} if the size is {@code 0}, {@code false} otherwise.
*/
public boolean isEmpty() {
return bytes.length == 0;
}
 
// =================================================================
// byte[] -> ByteString
 
/**
* Empty ByteString.
*/
public static final ByteString EMPTY = new ByteString(new byte[0]);
 
/**
* Copies the given bytes into a {@code ByteString}.
*/
public static ByteString copyFrom(final byte[] bytes, final int offset,
final int size) {
final byte[] copy = new byte[size];
System.arraycopy(bytes, offset, copy, 0, size);
return new ByteString(copy);
}
 
/**
* Copies the given bytes into a {@code ByteString}.
*/
public static ByteString copyFrom(final byte[] bytes) {
return copyFrom(bytes, 0, bytes.length);
}
 
/**
* Copies {@code size} bytes from a {@code java.nio.ByteBuffer} into
* a {@code ByteString}.
*/
public static ByteString copyFrom(final ByteBuffer bytes, final int size) {
final byte[] copy = new byte[size];
bytes.get(copy);
return new ByteString(copy);
}
 
/**
* Copies the remaining bytes from a {@code java.nio.ByteBuffer} into
* a {@code ByteString}.
*/
public static ByteString copyFrom(final ByteBuffer bytes) {
return copyFrom(bytes, bytes.remaining());
}
 
/**
* Encodes {@code text} into a sequence of bytes using the named charset
* and returns the result as a {@code ByteString}.
*/
public static ByteString copyFrom(final String text, final String charsetName)
throws UnsupportedEncodingException {
return new ByteString(text.getBytes(charsetName));
}
 
/**
* Encodes {@code text} into a sequence of UTF-8 bytes and returns the
* result as a {@code ByteString}.
*/
public static ByteString copyFromUtf8(final String text) {
try {
return new ByteString(text.getBytes("UTF-8"));
} catch (UnsupportedEncodingException e) {
throw new RuntimeException("UTF-8 not supported?", e);
}
}
 
/**
* Concatenates all byte strings in the list and returns the result.
*
* <p>The returned {@code ByteString} is not necessarily a unique object.
* If the list is empty, the returned object is the singleton empty
* {@code ByteString}. If the list has only one element, that
* {@code ByteString} will be returned without copying.
*/
public static ByteString copyFrom(List<ByteString> list) {
if (list.size() == 0) {
return EMPTY;
} else if (list.size() == 1) {
return list.get(0);
}
 
int size = 0;
for (ByteString str : list) {
size += str.size();
}
byte[] bytes = new byte[size];
int pos = 0;
for (ByteString str : list) {
System.arraycopy(str.bytes, 0, bytes, pos, str.size());
pos += str.size();
}
return new ByteString(bytes);
}
 
// =================================================================
// ByteString -> byte[]
 
/**
* Copies bytes into a buffer at the given offset.
*
* @param target buffer to copy into
* @param offset in the target buffer
*/
public void copyTo(final byte[] target, final int offset) {
System.arraycopy(bytes, 0, target, offset, bytes.length);
}
 
/**
* Copies bytes into a buffer.
*
* @param target buffer to copy into
* @param sourceOffset offset within these bytes
* @param targetOffset offset within the target buffer
* @param size number of bytes to copy
*/
public void copyTo(final byte[] target, final int sourceOffset,
final int targetOffset,
final int size) {
System.arraycopy(bytes, sourceOffset, target, targetOffset, size);
}
 
/**
* Copies bytes into a ByteBuffer.
*
* @param target ByteBuffer to copy into.
* @throws ReadOnlyBufferException if the {@code target} is read-only
* @throws BufferOverflowException if the {@code target}'s remaining()
* space is not large enough to hold the data.
*/
public void copyTo(ByteBuffer target) {
target.put(bytes, 0, bytes.length);
}
 
/**
* Copies bytes to a {@code byte[]}.
*/
public byte[] toByteArray() {
final int size = bytes.length;
final byte[] copy = new byte[size];
System.arraycopy(bytes, 0, copy, 0, size);
return copy;
}
 
/**
* Constructs a new read-only {@code java.nio.ByteBuffer} with the
* same backing byte array.
*/
public ByteBuffer asReadOnlyByteBuffer() {
final ByteBuffer byteBuffer = ByteBuffer.wrap(bytes);
return byteBuffer.asReadOnlyBuffer();
}
 
/**
* Constructs a new {@code String} by decoding the bytes using the
* specified charset.
*/
public String toString(final String charsetName)
throws UnsupportedEncodingException {
return new String(bytes, charsetName);
}
 
/**
* Constructs a new {@code String} by decoding the bytes as UTF-8.
*/
public String toStringUtf8() {
try {
return new String(bytes, "UTF-8");
} catch (UnsupportedEncodingException e) {
throw new RuntimeException("UTF-8 not supported?", e);
}
}
 
// =================================================================
// equals() and hashCode()
 
@Override
public boolean equals(final Object o) {
if (o == this) {
return true;
}
 
if (!(o instanceof ByteString)) {
return false;
}
 
final ByteString other = (ByteString) o;
final int size = bytes.length;
if (size != other.bytes.length) {
return false;
}
 
final byte[] thisBytes = bytes;
final byte[] otherBytes = other.bytes;
for (int i = 0; i < size; i++) {
if (thisBytes[i] != otherBytes[i]) {
return false;
}
}
 
return true;
}
 
private volatile int hash = 0;
 
@Override
public int hashCode() {
int h = hash;
 
if (h == 0) {
final byte[] thisBytes = bytes;
final int size = bytes.length;
 
h = size;
for (int i = 0; i < size; i++) {
h = h * 31 + thisBytes[i];
}
if (h == 0) {
h = 1;
}
 
hash = h;
}
 
return h;
}
 
// =================================================================
// Input stream
 
/**
* Creates an {@code InputStream} which can be used to read the bytes.
*/
public InputStream newInput() {
return new ByteArrayInputStream(bytes);
}
 
/**
* Creates a {@link CodedInputStream} which can be used to read the bytes.
* Using this is more efficient than creating a {@link CodedInputStream}
* wrapping the result of {@link #newInput()}.
*/
public CodedInputStream newCodedInput() {
// We trust CodedInputStream not to modify the bytes, or to give anyone
// else access to them.
return CodedInputStream.newInstance(bytes);
}
 
// =================================================================
// Output stream
 
/**
* Creates a new {@link Output} with the given initial capacity.
*/
public static Output newOutput(final int initialCapacity) {
return new Output(new ByteArrayOutputStream(initialCapacity));
}
 
/**
* Creates a new {@link Output}.
*/
public static Output newOutput() {
return newOutput(32);
}
 
/**
* Outputs to a {@code ByteString} instance. Call {@link #toByteString()} to
* create the {@code ByteString} instance.
*/
public static final class Output extends FilterOutputStream {
private final ByteArrayOutputStream bout;
 
/**
* Constructs a new output with the given initial capacity.
*/
private Output(final ByteArrayOutputStream bout) {
super(bout);
this.bout = bout;
}
 
/**
* Creates a {@code ByteString} instance from this {@code Output}.
*/
public ByteString toByteString() {
final byte[] byteArray = bout.toByteArray();
return new ByteString(byteArray);
}
}
 
/**
* Constructs a new ByteString builder, which allows you to efficiently
* construct a {@code ByteString} by writing to a {@link CodedOutputStream}.
* Using this is much more efficient than calling {@code newOutput()} and
* wrapping that in a {@code CodedOutputStream}.
*
* <p>This is package-private because it's a somewhat confusing interface.
* Users can call {@link Message#toByteString()} instead of calling this
* directly.
*
* @param size The target byte size of the {@code ByteString}. You must
* write exactly this many bytes before building the result.
*/
static CodedBuilder newCodedBuilder(final int size) {
return new CodedBuilder(size);
}
 
/** See {@link ByteString#newCodedBuilder(int)}. */
static final class CodedBuilder {
private final CodedOutputStream output;
private final byte[] buffer;
 
private CodedBuilder(final int size) {
buffer = new byte[size];
output = CodedOutputStream.newInstance(buffer);
}
 
public ByteString build() {
output.checkNoSpaceLeft();
 
// We can be confident that the CodedOutputStream will not modify the
// underlying bytes anymore because it already wrote all of them. So,
// no need to make a copy.
return new ByteString(buffer);
}
 
public CodedOutputStream getCodedOutput() {
return output;
}
}
}
/Android Development/IOIODebuggerServer/src/com/google/protobuf/CodedInputStream.java
0,0 → 1,885
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// http://code.google.com/p/protobuf/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
package com.google.protobuf;
 
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
 
/**
* Reads and decodes protocol message fields.
*
* This class contains two kinds of methods: methods that read specific
* protocol message constructs and field types (e.g. {@link #readTag()} and
* {@link #readInt32()}) and methods that read low-level values (e.g.
* {@link #readRawVarint32()} and {@link #readRawBytes}). If you are reading
* encoded protocol messages, you should use the former methods, but if you are
* reading some other format of your own design, use the latter.
*
* @author kenton@google.com Kenton Varda
*/
public final class CodedInputStream {
/**
* Create a new CodedInputStream wrapping the given InputStream.
*/
public static CodedInputStream newInstance(final InputStream input) {
return new CodedInputStream(input);
}
 
/**
* Create a new CodedInputStream wrapping the given byte array.
*/
public static CodedInputStream newInstance(final byte[] buf) {
return newInstance(buf, 0, buf.length);
}
 
/**
* Create a new CodedInputStream wrapping the given byte array slice.
*/
public static CodedInputStream newInstance(final byte[] buf, final int off,
final int len) {
CodedInputStream result = new CodedInputStream(buf, off, len);
try {
// Some uses of CodedInputStream can be more efficient if they know
// exactly how many bytes are available. By pushing the end point of the
// buffer as a limit, we allow them to get this information via
// getBytesUntilLimit(). Pushing a limit that we know is at the end of
// the stream can never hurt, since we can never past that point anyway.
result.pushLimit(len);
} catch (InvalidProtocolBufferException ex) {
// The only reason pushLimit() might throw an exception here is if len
// is negative. Normally pushLimit()'s parameter comes directly off the
// wire, so it's important to catch exceptions in case of corrupt or
// malicious data. However, in this case, we expect that len is not a
// user-supplied value, so we can assume that it being negative indicates
// a programming error. Therefore, throwing an unchecked exception is
// appropriate.
throw new IllegalArgumentException(ex);
}
return result;
}
 
// -----------------------------------------------------------------
 
/**
* Attempt to read a field tag, returning zero if we have reached EOF.
* Protocol message parsers use this to read tags, since a protocol message
* may legally end wherever a tag occurs, and zero is not a valid tag number.
*/
public int readTag() throws IOException {
if (isAtEnd()) {
lastTag = 0;
return 0;
}
 
lastTag = readRawVarint32();
if (WireFormat.getTagFieldNumber(lastTag) == 0) {
// If we actually read zero (or any tag number corresponding to field
// number zero), that's not a valid tag.
throw InvalidProtocolBufferException.invalidTag();
}
return lastTag;
}
 
/**
* Verifies that the last call to readTag() returned the given tag value.
* This is used to verify that a nested group ended with the correct
* end tag.
*
* @throws InvalidProtocolBufferException {@code value} does not match the
* last tag.
*/
public void checkLastTagWas(final int value)
throws InvalidProtocolBufferException {
if (lastTag != value) {
throw InvalidProtocolBufferException.invalidEndTag();
}
}
 
/**
* Reads and discards a single field, given its tag value.
*
* @return {@code false} if the tag is an endgroup tag, in which case
* nothing is skipped. Otherwise, returns {@code true}.
*/
public boolean skipField(final int tag) throws IOException {
switch (WireFormat.getTagWireType(tag)) {
case WireFormat.WIRETYPE_VARINT:
readInt32();
return true;
case WireFormat.WIRETYPE_FIXED64:
readRawLittleEndian64();
return true;
case WireFormat.WIRETYPE_LENGTH_DELIMITED:
skipRawBytes(readRawVarint32());
return true;
case WireFormat.WIRETYPE_START_GROUP:
skipMessage();
checkLastTagWas(
WireFormat.makeTag(WireFormat.getTagFieldNumber(tag),
WireFormat.WIRETYPE_END_GROUP));
return true;
case WireFormat.WIRETYPE_END_GROUP:
return false;
case WireFormat.WIRETYPE_FIXED32:
readRawLittleEndian32();
return true;
default:
throw InvalidProtocolBufferException.invalidWireType();
}
}
 
/**
* Reads and discards an entire message. This will read either until EOF
* or until an endgroup tag, whichever comes first.
*/
public void skipMessage() throws IOException {
while (true) {
final int tag = readTag();
if (tag == 0 || !skipField(tag)) {
return;
}
}
}
 
// -----------------------------------------------------------------
 
/** Read a {@code double} field value from the stream. */
public double readDouble() throws IOException {
return Double.longBitsToDouble(readRawLittleEndian64());
}
 
/** Read a {@code float} field value from the stream. */
public float readFloat() throws IOException {
return Float.intBitsToFloat(readRawLittleEndian32());
}
 
/** Read a {@code uint64} field value from the stream. */
public long readUInt64() throws IOException {
return readRawVarint64();
}
 
/** Read an {@code int64} field value from the stream. */
public long readInt64() throws IOException {
return readRawVarint64();
}
 
/** Read an {@code int32} field value from the stream. */
public int readInt32() throws IOException {
return readRawVarint32();
}
 
/** Read a {@code fixed64} field value from the stream. */
public long readFixed64() throws IOException {
return readRawLittleEndian64();
}
 
/** Read a {@code fixed32} field value from the stream. */
public int readFixed32() throws IOException {
return readRawLittleEndian32();
}
 
/** Read a {@code bool} field value from the stream. */
public boolean readBool() throws IOException {
return readRawVarint32() != 0;
}
 
/** Read a {@code string} field value from the stream. */
public String readString() throws IOException {
final int size = readRawVarint32();
if (size <= (bufferSize - bufferPos) && size > 0) {
// Fast path: We already have the bytes in a contiguous buffer, so
// just copy directly from it.
final String result = new String(buffer, bufferPos, size, "UTF-8");
bufferPos += size;
return result;
} else {
// Slow path: Build a byte array first then copy it.
return new String(readRawBytes(size), "UTF-8");
}
}
 
/** Read a {@code group} field value from the stream. */
public void readGroup(final int fieldNumber,
final MessageLite.Builder builder,
final ExtensionRegistryLite extensionRegistry)
throws IOException {
if (recursionDepth >= recursionLimit) {
throw InvalidProtocolBufferException.recursionLimitExceeded();
}
++recursionDepth;
builder.mergeFrom(this, extensionRegistry);
checkLastTagWas(
WireFormat.makeTag(fieldNumber, WireFormat.WIRETYPE_END_GROUP));
--recursionDepth;
}
 
/**
* Reads a {@code group} field value from the stream and merges it into the
* given {@link UnknownFieldSet}.
*
* @deprecated UnknownFieldSet.Builder now implements MessageLite.Builder, so
* you can just call {@link #readGroup}.
*/
@Deprecated
public void readUnknownGroup(final int fieldNumber,
final MessageLite.Builder builder)
throws IOException {
// We know that UnknownFieldSet will ignore any ExtensionRegistry so it
// is safe to pass null here. (We can't call
// ExtensionRegistry.getEmptyRegistry() because that would make this
// class depend on ExtensionRegistry, which is not part of the lite
// library.)
readGroup(fieldNumber, builder, null);
}
 
/** Read an embedded message field value from the stream. */
public void readMessage(final MessageLite.Builder builder,
final ExtensionRegistryLite extensionRegistry)
throws IOException {
final int length = readRawVarint32();
if (recursionDepth >= recursionLimit) {
throw InvalidProtocolBufferException.recursionLimitExceeded();
}
final int oldLimit = pushLimit(length);
++recursionDepth;
builder.mergeFrom(this, extensionRegistry);
checkLastTagWas(0);
--recursionDepth;
popLimit(oldLimit);
}
 
/** Read a {@code bytes} field value from the stream. */
public ByteString readBytes() throws IOException {
final int size = readRawVarint32();
if (size == 0) {
return ByteString.EMPTY;
} else if (size <= (bufferSize - bufferPos) && size > 0) {
// Fast path: We already have the bytes in a contiguous buffer, so
// just copy directly from it.
final ByteString result = ByteString.copyFrom(buffer, bufferPos, size);
bufferPos += size;
return result;
} else {
// Slow path: Build a byte array first then copy it.
return ByteString.copyFrom(readRawBytes(size));
}
}
 
/** Read a {@code uint32} field value from the stream. */
public int readUInt32() throws IOException {
return readRawVarint32();
}
 
/**
* Read an enum field value from the stream. Caller is responsible
* for converting the numeric value to an actual enum.
*/
public int readEnum() throws IOException {
return readRawVarint32();
}
 
/** Read an {@code sfixed32} field value from the stream. */
public int readSFixed32() throws IOException {
return readRawLittleEndian32();
}
 
/** Read an {@code sfixed64} field value from the stream. */
public long readSFixed64() throws IOException {
return readRawLittleEndian64();
}
 
/** Read an {@code sint32} field value from the stream. */
public int readSInt32() throws IOException {
return decodeZigZag32(readRawVarint32());
}
 
/** Read an {@code sint64} field value from the stream. */
public long readSInt64() throws IOException {
return decodeZigZag64(readRawVarint64());
}
 
// =================================================================
 
/**
* Read a raw Varint from the stream. If larger than 32 bits, discard the
* upper bits.
*/
public int readRawVarint32() throws IOException {
byte tmp = readRawByte();
if (tmp >= 0) {
return tmp;
}
int result = tmp & 0x7f;
if ((tmp = readRawByte()) >= 0) {
result |= tmp << 7;
} else {
result |= (tmp & 0x7f) << 7;
if ((tmp = readRawByte()) >= 0) {
result |= tmp << 14;
} else {
result |= (tmp & 0x7f) << 14;
if ((tmp = readRawByte()) >= 0) {
result |= tmp << 21;
} else {
result |= (tmp & 0x7f) << 21;
result |= (tmp = readRawByte()) << 28;
if (tmp < 0) {
// Discard upper 32 bits.
for (int i = 0; i < 5; i++) {
if (readRawByte() >= 0) {
return result;
}
}
throw InvalidProtocolBufferException.malformedVarint();
}
}
}
}
return result;
}
 
/**
* Reads a varint from the input one byte at a time, so that it does not
* read any bytes after the end of the varint. If you simply wrapped the
* stream in a CodedInputStream and used {@link #readRawVarint32(InputStream)}
* then you would probably end up reading past the end of the varint since
* CodedInputStream buffers its input.
*/
static int readRawVarint32(final InputStream input) throws IOException {
final int firstByte = input.read();
if (firstByte == -1) {
throw InvalidProtocolBufferException.truncatedMessage();
}
return readRawVarint32(firstByte, input);
}
 
/**
* Like {@link #readRawVarint32(InputStream)}, but expects that the caller
* has already read one byte. This allows the caller to determine if EOF
* has been reached before attempting to read.
*/
public static int readRawVarint32(
final int firstByte, final InputStream input) throws IOException {
if ((firstByte & 0x80) == 0) {
return firstByte;
}
 
int result = firstByte & 0x7f;
int offset = 7;
for (; offset < 32; offset += 7) {
final int b = input.read();
if (b == -1) {
throw InvalidProtocolBufferException.truncatedMessage();
}
result |= (b & 0x7f) << offset;
if ((b & 0x80) == 0) {
return result;
}
}
// Keep reading up to 64 bits.
for (; offset < 64; offset += 7) {
final int b = input.read();
if (b == -1) {
throw InvalidProtocolBufferException.truncatedMessage();
}
if ((b & 0x80) == 0) {
return result;
}
}
throw InvalidProtocolBufferException.malformedVarint();
}
 
/** Read a raw Varint from the stream. */
public long readRawVarint64() throws IOException {
int shift = 0;
long result = 0;
while (shift < 64) {
final byte b = readRawByte();
result |= (long)(b & 0x7F) << shift;
if ((b & 0x80) == 0) {
return result;
}
shift += 7;
}
throw InvalidProtocolBufferException.malformedVarint();
}
 
/** Read a 32-bit little-endian integer from the stream. */
public int readRawLittleEndian32() throws IOException {
final byte b1 = readRawByte();
final byte b2 = readRawByte();
final byte b3 = readRawByte();
final byte b4 = readRawByte();
return (((int)b1 & 0xff) ) |
(((int)b2 & 0xff) << 8) |
(((int)b3 & 0xff) << 16) |
(((int)b4 & 0xff) << 24);
}
 
/** Read a 64-bit little-endian integer from the stream. */
public long readRawLittleEndian64() throws IOException {
final byte b1 = readRawByte();
final byte b2 = readRawByte();
final byte b3 = readRawByte();
final byte b4 = readRawByte();
final byte b5 = readRawByte();
final byte b6 = readRawByte();
final byte b7 = readRawByte();
final byte b8 = readRawByte();
return (((long)b1 & 0xff) ) |
(((long)b2 & 0xff) << 8) |
(((long)b3 & 0xff) << 16) |
(((long)b4 & 0xff) << 24) |
(((long)b5 & 0xff) << 32) |
(((long)b6 & 0xff) << 40) |
(((long)b7 & 0xff) << 48) |
(((long)b8 & 0xff) << 56);
}
 
/**
* Decode a ZigZag-encoded 32-bit value. ZigZag encodes signed integers
* into values that can be efficiently encoded with varint. (Otherwise,
* negative values must be sign-extended to 64 bits to be varint encoded,
* thus always taking 10 bytes on the wire.)
*
* @param n An unsigned 32-bit integer, stored in a signed int because
* Java has no explicit unsigned support.
* @return A signed 32-bit integer.
*/
public static int decodeZigZag32(final int n) {
return (n >>> 1) ^ -(n & 1);
}
 
/**
* Decode a ZigZag-encoded 64-bit value. ZigZag encodes signed integers
* into values that can be efficiently encoded with varint. (Otherwise,
* negative values must be sign-extended to 64 bits to be varint encoded,
* thus always taking 10 bytes on the wire.)
*
* @param n An unsigned 64-bit integer, stored in a signed int because
* Java has no explicit unsigned support.
* @return A signed 64-bit integer.
*/
public static long decodeZigZag64(final long n) {
return (n >>> 1) ^ -(n & 1);
}
 
// -----------------------------------------------------------------
 
private final byte[] buffer;
private int bufferSize;
private int bufferSizeAfterLimit;
private int bufferPos;
private final InputStream input;
private int lastTag;
 
/**
* The total number of bytes read before the current buffer. The total
* bytes read up to the current position can be computed as
* {@code totalBytesRetired + bufferPos}. This value may be negative if
* reading started in the middle of the current buffer (e.g. if the
* constructor that takes a byte array and an offset was used).
*/
private int totalBytesRetired;
 
/** The absolute position of the end of the current message. */
private int currentLimit = Integer.MAX_VALUE;
 
/** See setRecursionLimit() */
private int recursionDepth;
private int recursionLimit = DEFAULT_RECURSION_LIMIT;
 
/** See setSizeLimit() */
private int sizeLimit = DEFAULT_SIZE_LIMIT;
 
private static final int DEFAULT_RECURSION_LIMIT = 64;
private static final int DEFAULT_SIZE_LIMIT = 64 << 20; // 64MB
private static final int BUFFER_SIZE = 4096;
 
private CodedInputStream(final byte[] buffer, final int off, final int len) {
this.buffer = buffer;
bufferSize = off + len;
bufferPos = off;
totalBytesRetired = -off;
input = null;
}
 
private CodedInputStream(final InputStream input) {
buffer = new byte[BUFFER_SIZE];
bufferSize = 0;
bufferPos = 0;
totalBytesRetired = 0;
this.input = input;
}
 
/**
* Set the maximum message recursion depth. In order to prevent malicious
* messages from causing stack overflows, {@code CodedInputStream} limits
* how deeply messages may be nested. The default limit is 64.
*
* @return the old limit.
*/
public int setRecursionLimit(final int limit) {
if (limit < 0) {
throw new IllegalArgumentException(
"Recursion limit cannot be negative: " + limit);
}
final int oldLimit = recursionLimit;
recursionLimit = limit;
return oldLimit;
}
 
/**
* Set the maximum message size. In order to prevent malicious
* messages from exhausting memory or causing integer overflows,
* {@code CodedInputStream} limits how large a message may be.
* The default limit is 64MB. You should set this limit as small
* as you can without harming your app's functionality. Note that
* size limits only apply when reading from an {@code InputStream}, not
* when constructed around a raw byte array (nor with
* {@link ByteString#newCodedInput}).
* <p>
* If you want to read several messages from a single CodedInputStream, you
* could call {@link #resetSizeCounter()} after each one to avoid hitting the
* size limit.
*
* @return the old limit.
*/
public int setSizeLimit(final int limit) {
if (limit < 0) {
throw new IllegalArgumentException(
"Size limit cannot be negative: " + limit);
}
final int oldLimit = sizeLimit;
sizeLimit = limit;
return oldLimit;
}
 
/**
* Resets the current size counter to zero (see {@link #setSizeLimit(int)}).
*/
public void resetSizeCounter() {
totalBytesRetired = -bufferPos;
}
 
/**
* Sets {@code currentLimit} to (current position) + {@code byteLimit}. This
* is called when descending into a length-delimited embedded message.
*
* <p>Note that {@code pushLimit()} does NOT affect how many bytes the
* {@code CodedInputStream} reads from an underlying {@code InputStream} when
* refreshing its buffer. If you need to prevent reading past a certain
* point in the underlying {@code InputStream} (e.g. because you expect it to
* contain more data after the end of the message which you need to handle
* differently) then you must place a wrapper around you {@code InputStream}
* which limits the amount of data that can be read from it.
*
* @return the old limit.
*/
public int pushLimit(int byteLimit) throws InvalidProtocolBufferException {
if (byteLimit < 0) {
throw InvalidProtocolBufferException.negativeSize();
}
byteLimit += totalBytesRetired + bufferPos;
final int oldLimit = currentLimit;
if (byteLimit > oldLimit) {
throw InvalidProtocolBufferException.truncatedMessage();
}
currentLimit = byteLimit;
 
recomputeBufferSizeAfterLimit();
 
return oldLimit;
}
 
private void recomputeBufferSizeAfterLimit() {
bufferSize += bufferSizeAfterLimit;
final int bufferEnd = totalBytesRetired + bufferSize;
if (bufferEnd > currentLimit) {
// Limit is in current buffer.
bufferSizeAfterLimit = bufferEnd - currentLimit;
bufferSize -= bufferSizeAfterLimit;
} else {
bufferSizeAfterLimit = 0;
}
}
 
/**
* Discards the current limit, returning to the previous limit.
*
* @param oldLimit The old limit, as returned by {@code pushLimit}.
*/
public void popLimit(final int oldLimit) {
currentLimit = oldLimit;
recomputeBufferSizeAfterLimit();
}
 
/**
* Returns the number of bytes to be read before the current limit.
* If no limit is set, returns -1.
*/
public int getBytesUntilLimit() {
if (currentLimit == Integer.MAX_VALUE) {
return -1;
}
 
final int currentAbsolutePosition = totalBytesRetired + bufferPos;
return currentLimit - currentAbsolutePosition;
}
 
/**
* Returns true if the stream has reached the end of the input. This is the
* case if either the end of the underlying input source has been reached or
* if the stream has reached a limit created using {@link #pushLimit(int)}.
*/
public boolean isAtEnd() throws IOException {
return bufferPos == bufferSize && !refillBuffer(false);
}
 
/**
* The total bytes read up to the current position. Calling
* {@link #resetSizeCounter()} resets this value to zero.
*/
public int getTotalBytesRead() {
return totalBytesRetired + bufferPos;
}
 
/**
* Called with {@code this.buffer} is empty to read more bytes from the
* input. If {@code mustSucceed} is true, refillBuffer() gurantees that
* either there will be at least one byte in the buffer when it returns
* or it will throw an exception. If {@code mustSucceed} is false,
* refillBuffer() returns false if no more bytes were available.
*/
private boolean refillBuffer(final boolean mustSucceed) throws IOException {
if (bufferPos < bufferSize) {
throw new IllegalStateException(
"refillBuffer() called when buffer wasn't empty.");
}
 
if (totalBytesRetired + bufferSize == currentLimit) {
// Oops, we hit a limit.
if (mustSucceed) {
throw InvalidProtocolBufferException.truncatedMessage();
} else {
return false;
}
}
 
totalBytesRetired += bufferSize;
 
bufferPos = 0;
bufferSize = (input == null) ? -1 : input.read(buffer);
if (bufferSize == 0 || bufferSize < -1) {
throw new IllegalStateException(
"InputStream#read(byte[]) returned invalid result: " + bufferSize +
"\nThe InputStream implementation is buggy.");
}
if (bufferSize == -1) {
bufferSize = 0;
if (mustSucceed) {
throw InvalidProtocolBufferException.truncatedMessage();
} else {
return false;
}
} else {
recomputeBufferSizeAfterLimit();
final int totalBytesRead =
totalBytesRetired + bufferSize + bufferSizeAfterLimit;
if (totalBytesRead > sizeLimit || totalBytesRead < 0) {
throw InvalidProtocolBufferException.sizeLimitExceeded();
}
return true;
}
}
 
/**
* Read one byte from the input.
*
* @throws InvalidProtocolBufferException The end of the stream or the current
* limit was reached.
*/
public byte readRawByte() throws IOException {
if (bufferPos == bufferSize) {
refillBuffer(true);
}
return buffer[bufferPos++];
}
 
/**
* Read a fixed size of bytes from the input.
*
* @throws InvalidProtocolBufferException The end of the stream or the current
* limit was reached.
*/
public byte[] readRawBytes(final int size) throws IOException {
if (size < 0) {
throw InvalidProtocolBufferException.negativeSize();
}
 
if (totalBytesRetired + bufferPos + size > currentLimit) {
// Read to the end of the stream anyway.
skipRawBytes(currentLimit - totalBytesRetired - bufferPos);
// Then fail.
throw InvalidProtocolBufferException.truncatedMessage();
}
 
if (size <= bufferSize - bufferPos) {
// We have all the bytes we need already.
final byte[] bytes = new byte[size];
System.arraycopy(buffer, bufferPos, bytes, 0, size);
bufferPos += size;
return bytes;
} else if (size < BUFFER_SIZE) {
// Reading more bytes than are in the buffer, but not an excessive number
// of bytes. We can safely allocate the resulting array ahead of time.
 
// First copy what we have.
final byte[] bytes = new byte[size];
int pos = bufferSize - bufferPos;
System.arraycopy(buffer, bufferPos, bytes, 0, pos);
bufferPos = bufferSize;
 
// We want to use refillBuffer() and then copy from the buffer into our
// byte array rather than reading directly into our byte array because
// the input may be unbuffered.
refillBuffer(true);
 
while (size - pos > bufferSize) {
System.arraycopy(buffer, 0, bytes, pos, bufferSize);
pos += bufferSize;
bufferPos = bufferSize;
refillBuffer(true);
}
 
System.arraycopy(buffer, 0, bytes, pos, size - pos);
bufferPos = size - pos;
 
return bytes;
} else {
// The size is very large. For security reasons, we can't allocate the
// entire byte array yet. The size comes directly from the input, so a
// maliciously-crafted message could provide a bogus very large size in
// order to trick the app into allocating a lot of memory. We avoid this
// by allocating and reading only a small chunk at a time, so that the
// malicious message must actually *be* extremely large to cause
// problems. Meanwhile, we limit the allowed size of a message elsewhere.
 
// Remember the buffer markers since we'll have to copy the bytes out of
// it later.
final int originalBufferPos = bufferPos;
final int originalBufferSize = bufferSize;
 
// Mark the current buffer consumed.
totalBytesRetired += bufferSize;
bufferPos = 0;
bufferSize = 0;
 
// Read all the rest of the bytes we need.
int sizeLeft = size - (originalBufferSize - originalBufferPos);
final List<byte[]> chunks = new ArrayList<byte[]>();
 
while (sizeLeft > 0) {
final byte[] chunk = new byte[Math.min(sizeLeft, BUFFER_SIZE)];
int pos = 0;
while (pos < chunk.length) {
final int n = (input == null) ? -1 :
input.read(chunk, pos, chunk.length - pos);
if (n == -1) {
throw InvalidProtocolBufferException.truncatedMessage();
}
totalBytesRetired += n;
pos += n;
}
sizeLeft -= chunk.length;
chunks.add(chunk);
}
 
// OK, got everything. Now concatenate it all into one buffer.
final byte[] bytes = new byte[size];
 
// Start by copying the leftover bytes from this.buffer.
int pos = originalBufferSize - originalBufferPos;
System.arraycopy(buffer, originalBufferPos, bytes, 0, pos);
 
// And now all the chunks.
for (final byte[] chunk : chunks) {
System.arraycopy(chunk, 0, bytes, pos, chunk.length);
pos += chunk.length;
}
 
// Done.
return bytes;
}
}
 
/**
* Reads and discards {@code size} bytes.
*
* @throws InvalidProtocolBufferException The end of the stream or the current
* limit was reached.
*/
public void skipRawBytes(final int size) throws IOException {
if (size < 0) {
throw InvalidProtocolBufferException.negativeSize();
}
 
if (totalBytesRetired + bufferPos + size > currentLimit) {
// Read to the end of the stream anyway.
skipRawBytes(currentLimit - totalBytesRetired - bufferPos);
// Then fail.
throw InvalidProtocolBufferException.truncatedMessage();
}
 
if (size <= bufferSize - bufferPos) {
// We have all the bytes we need already.
bufferPos += size;
} else {
// Skipping more bytes than are in the buffer. First skip what we have.
int pos = bufferSize - bufferPos;
bufferPos = bufferSize;
 
// Keep refilling the buffer until we get to the point we wanted to skip
// to. This has the side effect of ensuring the limits are updated
// correctly.
refillBuffer(true);
while (size - pos > bufferSize) {
pos += bufferSize;
bufferPos = bufferSize;
refillBuffer(true);
}
 
bufferPos = size - pos;
}
}
}
/Android Development/IOIODebuggerServer/src/com/google/protobuf/CodedOutputStream.java
0,0 → 1,1081
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// http://code.google.com/p/protobuf/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
package com.google.protobuf;
 
import java.io.OutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.io.InputStream;
 
/**
* Encodes and writes protocol message fields.
*
* <p>This class contains two kinds of methods: methods that write specific
* protocol message constructs and field types (e.g. {@link #writeTag} and
* {@link #writeInt32}) and methods that write low-level values (e.g.
* {@link #writeRawVarint32} and {@link #writeRawBytes}). If you are
* writing encoded protocol messages, you should use the former methods, but if
* you are writing some other format of your own design, use the latter.
*
* <p>This class is totally unsynchronized.
*
* @author kneton@google.com Kenton Varda
*/
public final class CodedOutputStream {
private final byte[] buffer;
private final int limit;
private int position;
 
private final OutputStream output;
 
/**
* The buffer size used in {@link #newInstance(OutputStream)}.
*/
public static final int DEFAULT_BUFFER_SIZE = 4096;
 
/**
* Returns the buffer size to efficiently write dataLength bytes to this
* CodedOutputStream. Used by AbstractMessageLite.
*
* @return the buffer size to efficiently write dataLength bytes to this
* CodedOutputStream.
*/
static int computePreferredBufferSize(int dataLength) {
if (dataLength > DEFAULT_BUFFER_SIZE) return DEFAULT_BUFFER_SIZE;
return dataLength;
}
 
private CodedOutputStream(final byte[] buffer, final int offset,
final int length) {
output = null;
this.buffer = buffer;
position = offset;
limit = offset + length;
}
 
private CodedOutputStream(final OutputStream output, final byte[] buffer) {
this.output = output;
this.buffer = buffer;
position = 0;
limit = buffer.length;
}
 
/**
* Create a new {@code CodedOutputStream} wrapping the given
* {@code OutputStream}.
*/
public static CodedOutputStream newInstance(final OutputStream output) {
return newInstance(output, DEFAULT_BUFFER_SIZE);
}
 
/**
* Create a new {@code CodedOutputStream} wrapping the given
* {@code OutputStream} with a given buffer size.
*/
public static CodedOutputStream newInstance(final OutputStream output,
final int bufferSize) {
return new CodedOutputStream(output, new byte[bufferSize]);
}
 
/**
* Create a new {@code CodedOutputStream} that writes directly to the given
* byte array. If more bytes are written than fit in the array,
* {@link OutOfSpaceException} will be thrown. Writing directly to a flat
* array is faster than writing to an {@code OutputStream}. See also
* {@link ByteString#newCodedBuilder}.
*/
public static CodedOutputStream newInstance(final byte[] flatArray) {
return newInstance(flatArray, 0, flatArray.length);
}
 
/**
* Create a new {@code CodedOutputStream} that writes directly to the given
* byte array slice. If more bytes are written than fit in the slice,
* {@link OutOfSpaceException} will be thrown. Writing directly to a flat
* array is faster than writing to an {@code OutputStream}. See also
* {@link ByteString#newCodedBuilder}.
*/
public static CodedOutputStream newInstance(final byte[] flatArray,
final int offset,
final int length) {
return new CodedOutputStream(flatArray, offset, length);
}
 
// -----------------------------------------------------------------
 
/** Write a {@code double} field, including tag, to the stream. */
public void writeDouble(final int fieldNumber, final double value)
throws IOException {
writeTag(fieldNumber, WireFormat.WIRETYPE_FIXED64);
writeDoubleNoTag(value);
}
 
/** Write a {@code float} field, including tag, to the stream. */
public void writeFloat(final int fieldNumber, final float value)
throws IOException {
writeTag(fieldNumber, WireFormat.WIRETYPE_FIXED32);
writeFloatNoTag(value);
}
 
/** Write a {@code uint64} field, including tag, to the stream. */
public void writeUInt64(final int fieldNumber, final long value)
throws IOException {
writeTag(fieldNumber, WireFormat.WIRETYPE_VARINT);
writeUInt64NoTag(value);
}
 
/** Write an {@code int64} field, including tag, to the stream. */
public void writeInt64(final int fieldNumber, final long value)
throws IOException {
writeTag(fieldNumber, WireFormat.WIRETYPE_VARINT);
writeInt64NoTag(value);
}
 
/** Write an {@code int32} field, including tag, to the stream. */
public void writeInt32(final int fieldNumber, final int value)
throws IOException {
writeTag(fieldNumber, WireFormat.WIRETYPE_VARINT);
writeInt32NoTag(value);
}
 
/** Write a {@code fixed64} field, including tag, to the stream. */
public void writeFixed64(final int fieldNumber, final long value)
throws IOException {
writeTag(fieldNumber, WireFormat.WIRETYPE_FIXED64);
writeFixed64NoTag(value);
}
 
/** Write a {@code fixed32} field, including tag, to the stream. */
public void writeFixed32(final int fieldNumber, final int value)
throws IOException {
writeTag(fieldNumber, WireFormat.WIRETYPE_FIXED32);
writeFixed32NoTag(value);
}
 
/** Write a {@code bool} field, including tag, to the stream. */
public void writeBool(final int fieldNumber, final boolean value)
throws IOException {
writeTag(fieldNumber, WireFormat.WIRETYPE_VARINT);
writeBoolNoTag(value);
}
 
/** Write a {@code string} field, including tag, to the stream. */
public void writeString(final int fieldNumber, final String value)
throws IOException {
writeTag(fieldNumber, WireFormat.WIRETYPE_LENGTH_DELIMITED);
writeStringNoTag(value);
}
 
/** Write a {@code group} field, including tag, to the stream. */
public void writeGroup(final int fieldNumber, final MessageLite value)
throws IOException {
writeTag(fieldNumber, WireFormat.WIRETYPE_START_GROUP);
writeGroupNoTag(value);
writeTag(fieldNumber, WireFormat.WIRETYPE_END_GROUP);
}
 
/**
* Write a group represented by an {@link UnknownFieldSet}.
*
* @deprecated UnknownFieldSet now implements MessageLite, so you can just
* call {@link #writeGroup}.
*/
@Deprecated
public void writeUnknownGroup(final int fieldNumber,
final MessageLite value)
throws IOException {
writeGroup(fieldNumber, value);
}
 
/** Write an embedded message field, including tag, to the stream. */
public void writeMessage(final int fieldNumber, final MessageLite value)
throws IOException {
writeTag(fieldNumber, WireFormat.WIRETYPE_LENGTH_DELIMITED);
writeMessageNoTag(value);
}
 
/** Write a {@code bytes} field, including tag, to the stream. */
public void writeBytes(final int fieldNumber, final ByteString value)
throws IOException {
writeTag(fieldNumber, WireFormat.WIRETYPE_LENGTH_DELIMITED);
writeBytesNoTag(value);
}
 
/** Write a {@code uint32} field, including tag, to the stream. */
public void writeUInt32(final int fieldNumber, final int value)
throws IOException {
writeTag(fieldNumber, WireFormat.WIRETYPE_VARINT);
writeUInt32NoTag(value);
}
 
/**
* Write an enum field, including tag, to the stream. Caller is responsible
* for converting the enum value to its numeric value.
*/
public void writeEnum(final int fieldNumber, final int value)
throws IOException {
writeTag(fieldNumber, WireFormat.WIRETYPE_VARINT);
writeEnumNoTag(value);
}
 
/** Write an {@code sfixed32} field, including tag, to the stream. */
public void writeSFixed32(final int fieldNumber, final int value)
throws IOException {
writeTag(fieldNumber, WireFormat.WIRETYPE_FIXED32);
writeSFixed32NoTag(value);
}
 
/** Write an {@code sfixed64} field, including tag, to the stream. */
public void writeSFixed64(final int fieldNumber, final long value)
throws IOException {
writeTag(fieldNumber, WireFormat.WIRETYPE_FIXED64);
writeSFixed64NoTag(value);
}
 
/** Write an {@code sint32} field, including tag, to the stream. */
public void writeSInt32(final int fieldNumber, final int value)
throws IOException {
writeTag(fieldNumber, WireFormat.WIRETYPE_VARINT);
writeSInt32NoTag(value);
}
 
/** Write an {@code sint64} field, including tag, to the stream. */
public void writeSInt64(final int fieldNumber, final long value)
throws IOException {
writeTag(fieldNumber, WireFormat.WIRETYPE_VARINT);
writeSInt64NoTag(value);
}
 
/**
* Write a MessageSet extension field to the stream. For historical reasons,
* the wire format differs from normal fields.
*/
public void writeMessageSetExtension(final int fieldNumber,
final MessageLite value)
throws IOException {
writeTag(WireFormat.MESSAGE_SET_ITEM, WireFormat.WIRETYPE_START_GROUP);
writeUInt32(WireFormat.MESSAGE_SET_TYPE_ID, fieldNumber);
writeMessage(WireFormat.MESSAGE_SET_MESSAGE, value);
writeTag(WireFormat.MESSAGE_SET_ITEM, WireFormat.WIRETYPE_END_GROUP);
}
 
/**
* Write an unparsed MessageSet extension field to the stream. For
* historical reasons, the wire format differs from normal fields.
*/
public void writeRawMessageSetExtension(final int fieldNumber,
final ByteString value)
throws IOException {
writeTag(WireFormat.MESSAGE_SET_ITEM, WireFormat.WIRETYPE_START_GROUP);
writeUInt32(WireFormat.MESSAGE_SET_TYPE_ID, fieldNumber);
writeBytes(WireFormat.MESSAGE_SET_MESSAGE, value);
writeTag(WireFormat.MESSAGE_SET_ITEM, WireFormat.WIRETYPE_END_GROUP);
}
 
// -----------------------------------------------------------------
 
/** Write a {@code double} field to the stream. */
public void writeDoubleNoTag(final double value) throws IOException {
writeRawLittleEndian64(Double.doubleToRawLongBits(value));
}
 
/** Write a {@code float} field to the stream. */
public void writeFloatNoTag(final float value) throws IOException {
writeRawLittleEndian32(Float.floatToRawIntBits(value));
}
 
/** Write a {@code uint64} field to the stream. */
public void writeUInt64NoTag(final long value) throws IOException {
writeRawVarint64(value);
}
 
/** Write an {@code int64} field to the stream. */
public void writeInt64NoTag(final long value) throws IOException {
writeRawVarint64(value);
}
 
/** Write an {@code int32} field to the stream. */
public void writeInt32NoTag(final int value) throws IOException {
if (value >= 0) {
writeRawVarint32(value);
} else {
// Must sign-extend.
writeRawVarint64(value);
}
}
 
/** Write a {@code fixed64} field to the stream. */
public void writeFixed64NoTag(final long value) throws IOException {
writeRawLittleEndian64(value);
}
 
/** Write a {@code fixed32} field to the stream. */
public void writeFixed32NoTag(final int value) throws IOException {
writeRawLittleEndian32(value);
}
 
/** Write a {@code bool} field to the stream. */
public void writeBoolNoTag(final boolean value) throws IOException {
writeRawByte(value ? 1 : 0);
}
 
/** Write a {@code string} field to the stream. */
public void writeStringNoTag(final String value) throws IOException {
// Unfortunately there does not appear to be any way to tell Java to encode
// UTF-8 directly into our buffer, so we have to let it create its own byte
// array and then copy.
final byte[] bytes = value.getBytes("UTF-8");
writeRawVarint32(bytes.length);
writeRawBytes(bytes);
}
 
/** Write a {@code group} field to the stream. */
public void writeGroupNoTag(final MessageLite value) throws IOException {
value.writeTo(this);
}
 
/**
* Write a group represented by an {@link UnknownFieldSet}.
*
* @deprecated UnknownFieldSet now implements MessageLite, so you can just
* call {@link #writeGroupNoTag}.
*/
@Deprecated
public void writeUnknownGroupNoTag(final MessageLite value)
throws IOException {
writeGroupNoTag(value);
}
 
/** Write an embedded message field to the stream. */
public void writeMessageNoTag(final MessageLite value) throws IOException {
writeRawVarint32(value.getSerializedSize());
value.writeTo(this);
}
 
/** Write a {@code bytes} field to the stream. */
public void writeBytesNoTag(final ByteString value) throws IOException {
writeRawVarint32(value.size());
writeRawBytes(value);
}
 
/** Write a {@code uint32} field to the stream. */
public void writeUInt32NoTag(final int value) throws IOException {
writeRawVarint32(value);
}
 
/**
* Write an enum field to the stream. Caller is responsible
* for converting the enum value to its numeric value.
*/
public void writeEnumNoTag(final int value) throws IOException {
writeInt32NoTag(value);
}
 
/** Write an {@code sfixed32} field to the stream. */
public void writeSFixed32NoTag(final int value) throws IOException {
writeRawLittleEndian32(value);
}
 
/** Write an {@code sfixed64} field to the stream. */
public void writeSFixed64NoTag(final long value) throws IOException {
writeRawLittleEndian64(value);
}
 
/** Write an {@code sint32} field to the stream. */
public void writeSInt32NoTag(final int value) throws IOException {
writeRawVarint32(encodeZigZag32(value));
}
 
/** Write an {@code sint64} field to the stream. */
public void writeSInt64NoTag(final long value) throws IOException {
writeRawVarint64(encodeZigZag64(value));
}
 
// =================================================================
 
/**
* Compute the number of bytes that would be needed to encode a
* {@code double} field, including tag.
*/
public static int computeDoubleSize(final int fieldNumber,
final double value) {
return computeTagSize(fieldNumber) + computeDoubleSizeNoTag(value);
}
 
/**
* Compute the number of bytes that would be needed to encode a
* {@code float} field, including tag.
*/
public static int computeFloatSize(final int fieldNumber, final float value) {
return computeTagSize(fieldNumber) + computeFloatSizeNoTag(value);
}
 
/**
* Compute the number of bytes that would be needed to encode a
* {@code uint64} field, including tag.
*/
public static int computeUInt64Size(final int fieldNumber, final long value) {
return computeTagSize(fieldNumber) + computeUInt64SizeNoTag(value);
}
 
/**
* Compute the number of bytes that would be needed to encode an
* {@code int64} field, including tag.
*/
public static int computeInt64Size(final int fieldNumber, final long value) {
return computeTagSize(fieldNumber) + computeInt64SizeNoTag(value);
}
 
/**
* Compute the number of bytes that would be needed to encode an
* {@code int32} field, including tag.
*/
public static int computeInt32Size(final int fieldNumber, final int value) {
return computeTagSize(fieldNumber) + computeInt32SizeNoTag(value);
}
 
/**
* Compute the number of bytes that would be needed to encode a
* {@code fixed64} field, including tag.
*/
public static int computeFixed64Size(final int fieldNumber,
final long value) {
return computeTagSize(fieldNumber) + computeFixed64SizeNoTag(value);
}
 
/**
* Compute the number of bytes that would be needed to encode a
* {@code fixed32} field, including tag.
*/
public static int computeFixed32Size(final int fieldNumber,
final int value) {
return computeTagSize(fieldNumber) + computeFixed32SizeNoTag(value);
}
 
/**
* Compute the number of bytes that would be needed to encode a
* {@code bool} field, including tag.
*/
public static int computeBoolSize(final int fieldNumber,
final boolean value) {
return computeTagSize(fieldNumber) + computeBoolSizeNoTag(value);
}
 
/**
* Compute the number of bytes that would be needed to encode a
* {@code string} field, including tag.
*/
public static int computeStringSize(final int fieldNumber,
final String value) {
return computeTagSize(fieldNumber) + computeStringSizeNoTag(value);
}
 
/**
* Compute the number of bytes that would be needed to encode a
* {@code group} field, including tag.
*/
public static int computeGroupSize(final int fieldNumber,
final MessageLite value) {
return computeTagSize(fieldNumber) * 2 + computeGroupSizeNoTag(value);
}
 
/**
* Compute the number of bytes that would be needed to encode a
* {@code group} field represented by an {@code UnknownFieldSet}, including
* tag.
*
* @deprecated UnknownFieldSet now implements MessageLite, so you can just
* call {@link #computeGroupSize}.
*/
@Deprecated
public static int computeUnknownGroupSize(final int fieldNumber,
final MessageLite value) {
return computeGroupSize(fieldNumber, value);
}
 
/**
* Compute the number of bytes that would be needed to encode an
* embedded message field, including tag.
*/
public static int computeMessageSize(final int fieldNumber,
final MessageLite value) {
return computeTagSize(fieldNumber) + computeMessageSizeNoTag(value);
}
 
/**
* Compute the number of bytes that would be needed to encode a
* {@code bytes} field, including tag.
*/
public static int computeBytesSize(final int fieldNumber,
final ByteString value) {
return computeTagSize(fieldNumber) + computeBytesSizeNoTag(value);
}
 
/**
* Compute the number of bytes that would be needed to encode a
* {@code uint32} field, including tag.
*/
public static int computeUInt32Size(final int fieldNumber, final int value) {
return computeTagSize(fieldNumber) + computeUInt32SizeNoTag(value);
}
 
/**
* Compute the number of bytes that would be needed to encode an
* enum field, including tag. Caller is responsible for converting the
* enum value to its numeric value.
*/
public static int computeEnumSize(final int fieldNumber, final int value) {
return computeTagSize(fieldNumber) + computeEnumSizeNoTag(value);
}
 
/**
* Compute the number of bytes that would be needed to encode an
* {@code sfixed32} field, including tag.
*/
public static int computeSFixed32Size(final int fieldNumber,
final int value) {
return computeTagSize(fieldNumber) + computeSFixed32SizeNoTag(value);
}
 
/**
* Compute the number of bytes that would be needed to encode an
* {@code sfixed64} field, including tag.
*/
public static int computeSFixed64Size(final int fieldNumber,
final long value) {
return computeTagSize(fieldNumber) + computeSFixed64SizeNoTag(value);
}
 
/**
* Compute the number of bytes that would be needed to encode an
* {@code sint32} field, including tag.
*/
public static int computeSInt32Size(final int fieldNumber, final int value) {
return computeTagSize(fieldNumber) + computeSInt32SizeNoTag(value);
}
 
/**
* Compute the number of bytes that would be needed to encode an
* {@code sint64} field, including tag.
*/
public static int computeSInt64Size(final int fieldNumber, final long value) {
return computeTagSize(fieldNumber) + computeSInt64SizeNoTag(value);
}
 
/**
* Compute the number of bytes that would be needed to encode a
* MessageSet extension to the stream. For historical reasons,
* the wire format differs from normal fields.
*/
public static int computeMessageSetExtensionSize(
final int fieldNumber, final MessageLite value) {
return computeTagSize(WireFormat.MESSAGE_SET_ITEM) * 2 +
computeUInt32Size(WireFormat.MESSAGE_SET_TYPE_ID, fieldNumber) +
computeMessageSize(WireFormat.MESSAGE_SET_MESSAGE, value);
}
 
/**
* Compute the number of bytes that would be needed to encode an
* unparsed MessageSet extension field to the stream. For
* historical reasons, the wire format differs from normal fields.
*/
public static int computeRawMessageSetExtensionSize(
final int fieldNumber, final ByteString value) {
return computeTagSize(WireFormat.MESSAGE_SET_ITEM) * 2 +
computeUInt32Size(WireFormat.MESSAGE_SET_TYPE_ID, fieldNumber) +
computeBytesSize(WireFormat.MESSAGE_SET_MESSAGE, value);
}
 
// -----------------------------------------------------------------
 
/**
* Compute the number of bytes that would be needed to encode a
* {@code double} field, including tag.
*/
public static int computeDoubleSizeNoTag(final double value) {
return LITTLE_ENDIAN_64_SIZE;
}
 
/**
* Compute the number of bytes that would be needed to encode a
* {@code float} field, including tag.
*/
public static int computeFloatSizeNoTag(final float value) {
return LITTLE_ENDIAN_32_SIZE;
}
 
/**
* Compute the number of bytes that would be needed to encode a
* {@code uint64} field, including tag.
*/
public static int computeUInt64SizeNoTag(final long value) {
return computeRawVarint64Size(value);
}
 
/**
* Compute the number of bytes that would be needed to encode an
* {@code int64} field, including tag.
*/
public static int computeInt64SizeNoTag(final long value) {
return computeRawVarint64Size(value);
}
 
/**
* Compute the number of bytes that would be needed to encode an
* {@code int32} field, including tag.
*/
public static int computeInt32SizeNoTag(final int value) {
if (value >= 0) {
return computeRawVarint32Size(value);
} else {
// Must sign-extend.
return 10;
}
}
 
/**
* Compute the number of bytes that would be needed to encode a
* {@code fixed64} field.
*/
public static int computeFixed64SizeNoTag(final long value) {
return LITTLE_ENDIAN_64_SIZE;
}
 
/**
* Compute the number of bytes that would be needed to encode a
* {@code fixed32} field.
*/
public static int computeFixed32SizeNoTag(final int value) {
return LITTLE_ENDIAN_32_SIZE;
}
 
/**
* Compute the number of bytes that would be needed to encode a
* {@code bool} field.
*/
public static int computeBoolSizeNoTag(final boolean value) {
return 1;
}
 
/**
* Compute the number of bytes that would be needed to encode a
* {@code string} field.
*/
public static int computeStringSizeNoTag(final String value) {
try {
final byte[] bytes = value.getBytes("UTF-8");
return computeRawVarint32Size(bytes.length) +
bytes.length;
} catch (UnsupportedEncodingException e) {
throw new RuntimeException("UTF-8 not supported.", e);
}
}
 
/**
* Compute the number of bytes that would be needed to encode a
* {@code group} field.
*/
public static int computeGroupSizeNoTag(final MessageLite value) {
return value.getSerializedSize();
}
 
/**
* Compute the number of bytes that would be needed to encode a
* {@code group} field represented by an {@code UnknownFieldSet}, including
* tag.
*
* @deprecated UnknownFieldSet now implements MessageLite, so you can just
* call {@link #computeUnknownGroupSizeNoTag}.
*/
@Deprecated
public static int computeUnknownGroupSizeNoTag(final MessageLite value) {
return computeGroupSizeNoTag(value);
}
 
/**
* Compute the number of bytes that would be needed to encode an embedded
* message field.
*/
public static int computeMessageSizeNoTag(final MessageLite value) {
final int size = value.getSerializedSize();
return computeRawVarint32Size(size) + size;
}
 
/**
* Compute the number of bytes that would be needed to encode a
* {@code bytes} field.
*/
public static int computeBytesSizeNoTag(final ByteString value) {
return computeRawVarint32Size(value.size()) +
value.size();
}
 
/**
* Compute the number of bytes that would be needed to encode a
* {@code uint32} field.
*/
public static int computeUInt32SizeNoTag(final int value) {
return computeRawVarint32Size(value);
}
 
/**
* Compute the number of bytes that would be needed to encode an enum field.
* Caller is responsible for converting the enum value to its numeric value.
*/
public static int computeEnumSizeNoTag(final int value) {
return computeInt32SizeNoTag(value);
}
 
/**
* Compute the number of bytes that would be needed to encode an
* {@code sfixed32} field.
*/
public static int computeSFixed32SizeNoTag(final int value) {
return LITTLE_ENDIAN_32_SIZE;
}
 
/**
* Compute the number of bytes that would be needed to encode an
* {@code sfixed64} field.
*/
public static int computeSFixed64SizeNoTag(final long value) {
return LITTLE_ENDIAN_64_SIZE;
}
 
/**
* Compute the number of bytes that would be needed to encode an
* {@code sint32} field.
*/
public static int computeSInt32SizeNoTag(final int value) {
return computeRawVarint32Size(encodeZigZag32(value));
}
 
/**
* Compute the number of bytes that would be needed to encode an
* {@code sint64} field.
*/
public static int computeSInt64SizeNoTag(final long value) {
return computeRawVarint64Size(encodeZigZag64(value));
}
 
// =================================================================
 
/**
* Internal helper that writes the current buffer to the output. The
* buffer position is reset to its initial value when this returns.
*/
private void refreshBuffer() throws IOException {
if (output == null) {
// We're writing to a single buffer.
throw new OutOfSpaceException();
}
 
// Since we have an output stream, this is our buffer
// and buffer offset == 0
output.write(buffer, 0, position);
position = 0;
}
 
/**
* Flushes the stream and forces any buffered bytes to be written. This
* does not flush the underlying OutputStream.
*/
public void flush() throws IOException {
if (output != null) {
refreshBuffer();
}
}
 
/**
* If writing to a flat array, return the space left in the array.
* Otherwise, throws {@code UnsupportedOperationException}.
*/
public int spaceLeft() {
if (output == null) {
return limit - position;
} else {
throw new UnsupportedOperationException(
"spaceLeft() can only be called on CodedOutputStreams that are " +
"writing to a flat array.");
}
}
 
/**
* Verifies that {@link #spaceLeft()} returns zero. It's common to create
* a byte array that is exactly big enough to hold a message, then write to
* it with a {@code CodedOutputStream}. Calling {@code checkNoSpaceLeft()}
* after writing verifies that the message was actually as big as expected,
* which can help catch bugs.
*/
public void checkNoSpaceLeft() {
if (spaceLeft() != 0) {
throw new IllegalStateException(
"Did not write as much data as expected.");
}
}
 
/**
* If you create a CodedOutputStream around a simple flat array, you must
* not attempt to write more bytes than the array has space. Otherwise,
* this exception will be thrown.
*/
public static class OutOfSpaceException extends IOException {
private static final long serialVersionUID = -6947486886997889499L;
 
OutOfSpaceException() {
super("CodedOutputStream was writing to a flat byte array and ran " +
"out of space.");
}
}
 
/** Write a single byte. */
public void writeRawByte(final byte value) throws IOException {
if (position == limit) {
refreshBuffer();
}
 
buffer[position++] = value;
}
 
/** Write a single byte, represented by an integer value. */
public void writeRawByte(final int value) throws IOException {
writeRawByte((byte) value);
}
 
/** Write a byte string. */
public void writeRawBytes(final ByteString value) throws IOException {
writeRawBytes(value, 0, value.size());
}
 
/** Write an array of bytes. */
public void writeRawBytes(final byte[] value) throws IOException {
writeRawBytes(value, 0, value.length);
}
 
/** Write part of an array of bytes. */
public void writeRawBytes(final byte[] value, int offset, int length)
throws IOException {
if (limit - position >= length) {
// We have room in the current buffer.
System.arraycopy(value, offset, buffer, position, length);
position += length;
} else {
// Write extends past current buffer. Fill the rest of this buffer and
// flush.
final int bytesWritten = limit - position;
System.arraycopy(value, offset, buffer, position, bytesWritten);
offset += bytesWritten;
length -= bytesWritten;
position = limit;
refreshBuffer();
 
// Now deal with the rest.
// Since we have an output stream, this is our buffer
// and buffer offset == 0
if (length <= limit) {
// Fits in new buffer.
System.arraycopy(value, offset, buffer, 0, length);
position = length;
} else {
// Write is very big. Let's do it all at once.
output.write(value, offset, length);
}
}
}
 
/** Write part of a byte string. */
public void writeRawBytes(final ByteString value, int offset, int length)
throws IOException {
if (limit - position >= length) {
// We have room in the current buffer.
value.copyTo(buffer, offset, position, length);
position += length;
} else {
// Write extends past current buffer. Fill the rest of this buffer and
// flush.
final int bytesWritten = limit - position;
value.copyTo(buffer, offset, position, bytesWritten);
offset += bytesWritten;
length -= bytesWritten;
position = limit;
refreshBuffer();
 
// Now deal with the rest.
// Since we have an output stream, this is our buffer
// and buffer offset == 0
if (length <= limit) {
// Fits in new buffer.
value.copyTo(buffer, offset, 0, length);
position = length;
} else {
// Write is very big, but we can't do it all at once without allocating
// an a copy of the byte array since ByteString does not give us access
// to the underlying bytes. Use the InputStream interface on the
// ByteString and our buffer to copy between the two.
InputStream inputStreamFrom = value.newInput();
if (offset != inputStreamFrom.skip(offset)) {
throw new IllegalStateException("Skip failed? Should never happen.");
}
// Use the buffer as the temporary buffer to avoid allocating memory.
while (length > 0) {
int bytesToRead = Math.min(length, limit);
int bytesRead = inputStreamFrom.read(buffer, 0, bytesToRead);
if (bytesRead != bytesToRead) {
throw new IllegalStateException("Read failed? Should never happen");
}
output.write(buffer, 0, bytesRead);
length -= bytesRead;
}
}
}
}
 
/** Encode and write a tag. */
public void writeTag(final int fieldNumber, final int wireType)
throws IOException {
writeRawVarint32(WireFormat.makeTag(fieldNumber, wireType));
}
 
/** Compute the number of bytes that would be needed to encode a tag. */
public static int computeTagSize(final int fieldNumber) {
return computeRawVarint32Size(WireFormat.makeTag(fieldNumber, 0));
}
 
/**
* Encode and write a varint. {@code value} is treated as
* unsigned, so it won't be sign-extended if negative.
*/
public void writeRawVarint32(int value) throws IOException {
while (true) {
if ((value & ~0x7F) == 0) {
writeRawByte(value);
return;
} else {
writeRawByte((value & 0x7F) | 0x80);
value >>>= 7;
}
}
}
 
/**
* Compute the number of bytes that would be needed to encode a varint.
* {@code value} is treated as unsigned, so it won't be sign-extended if
* negative.
*/
public static int computeRawVarint32Size(final int value) {
if ((value & (0xffffffff << 7)) == 0) return 1;
if ((value & (0xffffffff << 14)) == 0) return 2;
if ((value & (0xffffffff << 21)) == 0) return 3;
if ((value & (0xffffffff << 28)) == 0) return 4;
return 5;
}
 
/** Encode and write a varint. */
public void writeRawVarint64(long value) throws IOException {
while (true) {
if ((value & ~0x7FL) == 0) {
writeRawByte((int)value);
return;
} else {
writeRawByte(((int)value & 0x7F) | 0x80);
value >>>= 7;
}
}
}
 
/** Compute the number of bytes that would be needed to encode a varint. */
public static int computeRawVarint64Size(final long value) {
if ((value & (0xffffffffffffffffL << 7)) == 0) return 1;
if ((value & (0xffffffffffffffffL << 14)) == 0) return 2;
if ((value & (0xffffffffffffffffL << 21)) == 0) return 3;
if ((value & (0xffffffffffffffffL << 28)) == 0) return 4;
if ((value & (0xffffffffffffffffL << 35)) == 0) return 5;
if ((value & (0xffffffffffffffffL << 42)) == 0) return 6;
if ((value & (0xffffffffffffffffL << 49)) == 0) return 7;
if ((value & (0xffffffffffffffffL << 56)) == 0) return 8;
if ((value & (0xffffffffffffffffL << 63)) == 0) return 9;
return 10;
}
 
/** Write a little-endian 32-bit integer. */
public void writeRawLittleEndian32(final int value) throws IOException {
writeRawByte((value ) & 0xFF);
writeRawByte((value >> 8) & 0xFF);
writeRawByte((value >> 16) & 0xFF);
writeRawByte((value >> 24) & 0xFF);
}
 
public static final int LITTLE_ENDIAN_32_SIZE = 4;
 
/** Write a little-endian 64-bit integer. */
public void writeRawLittleEndian64(final long value) throws IOException {
writeRawByte((int)(value ) & 0xFF);
writeRawByte((int)(value >> 8) & 0xFF);
writeRawByte((int)(value >> 16) & 0xFF);
writeRawByte((int)(value >> 24) & 0xFF);
writeRawByte((int)(value >> 32) & 0xFF);
writeRawByte((int)(value >> 40) & 0xFF);
writeRawByte((int)(value >> 48) & 0xFF);
writeRawByte((int)(value >> 56) & 0xFF);
}
 
public static final int LITTLE_ENDIAN_64_SIZE = 8;
 
/**
* Encode a ZigZag-encoded 32-bit value. ZigZag encodes signed integers
* into values that can be efficiently encoded with varint. (Otherwise,
* negative values must be sign-extended to 64 bits to be varint encoded,
* thus always taking 10 bytes on the wire.)
*
* @param n A signed 32-bit integer.
* @return An unsigned 32-bit integer, stored in a signed int because
* Java has no explicit unsigned support.
*/
public static int encodeZigZag32(final int n) {
// Note: the right-shift must be arithmetic
return (n << 1) ^ (n >> 31);
}
 
/**
* Encode a ZigZag-encoded 64-bit value. ZigZag encodes signed integers
* into values that can be efficiently encoded with varint. (Otherwise,
* negative values must be sign-extended to 64 bits to be varint encoded,
* thus always taking 10 bytes on the wire.)
*
* @param n A signed 64-bit integer.
* @return An unsigned 64-bit integer, stored in a signed int because
* Java has no explicit unsigned support.
*/
public static long encodeZigZag64(final long n) {
// Note: the right-shift must be arithmetic
return (n << 1) ^ (n >> 63);
}
}
/Android Development/IOIODebuggerServer/src/com/google/protobuf/DescriptorProtos.java
0,0 → 1,17063
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: google/protobuf/descriptor.proto
 
package com.google.protobuf;
 
public final class DescriptorProtos {
private DescriptorProtos() {}
public static void registerAllExtensions(
com.google.protobuf.ExtensionRegistry registry) {
}
public interface FileDescriptorSetOrBuilder
extends com.google.protobuf.MessageOrBuilder {
// repeated .google.protobuf.FileDescriptorProto file = 1;
java.util.List<com.google.protobuf.DescriptorProtos.FileDescriptorProto>
getFileList();
com.google.protobuf.DescriptorProtos.FileDescriptorProto getFile(int index);
int getFileCount();
java.util.List<? extends com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder>
getFileOrBuilderList();
com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder getFileOrBuilder(
int index);
}
public static final class FileDescriptorSet extends
com.google.protobuf.GeneratedMessage
implements FileDescriptorSetOrBuilder {
// Use FileDescriptorSet.newBuilder() to construct.
private FileDescriptorSet(Builder builder) {
super(builder);
}
private FileDescriptorSet(boolean noInit) {}
private static final FileDescriptorSet defaultInstance;
public static FileDescriptorSet getDefaultInstance() {
return defaultInstance;
}
public FileDescriptorSet getDefaultInstanceForType() {
return defaultInstance;
}
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_FileDescriptorSet_descriptor;
}
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_FileDescriptorSet_fieldAccessorTable;
}
// repeated .google.protobuf.FileDescriptorProto file = 1;
public static final int FILE_FIELD_NUMBER = 1;
private java.util.List<com.google.protobuf.DescriptorProtos.FileDescriptorProto> file_;
public java.util.List<com.google.protobuf.DescriptorProtos.FileDescriptorProto> getFileList() {
return file_;
}
public java.util.List<? extends com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder>
getFileOrBuilderList() {
return file_;
}
public int getFileCount() {
return file_.size();
}
public com.google.protobuf.DescriptorProtos.FileDescriptorProto getFile(int index) {
return file_.get(index);
}
public com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder getFileOrBuilder(
int index) {
return file_.get(index);
}
private void initFields() {
file_ = 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 < getFileCount(); i++) {
if (!getFile(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 < file_.size(); i++) {
output.writeMessage(1, file_.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 < file_.size(); i++) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(1, file_.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 com.google.protobuf.DescriptorProtos.FileDescriptorSet parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.FileDescriptorSet parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.FileDescriptorSet parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.FileDescriptorSet parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.FileDescriptorSet parseFrom(java.io.InputStream input)
throws java.io.IOException {
return newBuilder().mergeFrom(input).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.FileDescriptorSet parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return newBuilder().mergeFrom(input, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.FileDescriptorSet parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
Builder builder = newBuilder();
if (builder.mergeDelimitedFrom(input)) {
return builder.buildParsed();
} else {
return null;
}
}
public static com.google.protobuf.DescriptorProtos.FileDescriptorSet 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 com.google.protobuf.DescriptorProtos.FileDescriptorSet parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return newBuilder().mergeFrom(input).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.FileDescriptorSet 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(com.google.protobuf.DescriptorProtos.FileDescriptorSet 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 com.google.protobuf.DescriptorProtos.FileDescriptorSetOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_FileDescriptorSet_descriptor;
}
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_FileDescriptorSet_fieldAccessorTable;
}
// Construct using com.google.protobuf.DescriptorProtos.FileDescriptorSet.newBuilder()
private Builder() {
maybeForceBuilderInitialization();
}
private Builder(BuilderParent parent) {
super(parent);
maybeForceBuilderInitialization();
}
private void maybeForceBuilderInitialization() {
if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
getFileFieldBuilder();
}
}
private static Builder create() {
return new Builder();
}
public Builder clear() {
super.clear();
if (fileBuilder_ == null) {
file_ = java.util.Collections.emptyList();
bitField0_ = (bitField0_ & ~0x00000001);
} else {
fileBuilder_.clear();
}
return this;
}
public Builder clone() {
return create().mergeFrom(buildPartial());
}
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
return com.google.protobuf.DescriptorProtos.FileDescriptorSet.getDescriptor();
}
public com.google.protobuf.DescriptorProtos.FileDescriptorSet getDefaultInstanceForType() {
return com.google.protobuf.DescriptorProtos.FileDescriptorSet.getDefaultInstance();
}
public com.google.protobuf.DescriptorProtos.FileDescriptorSet build() {
com.google.protobuf.DescriptorProtos.FileDescriptorSet result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(result);
}
return result;
}
private com.google.protobuf.DescriptorProtos.FileDescriptorSet buildParsed()
throws com.google.protobuf.InvalidProtocolBufferException {
com.google.protobuf.DescriptorProtos.FileDescriptorSet result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(
result).asInvalidProtocolBufferException();
}
return result;
}
public com.google.protobuf.DescriptorProtos.FileDescriptorSet buildPartial() {
com.google.protobuf.DescriptorProtos.FileDescriptorSet result = new com.google.protobuf.DescriptorProtos.FileDescriptorSet(this);
int from_bitField0_ = bitField0_;
if (fileBuilder_ == null) {
if (((bitField0_ & 0x00000001) == 0x00000001)) {
file_ = java.util.Collections.unmodifiableList(file_);
bitField0_ = (bitField0_ & ~0x00000001);
}
result.file_ = file_;
} else {
result.file_ = fileBuilder_.build();
}
onBuilt();
return result;
}
public Builder mergeFrom(com.google.protobuf.Message other) {
if (other instanceof com.google.protobuf.DescriptorProtos.FileDescriptorSet) {
return mergeFrom((com.google.protobuf.DescriptorProtos.FileDescriptorSet)other);
} else {
super.mergeFrom(other);
return this;
}
}
public Builder mergeFrom(com.google.protobuf.DescriptorProtos.FileDescriptorSet other) {
if (other == com.google.protobuf.DescriptorProtos.FileDescriptorSet.getDefaultInstance()) return this;
if (fileBuilder_ == null) {
if (!other.file_.isEmpty()) {
if (file_.isEmpty()) {
file_ = other.file_;
bitField0_ = (bitField0_ & ~0x00000001);
} else {
ensureFileIsMutable();
file_.addAll(other.file_);
}
onChanged();
}
} else {
if (!other.file_.isEmpty()) {
if (fileBuilder_.isEmpty()) {
fileBuilder_.dispose();
fileBuilder_ = null;
file_ = other.file_;
bitField0_ = (bitField0_ & ~0x00000001);
fileBuilder_ =
com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
getFileFieldBuilder() : null;
} else {
fileBuilder_.addAllMessages(other.file_);
}
}
}
this.mergeUnknownFields(other.getUnknownFields());
return this;
}
public final boolean isInitialized() {
for (int i = 0; i < getFileCount(); i++) {
if (!getFile(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(
this.getUnknownFields());
while (true) {
int tag = input.readTag();
switch (tag) {
case 0:
this.setUnknownFields(unknownFields.build());
onChanged();
return this;
default: {
if (!parseUnknownField(input, unknownFields,
extensionRegistry, tag)) {
this.setUnknownFields(unknownFields.build());
onChanged();
return this;
}
break;
}
case 10: {
com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder subBuilder = com.google.protobuf.DescriptorProtos.FileDescriptorProto.newBuilder();
input.readMessage(subBuilder, extensionRegistry);
addFile(subBuilder.buildPartial());
break;
}
}
}
}
private int bitField0_;
// repeated .google.protobuf.FileDescriptorProto file = 1;
private java.util.List<com.google.protobuf.DescriptorProtos.FileDescriptorProto> file_ =
java.util.Collections.emptyList();
private void ensureFileIsMutable() {
if (!((bitField0_ & 0x00000001) == 0x00000001)) {
file_ = new java.util.ArrayList<com.google.protobuf.DescriptorProtos.FileDescriptorProto>(file_);
bitField0_ |= 0x00000001;
}
}
private com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.FileDescriptorProto, com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder, com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder> fileBuilder_;
public java.util.List<com.google.protobuf.DescriptorProtos.FileDescriptorProto> getFileList() {
if (fileBuilder_ == null) {
return java.util.Collections.unmodifiableList(file_);
} else {
return fileBuilder_.getMessageList();
}
}
public int getFileCount() {
if (fileBuilder_ == null) {
return file_.size();
} else {
return fileBuilder_.getCount();
}
}
public com.google.protobuf.DescriptorProtos.FileDescriptorProto getFile(int index) {
if (fileBuilder_ == null) {
return file_.get(index);
} else {
return fileBuilder_.getMessage(index);
}
}
public Builder setFile(
int index, com.google.protobuf.DescriptorProtos.FileDescriptorProto value) {
if (fileBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureFileIsMutable();
file_.set(index, value);
onChanged();
} else {
fileBuilder_.setMessage(index, value);
}
return this;
}
public Builder setFile(
int index, com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder builderForValue) {
if (fileBuilder_ == null) {
ensureFileIsMutable();
file_.set(index, builderForValue.build());
onChanged();
} else {
fileBuilder_.setMessage(index, builderForValue.build());
}
return this;
}
public Builder addFile(com.google.protobuf.DescriptorProtos.FileDescriptorProto value) {
if (fileBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureFileIsMutable();
file_.add(value);
onChanged();
} else {
fileBuilder_.addMessage(value);
}
return this;
}
public Builder addFile(
int index, com.google.protobuf.DescriptorProtos.FileDescriptorProto value) {
if (fileBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureFileIsMutable();
file_.add(index, value);
onChanged();
} else {
fileBuilder_.addMessage(index, value);
}
return this;
}
public Builder addFile(
com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder builderForValue) {
if (fileBuilder_ == null) {
ensureFileIsMutable();
file_.add(builderForValue.build());
onChanged();
} else {
fileBuilder_.addMessage(builderForValue.build());
}
return this;
}
public Builder addFile(
int index, com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder builderForValue) {
if (fileBuilder_ == null) {
ensureFileIsMutable();
file_.add(index, builderForValue.build());
onChanged();
} else {
fileBuilder_.addMessage(index, builderForValue.build());
}
return this;
}
public Builder addAllFile(
java.lang.Iterable<? extends com.google.protobuf.DescriptorProtos.FileDescriptorProto> values) {
if (fileBuilder_ == null) {
ensureFileIsMutable();
super.addAll(values, file_);
onChanged();
} else {
fileBuilder_.addAllMessages(values);
}
return this;
}
public Builder clearFile() {
if (fileBuilder_ == null) {
file_ = java.util.Collections.emptyList();
bitField0_ = (bitField0_ & ~0x00000001);
onChanged();
} else {
fileBuilder_.clear();
}
return this;
}
public Builder removeFile(int index) {
if (fileBuilder_ == null) {
ensureFileIsMutable();
file_.remove(index);
onChanged();
} else {
fileBuilder_.remove(index);
}
return this;
}
public com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder getFileBuilder(
int index) {
return getFileFieldBuilder().getBuilder(index);
}
public com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder getFileOrBuilder(
int index) {
if (fileBuilder_ == null) {
return file_.get(index); } else {
return fileBuilder_.getMessageOrBuilder(index);
}
}
public java.util.List<? extends com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder>
getFileOrBuilderList() {
if (fileBuilder_ != null) {
return fileBuilder_.getMessageOrBuilderList();
} else {
return java.util.Collections.unmodifiableList(file_);
}
}
public com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder addFileBuilder() {
return getFileFieldBuilder().addBuilder(
com.google.protobuf.DescriptorProtos.FileDescriptorProto.getDefaultInstance());
}
public com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder addFileBuilder(
int index) {
return getFileFieldBuilder().addBuilder(
index, com.google.protobuf.DescriptorProtos.FileDescriptorProto.getDefaultInstance());
}
public java.util.List<com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder>
getFileBuilderList() {
return getFileFieldBuilder().getBuilderList();
}
private com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.FileDescriptorProto, com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder, com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder>
getFileFieldBuilder() {
if (fileBuilder_ == null) {
fileBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.FileDescriptorProto, com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder, com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder>(
file_,
((bitField0_ & 0x00000001) == 0x00000001),
getParentForChildren(),
isClean());
file_ = null;
}
return fileBuilder_;
}
// @@protoc_insertion_point(builder_scope:google.protobuf.FileDescriptorSet)
}
static {
defaultInstance = new FileDescriptorSet(true);
defaultInstance.initFields();
}
// @@protoc_insertion_point(class_scope:google.protobuf.FileDescriptorSet)
}
public interface FileDescriptorProtoOrBuilder
extends com.google.protobuf.MessageOrBuilder {
// optional string name = 1;
boolean hasName();
String getName();
// optional string package = 2;
boolean hasPackage();
String getPackage();
// repeated string dependency = 3;
java.util.List<String> getDependencyList();
int getDependencyCount();
String getDependency(int index);
// repeated .google.protobuf.DescriptorProto message_type = 4;
java.util.List<com.google.protobuf.DescriptorProtos.DescriptorProto>
getMessageTypeList();
com.google.protobuf.DescriptorProtos.DescriptorProto getMessageType(int index);
int getMessageTypeCount();
java.util.List<? extends com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder>
getMessageTypeOrBuilderList();
com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder getMessageTypeOrBuilder(
int index);
// repeated .google.protobuf.EnumDescriptorProto enum_type = 5;
java.util.List<com.google.protobuf.DescriptorProtos.EnumDescriptorProto>
getEnumTypeList();
com.google.protobuf.DescriptorProtos.EnumDescriptorProto getEnumType(int index);
int getEnumTypeCount();
java.util.List<? extends com.google.protobuf.DescriptorProtos.EnumDescriptorProtoOrBuilder>
getEnumTypeOrBuilderList();
com.google.protobuf.DescriptorProtos.EnumDescriptorProtoOrBuilder getEnumTypeOrBuilder(
int index);
// repeated .google.protobuf.ServiceDescriptorProto service = 6;
java.util.List<com.google.protobuf.DescriptorProtos.ServiceDescriptorProto>
getServiceList();
com.google.protobuf.DescriptorProtos.ServiceDescriptorProto getService(int index);
int getServiceCount();
java.util.List<? extends com.google.protobuf.DescriptorProtos.ServiceDescriptorProtoOrBuilder>
getServiceOrBuilderList();
com.google.protobuf.DescriptorProtos.ServiceDescriptorProtoOrBuilder getServiceOrBuilder(
int index);
// repeated .google.protobuf.FieldDescriptorProto extension = 7;
java.util.List<com.google.protobuf.DescriptorProtos.FieldDescriptorProto>
getExtensionList();
com.google.protobuf.DescriptorProtos.FieldDescriptorProto getExtension(int index);
int getExtensionCount();
java.util.List<? extends com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder>
getExtensionOrBuilderList();
com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder getExtensionOrBuilder(
int index);
// optional .google.protobuf.FileOptions options = 8;
boolean hasOptions();
com.google.protobuf.DescriptorProtos.FileOptions getOptions();
com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder getOptionsOrBuilder();
// optional .google.protobuf.SourceCodeInfo source_code_info = 9;
boolean hasSourceCodeInfo();
com.google.protobuf.DescriptorProtos.SourceCodeInfo getSourceCodeInfo();
com.google.protobuf.DescriptorProtos.SourceCodeInfoOrBuilder getSourceCodeInfoOrBuilder();
}
public static final class FileDescriptorProto extends
com.google.protobuf.GeneratedMessage
implements FileDescriptorProtoOrBuilder {
// Use FileDescriptorProto.newBuilder() to construct.
private FileDescriptorProto(Builder builder) {
super(builder);
}
private FileDescriptorProto(boolean noInit) {}
private static final FileDescriptorProto defaultInstance;
public static FileDescriptorProto getDefaultInstance() {
return defaultInstance;
}
public FileDescriptorProto getDefaultInstanceForType() {
return defaultInstance;
}
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_FileDescriptorProto_descriptor;
}
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_FileDescriptorProto_fieldAccessorTable;
}
private int bitField0_;
// optional string name = 1;
public static final int NAME_FIELD_NUMBER = 1;
private java.lang.Object name_;
public boolean hasName() {
return ((bitField0_ & 0x00000001) == 0x00000001);
}
public String getName() {
java.lang.Object ref = name_;
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)) {
name_ = s;
}
return s;
}
}
private com.google.protobuf.ByteString getNameBytes() {
java.lang.Object ref = name_;
if (ref instanceof String) {
com.google.protobuf.ByteString b =
com.google.protobuf.ByteString.copyFromUtf8((String) ref);
name_ = b;
return b;
} else {
return (com.google.protobuf.ByteString) ref;
}
}
// optional string package = 2;
public static final int PACKAGE_FIELD_NUMBER = 2;
private java.lang.Object package_;
public boolean hasPackage() {
return ((bitField0_ & 0x00000002) == 0x00000002);
}
public String getPackage() {
java.lang.Object ref = package_;
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)) {
package_ = s;
}
return s;
}
}
private com.google.protobuf.ByteString getPackageBytes() {
java.lang.Object ref = package_;
if (ref instanceof String) {
com.google.protobuf.ByteString b =
com.google.protobuf.ByteString.copyFromUtf8((String) ref);
package_ = b;
return b;
} else {
return (com.google.protobuf.ByteString) ref;
}
}
// repeated string dependency = 3;
public static final int DEPENDENCY_FIELD_NUMBER = 3;
private com.google.protobuf.LazyStringList dependency_;
public java.util.List<String>
getDependencyList() {
return dependency_;
}
public int getDependencyCount() {
return dependency_.size();
}
public String getDependency(int index) {
return dependency_.get(index);
}
// repeated .google.protobuf.DescriptorProto message_type = 4;
public static final int MESSAGE_TYPE_FIELD_NUMBER = 4;
private java.util.List<com.google.protobuf.DescriptorProtos.DescriptorProto> messageType_;
public java.util.List<com.google.protobuf.DescriptorProtos.DescriptorProto> getMessageTypeList() {
return messageType_;
}
public java.util.List<? extends com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder>
getMessageTypeOrBuilderList() {
return messageType_;
}
public int getMessageTypeCount() {
return messageType_.size();
}
public com.google.protobuf.DescriptorProtos.DescriptorProto getMessageType(int index) {
return messageType_.get(index);
}
public com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder getMessageTypeOrBuilder(
int index) {
return messageType_.get(index);
}
// repeated .google.protobuf.EnumDescriptorProto enum_type = 5;
public static final int ENUM_TYPE_FIELD_NUMBER = 5;
private java.util.List<com.google.protobuf.DescriptorProtos.EnumDescriptorProto> enumType_;
public java.util.List<com.google.protobuf.DescriptorProtos.EnumDescriptorProto> getEnumTypeList() {
return enumType_;
}
public java.util.List<? extends com.google.protobuf.DescriptorProtos.EnumDescriptorProtoOrBuilder>
getEnumTypeOrBuilderList() {
return enumType_;
}
public int getEnumTypeCount() {
return enumType_.size();
}
public com.google.protobuf.DescriptorProtos.EnumDescriptorProto getEnumType(int index) {
return enumType_.get(index);
}
public com.google.protobuf.DescriptorProtos.EnumDescriptorProtoOrBuilder getEnumTypeOrBuilder(
int index) {
return enumType_.get(index);
}
// repeated .google.protobuf.ServiceDescriptorProto service = 6;
public static final int SERVICE_FIELD_NUMBER = 6;
private java.util.List<com.google.protobuf.DescriptorProtos.ServiceDescriptorProto> service_;
public java.util.List<com.google.protobuf.DescriptorProtos.ServiceDescriptorProto> getServiceList() {
return service_;
}
public java.util.List<? extends com.google.protobuf.DescriptorProtos.ServiceDescriptorProtoOrBuilder>
getServiceOrBuilderList() {
return service_;
}
public int getServiceCount() {
return service_.size();
}
public com.google.protobuf.DescriptorProtos.ServiceDescriptorProto getService(int index) {
return service_.get(index);
}
public com.google.protobuf.DescriptorProtos.ServiceDescriptorProtoOrBuilder getServiceOrBuilder(
int index) {
return service_.get(index);
}
// repeated .google.protobuf.FieldDescriptorProto extension = 7;
public static final int EXTENSION_FIELD_NUMBER = 7;
private java.util.List<com.google.protobuf.DescriptorProtos.FieldDescriptorProto> extension_;
public java.util.List<com.google.protobuf.DescriptorProtos.FieldDescriptorProto> getExtensionList() {
return extension_;
}
public java.util.List<? extends com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder>
getExtensionOrBuilderList() {
return extension_;
}
public int getExtensionCount() {
return extension_.size();
}
public com.google.protobuf.DescriptorProtos.FieldDescriptorProto getExtension(int index) {
return extension_.get(index);
}
public com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder getExtensionOrBuilder(
int index) {
return extension_.get(index);
}
// optional .google.protobuf.FileOptions options = 8;
public static final int OPTIONS_FIELD_NUMBER = 8;
private com.google.protobuf.DescriptorProtos.FileOptions options_;
public boolean hasOptions() {
return ((bitField0_ & 0x00000004) == 0x00000004);
}
public com.google.protobuf.DescriptorProtos.FileOptions getOptions() {
return options_;
}
public com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder getOptionsOrBuilder() {
return options_;
}
// optional .google.protobuf.SourceCodeInfo source_code_info = 9;
public static final int SOURCE_CODE_INFO_FIELD_NUMBER = 9;
private com.google.protobuf.DescriptorProtos.SourceCodeInfo sourceCodeInfo_;
public boolean hasSourceCodeInfo() {
return ((bitField0_ & 0x00000008) == 0x00000008);
}
public com.google.protobuf.DescriptorProtos.SourceCodeInfo getSourceCodeInfo() {
return sourceCodeInfo_;
}
public com.google.protobuf.DescriptorProtos.SourceCodeInfoOrBuilder getSourceCodeInfoOrBuilder() {
return sourceCodeInfo_;
}
private void initFields() {
name_ = "";
package_ = "";
dependency_ = com.google.protobuf.LazyStringArrayList.EMPTY;
messageType_ = java.util.Collections.emptyList();
enumType_ = java.util.Collections.emptyList();
service_ = java.util.Collections.emptyList();
extension_ = java.util.Collections.emptyList();
options_ = com.google.protobuf.DescriptorProtos.FileOptions.getDefaultInstance();
sourceCodeInfo_ = com.google.protobuf.DescriptorProtos.SourceCodeInfo.getDefaultInstance();
}
private byte memoizedIsInitialized = -1;
public final boolean isInitialized() {
byte isInitialized = memoizedIsInitialized;
if (isInitialized != -1) return isInitialized == 1;
for (int i = 0; i < getMessageTypeCount(); i++) {
if (!getMessageType(i).isInitialized()) {
memoizedIsInitialized = 0;
return false;
}
}
for (int i = 0; i < getEnumTypeCount(); i++) {
if (!getEnumType(i).isInitialized()) {
memoizedIsInitialized = 0;
return false;
}
}
for (int i = 0; i < getServiceCount(); i++) {
if (!getService(i).isInitialized()) {
memoizedIsInitialized = 0;
return false;
}
}
for (int i = 0; i < getExtensionCount(); i++) {
if (!getExtension(i).isInitialized()) {
memoizedIsInitialized = 0;
return false;
}
}
if (hasOptions()) {
if (!getOptions().isInitialized()) {
memoizedIsInitialized = 0;
return false;
}
}
memoizedIsInitialized = 1;
return true;
}
public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException {
getSerializedSize();
if (((bitField0_ & 0x00000001) == 0x00000001)) {
output.writeBytes(1, getNameBytes());
}
if (((bitField0_ & 0x00000002) == 0x00000002)) {
output.writeBytes(2, getPackageBytes());
}
for (int i = 0; i < dependency_.size(); i++) {
output.writeBytes(3, dependency_.getByteString(i));
}
for (int i = 0; i < messageType_.size(); i++) {
output.writeMessage(4, messageType_.get(i));
}
for (int i = 0; i < enumType_.size(); i++) {
output.writeMessage(5, enumType_.get(i));
}
for (int i = 0; i < service_.size(); i++) {
output.writeMessage(6, service_.get(i));
}
for (int i = 0; i < extension_.size(); i++) {
output.writeMessage(7, extension_.get(i));
}
if (((bitField0_ & 0x00000004) == 0x00000004)) {
output.writeMessage(8, options_);
}
if (((bitField0_ & 0x00000008) == 0x00000008)) {
output.writeMessage(9, sourceCodeInfo_);
}
getUnknownFields().writeTo(output);
}
private int memoizedSerializedSize = -1;
public int getSerializedSize() {
int size = memoizedSerializedSize;
if (size != -1) return size;
size = 0;
if (((bitField0_ & 0x00000001) == 0x00000001)) {
size += com.google.protobuf.CodedOutputStream
.computeBytesSize(1, getNameBytes());
}
if (((bitField0_ & 0x00000002) == 0x00000002)) {
size += com.google.protobuf.CodedOutputStream
.computeBytesSize(2, getPackageBytes());
}
{
int dataSize = 0;
for (int i = 0; i < dependency_.size(); i++) {
dataSize += com.google.protobuf.CodedOutputStream
.computeBytesSizeNoTag(dependency_.getByteString(i));
}
size += dataSize;
size += 1 * getDependencyList().size();
}
for (int i = 0; i < messageType_.size(); i++) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(4, messageType_.get(i));
}
for (int i = 0; i < enumType_.size(); i++) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(5, enumType_.get(i));
}
for (int i = 0; i < service_.size(); i++) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(6, service_.get(i));
}
for (int i = 0; i < extension_.size(); i++) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(7, extension_.get(i));
}
if (((bitField0_ & 0x00000004) == 0x00000004)) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(8, options_);
}
if (((bitField0_ & 0x00000008) == 0x00000008)) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(9, sourceCodeInfo_);
}
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 com.google.protobuf.DescriptorProtos.FileDescriptorProto parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.FileDescriptorProto parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.FileDescriptorProto parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.FileDescriptorProto parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.FileDescriptorProto parseFrom(java.io.InputStream input)
throws java.io.IOException {
return newBuilder().mergeFrom(input).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.FileDescriptorProto parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return newBuilder().mergeFrom(input, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.FileDescriptorProto parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
Builder builder = newBuilder();
if (builder.mergeDelimitedFrom(input)) {
return builder.buildParsed();
} else {
return null;
}
}
public static com.google.protobuf.DescriptorProtos.FileDescriptorProto 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 com.google.protobuf.DescriptorProtos.FileDescriptorProto parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return newBuilder().mergeFrom(input).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.FileDescriptorProto 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(com.google.protobuf.DescriptorProtos.FileDescriptorProto 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 com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_FileDescriptorProto_descriptor;
}
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_FileDescriptorProto_fieldAccessorTable;
}
// Construct using com.google.protobuf.DescriptorProtos.FileDescriptorProto.newBuilder()
private Builder() {
maybeForceBuilderInitialization();
}
private Builder(BuilderParent parent) {
super(parent);
maybeForceBuilderInitialization();
}
private void maybeForceBuilderInitialization() {
if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
getMessageTypeFieldBuilder();
getEnumTypeFieldBuilder();
getServiceFieldBuilder();
getExtensionFieldBuilder();
getOptionsFieldBuilder();
getSourceCodeInfoFieldBuilder();
}
}
private static Builder create() {
return new Builder();
}
public Builder clear() {
super.clear();
name_ = "";
bitField0_ = (bitField0_ & ~0x00000001);
package_ = "";
bitField0_ = (bitField0_ & ~0x00000002);
dependency_ = com.google.protobuf.LazyStringArrayList.EMPTY;
bitField0_ = (bitField0_ & ~0x00000004);
if (messageTypeBuilder_ == null) {
messageType_ = java.util.Collections.emptyList();
bitField0_ = (bitField0_ & ~0x00000008);
} else {
messageTypeBuilder_.clear();
}
if (enumTypeBuilder_ == null) {
enumType_ = java.util.Collections.emptyList();
bitField0_ = (bitField0_ & ~0x00000010);
} else {
enumTypeBuilder_.clear();
}
if (serviceBuilder_ == null) {
service_ = java.util.Collections.emptyList();
bitField0_ = (bitField0_ & ~0x00000020);
} else {
serviceBuilder_.clear();
}
if (extensionBuilder_ == null) {
extension_ = java.util.Collections.emptyList();
bitField0_ = (bitField0_ & ~0x00000040);
} else {
extensionBuilder_.clear();
}
if (optionsBuilder_ == null) {
options_ = com.google.protobuf.DescriptorProtos.FileOptions.getDefaultInstance();
} else {
optionsBuilder_.clear();
}
bitField0_ = (bitField0_ & ~0x00000080);
if (sourceCodeInfoBuilder_ == null) {
sourceCodeInfo_ = com.google.protobuf.DescriptorProtos.SourceCodeInfo.getDefaultInstance();
} else {
sourceCodeInfoBuilder_.clear();
}
bitField0_ = (bitField0_ & ~0x00000100);
return this;
}
public Builder clone() {
return create().mergeFrom(buildPartial());
}
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
return com.google.protobuf.DescriptorProtos.FileDescriptorProto.getDescriptor();
}
public com.google.protobuf.DescriptorProtos.FileDescriptorProto getDefaultInstanceForType() {
return com.google.protobuf.DescriptorProtos.FileDescriptorProto.getDefaultInstance();
}
public com.google.protobuf.DescriptorProtos.FileDescriptorProto build() {
com.google.protobuf.DescriptorProtos.FileDescriptorProto result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(result);
}
return result;
}
private com.google.protobuf.DescriptorProtos.FileDescriptorProto buildParsed()
throws com.google.protobuf.InvalidProtocolBufferException {
com.google.protobuf.DescriptorProtos.FileDescriptorProto result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(
result).asInvalidProtocolBufferException();
}
return result;
}
public com.google.protobuf.DescriptorProtos.FileDescriptorProto buildPartial() {
com.google.protobuf.DescriptorProtos.FileDescriptorProto result = new com.google.protobuf.DescriptorProtos.FileDescriptorProto(this);
int from_bitField0_ = bitField0_;
int to_bitField0_ = 0;
if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
to_bitField0_ |= 0x00000001;
}
result.name_ = name_;
if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
to_bitField0_ |= 0x00000002;
}
result.package_ = package_;
if (((bitField0_ & 0x00000004) == 0x00000004)) {
dependency_ = new com.google.protobuf.UnmodifiableLazyStringList(
dependency_);
bitField0_ = (bitField0_ & ~0x00000004);
}
result.dependency_ = dependency_;
if (messageTypeBuilder_ == null) {
if (((bitField0_ & 0x00000008) == 0x00000008)) {
messageType_ = java.util.Collections.unmodifiableList(messageType_);
bitField0_ = (bitField0_ & ~0x00000008);
}
result.messageType_ = messageType_;
} else {
result.messageType_ = messageTypeBuilder_.build();
}
if (enumTypeBuilder_ == null) {
if (((bitField0_ & 0x00000010) == 0x00000010)) {
enumType_ = java.util.Collections.unmodifiableList(enumType_);
bitField0_ = (bitField0_ & ~0x00000010);
}
result.enumType_ = enumType_;
} else {
result.enumType_ = enumTypeBuilder_.build();
}
if (serviceBuilder_ == null) {
if (((bitField0_ & 0x00000020) == 0x00000020)) {
service_ = java.util.Collections.unmodifiableList(service_);
bitField0_ = (bitField0_ & ~0x00000020);
}
result.service_ = service_;
} else {
result.service_ = serviceBuilder_.build();
}
if (extensionBuilder_ == null) {
if (((bitField0_ & 0x00000040) == 0x00000040)) {
extension_ = java.util.Collections.unmodifiableList(extension_);
bitField0_ = (bitField0_ & ~0x00000040);
}
result.extension_ = extension_;
} else {
result.extension_ = extensionBuilder_.build();
}
if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
to_bitField0_ |= 0x00000004;
}
if (optionsBuilder_ == null) {
result.options_ = options_;
} else {
result.options_ = optionsBuilder_.build();
}
if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
to_bitField0_ |= 0x00000008;
}
if (sourceCodeInfoBuilder_ == null) {
result.sourceCodeInfo_ = sourceCodeInfo_;
} else {
result.sourceCodeInfo_ = sourceCodeInfoBuilder_.build();
}
result.bitField0_ = to_bitField0_;
onBuilt();
return result;
}
public Builder mergeFrom(com.google.protobuf.Message other) {
if (other instanceof com.google.protobuf.DescriptorProtos.FileDescriptorProto) {
return mergeFrom((com.google.protobuf.DescriptorProtos.FileDescriptorProto)other);
} else {
super.mergeFrom(other);
return this;
}
}
public Builder mergeFrom(com.google.protobuf.DescriptorProtos.FileDescriptorProto other) {
if (other == com.google.protobuf.DescriptorProtos.FileDescriptorProto.getDefaultInstance()) return this;
if (other.hasName()) {
setName(other.getName());
}
if (other.hasPackage()) {
setPackage(other.getPackage());
}
if (!other.dependency_.isEmpty()) {
if (dependency_.isEmpty()) {
dependency_ = other.dependency_;
bitField0_ = (bitField0_ & ~0x00000004);
} else {
ensureDependencyIsMutable();
dependency_.addAll(other.dependency_);
}
onChanged();
}
if (messageTypeBuilder_ == null) {
if (!other.messageType_.isEmpty()) {
if (messageType_.isEmpty()) {
messageType_ = other.messageType_;
bitField0_ = (bitField0_ & ~0x00000008);
} else {
ensureMessageTypeIsMutable();
messageType_.addAll(other.messageType_);
}
onChanged();
}
} else {
if (!other.messageType_.isEmpty()) {
if (messageTypeBuilder_.isEmpty()) {
messageTypeBuilder_.dispose();
messageTypeBuilder_ = null;
messageType_ = other.messageType_;
bitField0_ = (bitField0_ & ~0x00000008);
messageTypeBuilder_ =
com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
getMessageTypeFieldBuilder() : null;
} else {
messageTypeBuilder_.addAllMessages(other.messageType_);
}
}
}
if (enumTypeBuilder_ == null) {
if (!other.enumType_.isEmpty()) {
if (enumType_.isEmpty()) {
enumType_ = other.enumType_;
bitField0_ = (bitField0_ & ~0x00000010);
} else {
ensureEnumTypeIsMutable();
enumType_.addAll(other.enumType_);
}
onChanged();
}
} else {
if (!other.enumType_.isEmpty()) {
if (enumTypeBuilder_.isEmpty()) {
enumTypeBuilder_.dispose();
enumTypeBuilder_ = null;
enumType_ = other.enumType_;
bitField0_ = (bitField0_ & ~0x00000010);
enumTypeBuilder_ =
com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
getEnumTypeFieldBuilder() : null;
} else {
enumTypeBuilder_.addAllMessages(other.enumType_);
}
}
}
if (serviceBuilder_ == null) {
if (!other.service_.isEmpty()) {
if (service_.isEmpty()) {
service_ = other.service_;
bitField0_ = (bitField0_ & ~0x00000020);
} else {
ensureServiceIsMutable();
service_.addAll(other.service_);
}
onChanged();
}
} else {
if (!other.service_.isEmpty()) {
if (serviceBuilder_.isEmpty()) {
serviceBuilder_.dispose();
serviceBuilder_ = null;
service_ = other.service_;
bitField0_ = (bitField0_ & ~0x00000020);
serviceBuilder_ =
com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
getServiceFieldBuilder() : null;
} else {
serviceBuilder_.addAllMessages(other.service_);
}
}
}
if (extensionBuilder_ == null) {
if (!other.extension_.isEmpty()) {
if (extension_.isEmpty()) {
extension_ = other.extension_;
bitField0_ = (bitField0_ & ~0x00000040);
} else {
ensureExtensionIsMutable();
extension_.addAll(other.extension_);
}
onChanged();
}
} else {
if (!other.extension_.isEmpty()) {
if (extensionBuilder_.isEmpty()) {
extensionBuilder_.dispose();
extensionBuilder_ = null;
extension_ = other.extension_;
bitField0_ = (bitField0_ & ~0x00000040);
extensionBuilder_ =
com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
getExtensionFieldBuilder() : null;
} else {
extensionBuilder_.addAllMessages(other.extension_);
}
}
}
if (other.hasOptions()) {
mergeOptions(other.getOptions());
}
if (other.hasSourceCodeInfo()) {
mergeSourceCodeInfo(other.getSourceCodeInfo());
}
this.mergeUnknownFields(other.getUnknownFields());
return this;
}
public final boolean isInitialized() {
for (int i = 0; i < getMessageTypeCount(); i++) {
if (!getMessageType(i).isInitialized()) {
return false;
}
}
for (int i = 0; i < getEnumTypeCount(); i++) {
if (!getEnumType(i).isInitialized()) {
return false;
}
}
for (int i = 0; i < getServiceCount(); i++) {
if (!getService(i).isInitialized()) {
return false;
}
}
for (int i = 0; i < getExtensionCount(); i++) {
if (!getExtension(i).isInitialized()) {
return false;
}
}
if (hasOptions()) {
if (!getOptions().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(
this.getUnknownFields());
while (true) {
int tag = input.readTag();
switch (tag) {
case 0:
this.setUnknownFields(unknownFields.build());
onChanged();
return this;
default: {
if (!parseUnknownField(input, unknownFields,
extensionRegistry, tag)) {
this.setUnknownFields(unknownFields.build());
onChanged();
return this;
}
break;
}
case 10: {
bitField0_ |= 0x00000001;
name_ = input.readBytes();
break;
}
case 18: {
bitField0_ |= 0x00000002;
package_ = input.readBytes();
break;
}
case 26: {
ensureDependencyIsMutable();
dependency_.add(input.readBytes());
break;
}
case 34: {
com.google.protobuf.DescriptorProtos.DescriptorProto.Builder subBuilder = com.google.protobuf.DescriptorProtos.DescriptorProto.newBuilder();
input.readMessage(subBuilder, extensionRegistry);
addMessageType(subBuilder.buildPartial());
break;
}
case 42: {
com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder subBuilder = com.google.protobuf.DescriptorProtos.EnumDescriptorProto.newBuilder();
input.readMessage(subBuilder, extensionRegistry);
addEnumType(subBuilder.buildPartial());
break;
}
case 50: {
com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder subBuilder = com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.newBuilder();
input.readMessage(subBuilder, extensionRegistry);
addService(subBuilder.buildPartial());
break;
}
case 58: {
com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder subBuilder = com.google.protobuf.DescriptorProtos.FieldDescriptorProto.newBuilder();
input.readMessage(subBuilder, extensionRegistry);
addExtension(subBuilder.buildPartial());
break;
}
case 66: {
com.google.protobuf.DescriptorProtos.FileOptions.Builder subBuilder = com.google.protobuf.DescriptorProtos.FileOptions.newBuilder();
if (hasOptions()) {
subBuilder.mergeFrom(getOptions());
}
input.readMessage(subBuilder, extensionRegistry);
setOptions(subBuilder.buildPartial());
break;
}
case 74: {
com.google.protobuf.DescriptorProtos.SourceCodeInfo.Builder subBuilder = com.google.protobuf.DescriptorProtos.SourceCodeInfo.newBuilder();
if (hasSourceCodeInfo()) {
subBuilder.mergeFrom(getSourceCodeInfo());
}
input.readMessage(subBuilder, extensionRegistry);
setSourceCodeInfo(subBuilder.buildPartial());
break;
}
}
}
}
private int bitField0_;
// optional string name = 1;
private java.lang.Object name_ = "";
public boolean hasName() {
return ((bitField0_ & 0x00000001) == 0x00000001);
}
public String getName() {
java.lang.Object ref = name_;
if (!(ref instanceof String)) {
String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
name_ = s;
return s;
} else {
return (String) ref;
}
}
public Builder setName(String value) {
if (value == null) {
throw new NullPointerException();
}
bitField0_ |= 0x00000001;
name_ = value;
onChanged();
return this;
}
public Builder clearName() {
bitField0_ = (bitField0_ & ~0x00000001);
name_ = getDefaultInstance().getName();
onChanged();
return this;
}
void setName(com.google.protobuf.ByteString value) {
bitField0_ |= 0x00000001;
name_ = value;
onChanged();
}
// optional string package = 2;
private java.lang.Object package_ = "";
public boolean hasPackage() {
return ((bitField0_ & 0x00000002) == 0x00000002);
}
public String getPackage() {
java.lang.Object ref = package_;
if (!(ref instanceof String)) {
String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
package_ = s;
return s;
} else {
return (String) ref;
}
}
public Builder setPackage(String value) {
if (value == null) {
throw new NullPointerException();
}
bitField0_ |= 0x00000002;
package_ = value;
onChanged();
return this;
}
public Builder clearPackage() {
bitField0_ = (bitField0_ & ~0x00000002);
package_ = getDefaultInstance().getPackage();
onChanged();
return this;
}
void setPackage(com.google.protobuf.ByteString value) {
bitField0_ |= 0x00000002;
package_ = value;
onChanged();
}
// repeated string dependency = 3;
private com.google.protobuf.LazyStringList dependency_ = com.google.protobuf.LazyStringArrayList.EMPTY;
private void ensureDependencyIsMutable() {
if (!((bitField0_ & 0x00000004) == 0x00000004)) {
dependency_ = new com.google.protobuf.LazyStringArrayList(dependency_);
bitField0_ |= 0x00000004;
}
}
public java.util.List<String>
getDependencyList() {
return java.util.Collections.unmodifiableList(dependency_);
}
public int getDependencyCount() {
return dependency_.size();
}
public String getDependency(int index) {
return dependency_.get(index);
}
public Builder setDependency(
int index, String value) {
if (value == null) {
throw new NullPointerException();
}
ensureDependencyIsMutable();
dependency_.set(index, value);
onChanged();
return this;
}
public Builder addDependency(String value) {
if (value == null) {
throw new NullPointerException();
}
ensureDependencyIsMutable();
dependency_.add(value);
onChanged();
return this;
}
public Builder addAllDependency(
java.lang.Iterable<String> values) {
ensureDependencyIsMutable();
super.addAll(values, dependency_);
onChanged();
return this;
}
public Builder clearDependency() {
dependency_ = com.google.protobuf.LazyStringArrayList.EMPTY;
bitField0_ = (bitField0_ & ~0x00000004);
onChanged();
return this;
}
void addDependency(com.google.protobuf.ByteString value) {
ensureDependencyIsMutable();
dependency_.add(value);
onChanged();
}
// repeated .google.protobuf.DescriptorProto message_type = 4;
private java.util.List<com.google.protobuf.DescriptorProtos.DescriptorProto> messageType_ =
java.util.Collections.emptyList();
private void ensureMessageTypeIsMutable() {
if (!((bitField0_ & 0x00000008) == 0x00000008)) {
messageType_ = new java.util.ArrayList<com.google.protobuf.DescriptorProtos.DescriptorProto>(messageType_);
bitField0_ |= 0x00000008;
}
}
private com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.DescriptorProto, com.google.protobuf.DescriptorProtos.DescriptorProto.Builder, com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder> messageTypeBuilder_;
public java.util.List<com.google.protobuf.DescriptorProtos.DescriptorProto> getMessageTypeList() {
if (messageTypeBuilder_ == null) {
return java.util.Collections.unmodifiableList(messageType_);
} else {
return messageTypeBuilder_.getMessageList();
}
}
public int getMessageTypeCount() {
if (messageTypeBuilder_ == null) {
return messageType_.size();
} else {
return messageTypeBuilder_.getCount();
}
}
public com.google.protobuf.DescriptorProtos.DescriptorProto getMessageType(int index) {
if (messageTypeBuilder_ == null) {
return messageType_.get(index);
} else {
return messageTypeBuilder_.getMessage(index);
}
}
public Builder setMessageType(
int index, com.google.protobuf.DescriptorProtos.DescriptorProto value) {
if (messageTypeBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureMessageTypeIsMutable();
messageType_.set(index, value);
onChanged();
} else {
messageTypeBuilder_.setMessage(index, value);
}
return this;
}
public Builder setMessageType(
int index, com.google.protobuf.DescriptorProtos.DescriptorProto.Builder builderForValue) {
if (messageTypeBuilder_ == null) {
ensureMessageTypeIsMutable();
messageType_.set(index, builderForValue.build());
onChanged();
} else {
messageTypeBuilder_.setMessage(index, builderForValue.build());
}
return this;
}
public Builder addMessageType(com.google.protobuf.DescriptorProtos.DescriptorProto value) {
if (messageTypeBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureMessageTypeIsMutable();
messageType_.add(value);
onChanged();
} else {
messageTypeBuilder_.addMessage(value);
}
return this;
}
public Builder addMessageType(
int index, com.google.protobuf.DescriptorProtos.DescriptorProto value) {
if (messageTypeBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureMessageTypeIsMutable();
messageType_.add(index, value);
onChanged();
} else {
messageTypeBuilder_.addMessage(index, value);
}
return this;
}
public Builder addMessageType(
com.google.protobuf.DescriptorProtos.DescriptorProto.Builder builderForValue) {
if (messageTypeBuilder_ == null) {
ensureMessageTypeIsMutable();
messageType_.add(builderForValue.build());
onChanged();
} else {
messageTypeBuilder_.addMessage(builderForValue.build());
}
return this;
}
public Builder addMessageType(
int index, com.google.protobuf.DescriptorProtos.DescriptorProto.Builder builderForValue) {
if (messageTypeBuilder_ == null) {
ensureMessageTypeIsMutable();
messageType_.add(index, builderForValue.build());
onChanged();
} else {
messageTypeBuilder_.addMessage(index, builderForValue.build());
}
return this;
}
public Builder addAllMessageType(
java.lang.Iterable<? extends com.google.protobuf.DescriptorProtos.DescriptorProto> values) {
if (messageTypeBuilder_ == null) {
ensureMessageTypeIsMutable();
super.addAll(values, messageType_);
onChanged();
} else {
messageTypeBuilder_.addAllMessages(values);
}
return this;
}
public Builder clearMessageType() {
if (messageTypeBuilder_ == null) {
messageType_ = java.util.Collections.emptyList();
bitField0_ = (bitField0_ & ~0x00000008);
onChanged();
} else {
messageTypeBuilder_.clear();
}
return this;
}
public Builder removeMessageType(int index) {
if (messageTypeBuilder_ == null) {
ensureMessageTypeIsMutable();
messageType_.remove(index);
onChanged();
} else {
messageTypeBuilder_.remove(index);
}
return this;
}
public com.google.protobuf.DescriptorProtos.DescriptorProto.Builder getMessageTypeBuilder(
int index) {
return getMessageTypeFieldBuilder().getBuilder(index);
}
public com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder getMessageTypeOrBuilder(
int index) {
if (messageTypeBuilder_ == null) {
return messageType_.get(index); } else {
return messageTypeBuilder_.getMessageOrBuilder(index);
}
}
public java.util.List<? extends com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder>
getMessageTypeOrBuilderList() {
if (messageTypeBuilder_ != null) {
return messageTypeBuilder_.getMessageOrBuilderList();
} else {
return java.util.Collections.unmodifiableList(messageType_);
}
}
public com.google.protobuf.DescriptorProtos.DescriptorProto.Builder addMessageTypeBuilder() {
return getMessageTypeFieldBuilder().addBuilder(
com.google.protobuf.DescriptorProtos.DescriptorProto.getDefaultInstance());
}
public com.google.protobuf.DescriptorProtos.DescriptorProto.Builder addMessageTypeBuilder(
int index) {
return getMessageTypeFieldBuilder().addBuilder(
index, com.google.protobuf.DescriptorProtos.DescriptorProto.getDefaultInstance());
}
public java.util.List<com.google.protobuf.DescriptorProtos.DescriptorProto.Builder>
getMessageTypeBuilderList() {
return getMessageTypeFieldBuilder().getBuilderList();
}
private com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.DescriptorProto, com.google.protobuf.DescriptorProtos.DescriptorProto.Builder, com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder>
getMessageTypeFieldBuilder() {
if (messageTypeBuilder_ == null) {
messageTypeBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.DescriptorProto, com.google.protobuf.DescriptorProtos.DescriptorProto.Builder, com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder>(
messageType_,
((bitField0_ & 0x00000008) == 0x00000008),
getParentForChildren(),
isClean());
messageType_ = null;
}
return messageTypeBuilder_;
}
// repeated .google.protobuf.EnumDescriptorProto enum_type = 5;
private java.util.List<com.google.protobuf.DescriptorProtos.EnumDescriptorProto> enumType_ =
java.util.Collections.emptyList();
private void ensureEnumTypeIsMutable() {
if (!((bitField0_ & 0x00000010) == 0x00000010)) {
enumType_ = new java.util.ArrayList<com.google.protobuf.DescriptorProtos.EnumDescriptorProto>(enumType_);
bitField0_ |= 0x00000010;
}
}
private com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.EnumDescriptorProto, com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder, com.google.protobuf.DescriptorProtos.EnumDescriptorProtoOrBuilder> enumTypeBuilder_;
public java.util.List<com.google.protobuf.DescriptorProtos.EnumDescriptorProto> getEnumTypeList() {
if (enumTypeBuilder_ == null) {
return java.util.Collections.unmodifiableList(enumType_);
} else {
return enumTypeBuilder_.getMessageList();
}
}
public int getEnumTypeCount() {
if (enumTypeBuilder_ == null) {
return enumType_.size();
} else {
return enumTypeBuilder_.getCount();
}
}
public com.google.protobuf.DescriptorProtos.EnumDescriptorProto getEnumType(int index) {
if (enumTypeBuilder_ == null) {
return enumType_.get(index);
} else {
return enumTypeBuilder_.getMessage(index);
}
}
public Builder setEnumType(
int index, com.google.protobuf.DescriptorProtos.EnumDescriptorProto value) {
if (enumTypeBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureEnumTypeIsMutable();
enumType_.set(index, value);
onChanged();
} else {
enumTypeBuilder_.setMessage(index, value);
}
return this;
}
public Builder setEnumType(
int index, com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder builderForValue) {
if (enumTypeBuilder_ == null) {
ensureEnumTypeIsMutable();
enumType_.set(index, builderForValue.build());
onChanged();
} else {
enumTypeBuilder_.setMessage(index, builderForValue.build());
}
return this;
}
public Builder addEnumType(com.google.protobuf.DescriptorProtos.EnumDescriptorProto value) {
if (enumTypeBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureEnumTypeIsMutable();
enumType_.add(value);
onChanged();
} else {
enumTypeBuilder_.addMessage(value);
}
return this;
}
public Builder addEnumType(
int index, com.google.protobuf.DescriptorProtos.EnumDescriptorProto value) {
if (enumTypeBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureEnumTypeIsMutable();
enumType_.add(index, value);
onChanged();
} else {
enumTypeBuilder_.addMessage(index, value);
}
return this;
}
public Builder addEnumType(
com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder builderForValue) {
if (enumTypeBuilder_ == null) {
ensureEnumTypeIsMutable();
enumType_.add(builderForValue.build());
onChanged();
} else {
enumTypeBuilder_.addMessage(builderForValue.build());
}
return this;
}
public Builder addEnumType(
int index, com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder builderForValue) {
if (enumTypeBuilder_ == null) {
ensureEnumTypeIsMutable();
enumType_.add(index, builderForValue.build());
onChanged();
} else {
enumTypeBuilder_.addMessage(index, builderForValue.build());
}
return this;
}
public Builder addAllEnumType(
java.lang.Iterable<? extends com.google.protobuf.DescriptorProtos.EnumDescriptorProto> values) {
if (enumTypeBuilder_ == null) {
ensureEnumTypeIsMutable();
super.addAll(values, enumType_);
onChanged();
} else {
enumTypeBuilder_.addAllMessages(values);
}
return this;
}
public Builder clearEnumType() {
if (enumTypeBuilder_ == null) {
enumType_ = java.util.Collections.emptyList();
bitField0_ = (bitField0_ & ~0x00000010);
onChanged();
} else {
enumTypeBuilder_.clear();
}
return this;
}
public Builder removeEnumType(int index) {
if (enumTypeBuilder_ == null) {
ensureEnumTypeIsMutable();
enumType_.remove(index);
onChanged();
} else {
enumTypeBuilder_.remove(index);
}
return this;
}
public com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder getEnumTypeBuilder(
int index) {
return getEnumTypeFieldBuilder().getBuilder(index);
}
public com.google.protobuf.DescriptorProtos.EnumDescriptorProtoOrBuilder getEnumTypeOrBuilder(
int index) {
if (enumTypeBuilder_ == null) {
return enumType_.get(index); } else {
return enumTypeBuilder_.getMessageOrBuilder(index);
}
}
public java.util.List<? extends com.google.protobuf.DescriptorProtos.EnumDescriptorProtoOrBuilder>
getEnumTypeOrBuilderList() {
if (enumTypeBuilder_ != null) {
return enumTypeBuilder_.getMessageOrBuilderList();
} else {
return java.util.Collections.unmodifiableList(enumType_);
}
}
public com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder addEnumTypeBuilder() {
return getEnumTypeFieldBuilder().addBuilder(
com.google.protobuf.DescriptorProtos.EnumDescriptorProto.getDefaultInstance());
}
public com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder addEnumTypeBuilder(
int index) {
return getEnumTypeFieldBuilder().addBuilder(
index, com.google.protobuf.DescriptorProtos.EnumDescriptorProto.getDefaultInstance());
}
public java.util.List<com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder>
getEnumTypeBuilderList() {
return getEnumTypeFieldBuilder().getBuilderList();
}
private com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.EnumDescriptorProto, com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder, com.google.protobuf.DescriptorProtos.EnumDescriptorProtoOrBuilder>
getEnumTypeFieldBuilder() {
if (enumTypeBuilder_ == null) {
enumTypeBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.EnumDescriptorProto, com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder, com.google.protobuf.DescriptorProtos.EnumDescriptorProtoOrBuilder>(
enumType_,
((bitField0_ & 0x00000010) == 0x00000010),
getParentForChildren(),
isClean());
enumType_ = null;
}
return enumTypeBuilder_;
}
// repeated .google.protobuf.ServiceDescriptorProto service = 6;
private java.util.List<com.google.protobuf.DescriptorProtos.ServiceDescriptorProto> service_ =
java.util.Collections.emptyList();
private void ensureServiceIsMutable() {
if (!((bitField0_ & 0x00000020) == 0x00000020)) {
service_ = new java.util.ArrayList<com.google.protobuf.DescriptorProtos.ServiceDescriptorProto>(service_);
bitField0_ |= 0x00000020;
}
}
private com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.ServiceDescriptorProto, com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder, com.google.protobuf.DescriptorProtos.ServiceDescriptorProtoOrBuilder> serviceBuilder_;
public java.util.List<com.google.protobuf.DescriptorProtos.ServiceDescriptorProto> getServiceList() {
if (serviceBuilder_ == null) {
return java.util.Collections.unmodifiableList(service_);
} else {
return serviceBuilder_.getMessageList();
}
}
public int getServiceCount() {
if (serviceBuilder_ == null) {
return service_.size();
} else {
return serviceBuilder_.getCount();
}
}
public com.google.protobuf.DescriptorProtos.ServiceDescriptorProto getService(int index) {
if (serviceBuilder_ == null) {
return service_.get(index);
} else {
return serviceBuilder_.getMessage(index);
}
}
public Builder setService(
int index, com.google.protobuf.DescriptorProtos.ServiceDescriptorProto value) {
if (serviceBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureServiceIsMutable();
service_.set(index, value);
onChanged();
} else {
serviceBuilder_.setMessage(index, value);
}
return this;
}
public Builder setService(
int index, com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder builderForValue) {
if (serviceBuilder_ == null) {
ensureServiceIsMutable();
service_.set(index, builderForValue.build());
onChanged();
} else {
serviceBuilder_.setMessage(index, builderForValue.build());
}
return this;
}
public Builder addService(com.google.protobuf.DescriptorProtos.ServiceDescriptorProto value) {
if (serviceBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureServiceIsMutable();
service_.add(value);
onChanged();
} else {
serviceBuilder_.addMessage(value);
}
return this;
}
public Builder addService(
int index, com.google.protobuf.DescriptorProtos.ServiceDescriptorProto value) {
if (serviceBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureServiceIsMutable();
service_.add(index, value);
onChanged();
} else {
serviceBuilder_.addMessage(index, value);
}
return this;
}
public Builder addService(
com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder builderForValue) {
if (serviceBuilder_ == null) {
ensureServiceIsMutable();
service_.add(builderForValue.build());
onChanged();
} else {
serviceBuilder_.addMessage(builderForValue.build());
}
return this;
}
public Builder addService(
int index, com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder builderForValue) {
if (serviceBuilder_ == null) {
ensureServiceIsMutable();
service_.add(index, builderForValue.build());
onChanged();
} else {
serviceBuilder_.addMessage(index, builderForValue.build());
}
return this;
}
public Builder addAllService(
java.lang.Iterable<? extends com.google.protobuf.DescriptorProtos.ServiceDescriptorProto> values) {
if (serviceBuilder_ == null) {
ensureServiceIsMutable();
super.addAll(values, service_);
onChanged();
} else {
serviceBuilder_.addAllMessages(values);
}
return this;
}
public Builder clearService() {
if (serviceBuilder_ == null) {
service_ = java.util.Collections.emptyList();
bitField0_ = (bitField0_ & ~0x00000020);
onChanged();
} else {
serviceBuilder_.clear();
}
return this;
}
public Builder removeService(int index) {
if (serviceBuilder_ == null) {
ensureServiceIsMutable();
service_.remove(index);
onChanged();
} else {
serviceBuilder_.remove(index);
}
return this;
}
public com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder getServiceBuilder(
int index) {
return getServiceFieldBuilder().getBuilder(index);
}
public com.google.protobuf.DescriptorProtos.ServiceDescriptorProtoOrBuilder getServiceOrBuilder(
int index) {
if (serviceBuilder_ == null) {
return service_.get(index); } else {
return serviceBuilder_.getMessageOrBuilder(index);
}
}
public java.util.List<? extends com.google.protobuf.DescriptorProtos.ServiceDescriptorProtoOrBuilder>
getServiceOrBuilderList() {
if (serviceBuilder_ != null) {
return serviceBuilder_.getMessageOrBuilderList();
} else {
return java.util.Collections.unmodifiableList(service_);
}
}
public com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder addServiceBuilder() {
return getServiceFieldBuilder().addBuilder(
com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.getDefaultInstance());
}
public com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder addServiceBuilder(
int index) {
return getServiceFieldBuilder().addBuilder(
index, com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.getDefaultInstance());
}
public java.util.List<com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder>
getServiceBuilderList() {
return getServiceFieldBuilder().getBuilderList();
}
private com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.ServiceDescriptorProto, com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder, com.google.protobuf.DescriptorProtos.ServiceDescriptorProtoOrBuilder>
getServiceFieldBuilder() {
if (serviceBuilder_ == null) {
serviceBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.ServiceDescriptorProto, com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder, com.google.protobuf.DescriptorProtos.ServiceDescriptorProtoOrBuilder>(
service_,
((bitField0_ & 0x00000020) == 0x00000020),
getParentForChildren(),
isClean());
service_ = null;
}
return serviceBuilder_;
}
// repeated .google.protobuf.FieldDescriptorProto extension = 7;
private java.util.List<com.google.protobuf.DescriptorProtos.FieldDescriptorProto> extension_ =
java.util.Collections.emptyList();
private void ensureExtensionIsMutable() {
if (!((bitField0_ & 0x00000040) == 0x00000040)) {
extension_ = new java.util.ArrayList<com.google.protobuf.DescriptorProtos.FieldDescriptorProto>(extension_);
bitField0_ |= 0x00000040;
}
}
private com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.FieldDescriptorProto, com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder, com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder> extensionBuilder_;
public java.util.List<com.google.protobuf.DescriptorProtos.FieldDescriptorProto> getExtensionList() {
if (extensionBuilder_ == null) {
return java.util.Collections.unmodifiableList(extension_);
} else {
return extensionBuilder_.getMessageList();
}
}
public int getExtensionCount() {
if (extensionBuilder_ == null) {
return extension_.size();
} else {
return extensionBuilder_.getCount();
}
}
public com.google.protobuf.DescriptorProtos.FieldDescriptorProto getExtension(int index) {
if (extensionBuilder_ == null) {
return extension_.get(index);
} else {
return extensionBuilder_.getMessage(index);
}
}
public Builder setExtension(
int index, com.google.protobuf.DescriptorProtos.FieldDescriptorProto value) {
if (extensionBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureExtensionIsMutable();
extension_.set(index, value);
onChanged();
} else {
extensionBuilder_.setMessage(index, value);
}
return this;
}
public Builder setExtension(
int index, com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder builderForValue) {
if (extensionBuilder_ == null) {
ensureExtensionIsMutable();
extension_.set(index, builderForValue.build());
onChanged();
} else {
extensionBuilder_.setMessage(index, builderForValue.build());
}
return this;
}
public Builder addExtension(com.google.protobuf.DescriptorProtos.FieldDescriptorProto value) {
if (extensionBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureExtensionIsMutable();
extension_.add(value);
onChanged();
} else {
extensionBuilder_.addMessage(value);
}
return this;
}
public Builder addExtension(
int index, com.google.protobuf.DescriptorProtos.FieldDescriptorProto value) {
if (extensionBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureExtensionIsMutable();
extension_.add(index, value);
onChanged();
} else {
extensionBuilder_.addMessage(index, value);
}
return this;
}
public Builder addExtension(
com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder builderForValue) {
if (extensionBuilder_ == null) {
ensureExtensionIsMutable();
extension_.add(builderForValue.build());
onChanged();
} else {
extensionBuilder_.addMessage(builderForValue.build());
}
return this;
}
public Builder addExtension(
int index, com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder builderForValue) {
if (extensionBuilder_ == null) {
ensureExtensionIsMutable();
extension_.add(index, builderForValue.build());
onChanged();
} else {
extensionBuilder_.addMessage(index, builderForValue.build());
}
return this;
}
public Builder addAllExtension(
java.lang.Iterable<? extends com.google.protobuf.DescriptorProtos.FieldDescriptorProto> values) {
if (extensionBuilder_ == null) {
ensureExtensionIsMutable();
super.addAll(values, extension_);
onChanged();
} else {
extensionBuilder_.addAllMessages(values);
}
return this;
}
public Builder clearExtension() {
if (extensionBuilder_ == null) {
extension_ = java.util.Collections.emptyList();
bitField0_ = (bitField0_ & ~0x00000040);
onChanged();
} else {
extensionBuilder_.clear();
}
return this;
}
public Builder removeExtension(int index) {
if (extensionBuilder_ == null) {
ensureExtensionIsMutable();
extension_.remove(index);
onChanged();
} else {
extensionBuilder_.remove(index);
}
return this;
}
public com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder getExtensionBuilder(
int index) {
return getExtensionFieldBuilder().getBuilder(index);
}
public com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder getExtensionOrBuilder(
int index) {
if (extensionBuilder_ == null) {
return extension_.get(index); } else {
return extensionBuilder_.getMessageOrBuilder(index);
}
}
public java.util.List<? extends com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder>
getExtensionOrBuilderList() {
if (extensionBuilder_ != null) {
return extensionBuilder_.getMessageOrBuilderList();
} else {
return java.util.Collections.unmodifiableList(extension_);
}
}
public com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder addExtensionBuilder() {
return getExtensionFieldBuilder().addBuilder(
com.google.protobuf.DescriptorProtos.FieldDescriptorProto.getDefaultInstance());
}
public com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder addExtensionBuilder(
int index) {
return getExtensionFieldBuilder().addBuilder(
index, com.google.protobuf.DescriptorProtos.FieldDescriptorProto.getDefaultInstance());
}
public java.util.List<com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder>
getExtensionBuilderList() {
return getExtensionFieldBuilder().getBuilderList();
}
private com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.FieldDescriptorProto, com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder, com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder>
getExtensionFieldBuilder() {
if (extensionBuilder_ == null) {
extensionBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.FieldDescriptorProto, com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder, com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder>(
extension_,
((bitField0_ & 0x00000040) == 0x00000040),
getParentForChildren(),
isClean());
extension_ = null;
}
return extensionBuilder_;
}
// optional .google.protobuf.FileOptions options = 8;
private com.google.protobuf.DescriptorProtos.FileOptions options_ = com.google.protobuf.DescriptorProtos.FileOptions.getDefaultInstance();
private com.google.protobuf.SingleFieldBuilder<
com.google.protobuf.DescriptorProtos.FileOptions, com.google.protobuf.DescriptorProtos.FileOptions.Builder, com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder> optionsBuilder_;
public boolean hasOptions() {
return ((bitField0_ & 0x00000080) == 0x00000080);
}
public com.google.protobuf.DescriptorProtos.FileOptions getOptions() {
if (optionsBuilder_ == null) {
return options_;
} else {
return optionsBuilder_.getMessage();
}
}
public Builder setOptions(com.google.protobuf.DescriptorProtos.FileOptions value) {
if (optionsBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
options_ = value;
onChanged();
} else {
optionsBuilder_.setMessage(value);
}
bitField0_ |= 0x00000080;
return this;
}
public Builder setOptions(
com.google.protobuf.DescriptorProtos.FileOptions.Builder builderForValue) {
if (optionsBuilder_ == null) {
options_ = builderForValue.build();
onChanged();
} else {
optionsBuilder_.setMessage(builderForValue.build());
}
bitField0_ |= 0x00000080;
return this;
}
public Builder mergeOptions(com.google.protobuf.DescriptorProtos.FileOptions value) {
if (optionsBuilder_ == null) {
if (((bitField0_ & 0x00000080) == 0x00000080) &&
options_ != com.google.protobuf.DescriptorProtos.FileOptions.getDefaultInstance()) {
options_ =
com.google.protobuf.DescriptorProtos.FileOptions.newBuilder(options_).mergeFrom(value).buildPartial();
} else {
options_ = value;
}
onChanged();
} else {
optionsBuilder_.mergeFrom(value);
}
bitField0_ |= 0x00000080;
return this;
}
public Builder clearOptions() {
if (optionsBuilder_ == null) {
options_ = com.google.protobuf.DescriptorProtos.FileOptions.getDefaultInstance();
onChanged();
} else {
optionsBuilder_.clear();
}
bitField0_ = (bitField0_ & ~0x00000080);
return this;
}
public com.google.protobuf.DescriptorProtos.FileOptions.Builder getOptionsBuilder() {
bitField0_ |= 0x00000080;
onChanged();
return getOptionsFieldBuilder().getBuilder();
}
public com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder getOptionsOrBuilder() {
if (optionsBuilder_ != null) {
return optionsBuilder_.getMessageOrBuilder();
} else {
return options_;
}
}
private com.google.protobuf.SingleFieldBuilder<
com.google.protobuf.DescriptorProtos.FileOptions, com.google.protobuf.DescriptorProtos.FileOptions.Builder, com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder>
getOptionsFieldBuilder() {
if (optionsBuilder_ == null) {
optionsBuilder_ = new com.google.protobuf.SingleFieldBuilder<
com.google.protobuf.DescriptorProtos.FileOptions, com.google.protobuf.DescriptorProtos.FileOptions.Builder, com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder>(
options_,
getParentForChildren(),
isClean());
options_ = null;
}
return optionsBuilder_;
}
// optional .google.protobuf.SourceCodeInfo source_code_info = 9;
private com.google.protobuf.DescriptorProtos.SourceCodeInfo sourceCodeInfo_ = com.google.protobuf.DescriptorProtos.SourceCodeInfo.getDefaultInstance();
private com.google.protobuf.SingleFieldBuilder<
com.google.protobuf.DescriptorProtos.SourceCodeInfo, com.google.protobuf.DescriptorProtos.SourceCodeInfo.Builder, com.google.protobuf.DescriptorProtos.SourceCodeInfoOrBuilder> sourceCodeInfoBuilder_;
public boolean hasSourceCodeInfo() {
return ((bitField0_ & 0x00000100) == 0x00000100);
}
public com.google.protobuf.DescriptorProtos.SourceCodeInfo getSourceCodeInfo() {
if (sourceCodeInfoBuilder_ == null) {
return sourceCodeInfo_;
} else {
return sourceCodeInfoBuilder_.getMessage();
}
}
public Builder setSourceCodeInfo(com.google.protobuf.DescriptorProtos.SourceCodeInfo value) {
if (sourceCodeInfoBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
sourceCodeInfo_ = value;
onChanged();
} else {
sourceCodeInfoBuilder_.setMessage(value);
}
bitField0_ |= 0x00000100;
return this;
}
public Builder setSourceCodeInfo(
com.google.protobuf.DescriptorProtos.SourceCodeInfo.Builder builderForValue) {
if (sourceCodeInfoBuilder_ == null) {
sourceCodeInfo_ = builderForValue.build();
onChanged();
} else {
sourceCodeInfoBuilder_.setMessage(builderForValue.build());
}
bitField0_ |= 0x00000100;
return this;
}
public Builder mergeSourceCodeInfo(com.google.protobuf.DescriptorProtos.SourceCodeInfo value) {
if (sourceCodeInfoBuilder_ == null) {
if (((bitField0_ & 0x00000100) == 0x00000100) &&
sourceCodeInfo_ != com.google.protobuf.DescriptorProtos.SourceCodeInfo.getDefaultInstance()) {
sourceCodeInfo_ =
com.google.protobuf.DescriptorProtos.SourceCodeInfo.newBuilder(sourceCodeInfo_).mergeFrom(value).buildPartial();
} else {
sourceCodeInfo_ = value;
}
onChanged();
} else {
sourceCodeInfoBuilder_.mergeFrom(value);
}
bitField0_ |= 0x00000100;
return this;
}
public Builder clearSourceCodeInfo() {
if (sourceCodeInfoBuilder_ == null) {
sourceCodeInfo_ = com.google.protobuf.DescriptorProtos.SourceCodeInfo.getDefaultInstance();
onChanged();
} else {
sourceCodeInfoBuilder_.clear();
}
bitField0_ = (bitField0_ & ~0x00000100);
return this;
}
public com.google.protobuf.DescriptorProtos.SourceCodeInfo.Builder getSourceCodeInfoBuilder() {
bitField0_ |= 0x00000100;
onChanged();
return getSourceCodeInfoFieldBuilder().getBuilder();
}
public com.google.protobuf.DescriptorProtos.SourceCodeInfoOrBuilder getSourceCodeInfoOrBuilder() {
if (sourceCodeInfoBuilder_ != null) {
return sourceCodeInfoBuilder_.getMessageOrBuilder();
} else {
return sourceCodeInfo_;
}
}
private com.google.protobuf.SingleFieldBuilder<
com.google.protobuf.DescriptorProtos.SourceCodeInfo, com.google.protobuf.DescriptorProtos.SourceCodeInfo.Builder, com.google.protobuf.DescriptorProtos.SourceCodeInfoOrBuilder>
getSourceCodeInfoFieldBuilder() {
if (sourceCodeInfoBuilder_ == null) {
sourceCodeInfoBuilder_ = new com.google.protobuf.SingleFieldBuilder<
com.google.protobuf.DescriptorProtos.SourceCodeInfo, com.google.protobuf.DescriptorProtos.SourceCodeInfo.Builder, com.google.protobuf.DescriptorProtos.SourceCodeInfoOrBuilder>(
sourceCodeInfo_,
getParentForChildren(),
isClean());
sourceCodeInfo_ = null;
}
return sourceCodeInfoBuilder_;
}
// @@protoc_insertion_point(builder_scope:google.protobuf.FileDescriptorProto)
}
static {
defaultInstance = new FileDescriptorProto(true);
defaultInstance.initFields();
}
// @@protoc_insertion_point(class_scope:google.protobuf.FileDescriptorProto)
}
public interface DescriptorProtoOrBuilder
extends com.google.protobuf.MessageOrBuilder {
// optional string name = 1;
boolean hasName();
String getName();
// repeated .google.protobuf.FieldDescriptorProto field = 2;
java.util.List<com.google.protobuf.DescriptorProtos.FieldDescriptorProto>
getFieldList();
com.google.protobuf.DescriptorProtos.FieldDescriptorProto getField(int index);
int getFieldCount();
java.util.List<? extends com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder>
getFieldOrBuilderList();
com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder getFieldOrBuilder(
int index);
// repeated .google.protobuf.FieldDescriptorProto extension = 6;
java.util.List<com.google.protobuf.DescriptorProtos.FieldDescriptorProto>
getExtensionList();
com.google.protobuf.DescriptorProtos.FieldDescriptorProto getExtension(int index);
int getExtensionCount();
java.util.List<? extends com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder>
getExtensionOrBuilderList();
com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder getExtensionOrBuilder(
int index);
// repeated .google.protobuf.DescriptorProto nested_type = 3;
java.util.List<com.google.protobuf.DescriptorProtos.DescriptorProto>
getNestedTypeList();
com.google.protobuf.DescriptorProtos.DescriptorProto getNestedType(int index);
int getNestedTypeCount();
java.util.List<? extends com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder>
getNestedTypeOrBuilderList();
com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder getNestedTypeOrBuilder(
int index);
// repeated .google.protobuf.EnumDescriptorProto enum_type = 4;
java.util.List<com.google.protobuf.DescriptorProtos.EnumDescriptorProto>
getEnumTypeList();
com.google.protobuf.DescriptorProtos.EnumDescriptorProto getEnumType(int index);
int getEnumTypeCount();
java.util.List<? extends com.google.protobuf.DescriptorProtos.EnumDescriptorProtoOrBuilder>
getEnumTypeOrBuilderList();
com.google.protobuf.DescriptorProtos.EnumDescriptorProtoOrBuilder getEnumTypeOrBuilder(
int index);
// repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5;
java.util.List<com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange>
getExtensionRangeList();
com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange getExtensionRange(int index);
int getExtensionRangeCount();
java.util.List<? extends com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRangeOrBuilder>
getExtensionRangeOrBuilderList();
com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRangeOrBuilder getExtensionRangeOrBuilder(
int index);
// optional .google.protobuf.MessageOptions options = 7;
boolean hasOptions();
com.google.protobuf.DescriptorProtos.MessageOptions getOptions();
com.google.protobuf.DescriptorProtos.MessageOptionsOrBuilder getOptionsOrBuilder();
}
public static final class DescriptorProto extends
com.google.protobuf.GeneratedMessage
implements DescriptorProtoOrBuilder {
// Use DescriptorProto.newBuilder() to construct.
private DescriptorProto(Builder builder) {
super(builder);
}
private DescriptorProto(boolean noInit) {}
private static final DescriptorProto defaultInstance;
public static DescriptorProto getDefaultInstance() {
return defaultInstance;
}
public DescriptorProto getDefaultInstanceForType() {
return defaultInstance;
}
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_DescriptorProto_descriptor;
}
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_DescriptorProto_fieldAccessorTable;
}
public interface ExtensionRangeOrBuilder
extends com.google.protobuf.MessageOrBuilder {
// optional int32 start = 1;
boolean hasStart();
int getStart();
// optional int32 end = 2;
boolean hasEnd();
int getEnd();
}
public static final class ExtensionRange extends
com.google.protobuf.GeneratedMessage
implements ExtensionRangeOrBuilder {
// Use ExtensionRange.newBuilder() to construct.
private ExtensionRange(Builder builder) {
super(builder);
}
private ExtensionRange(boolean noInit) {}
private static final ExtensionRange defaultInstance;
public static ExtensionRange getDefaultInstance() {
return defaultInstance;
}
public ExtensionRange getDefaultInstanceForType() {
return defaultInstance;
}
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_DescriptorProto_ExtensionRange_descriptor;
}
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_DescriptorProto_ExtensionRange_fieldAccessorTable;
}
private int bitField0_;
// optional int32 start = 1;
public static final int START_FIELD_NUMBER = 1;
private int start_;
public boolean hasStart() {
return ((bitField0_ & 0x00000001) == 0x00000001);
}
public int getStart() {
return start_;
}
// optional int32 end = 2;
public static final int END_FIELD_NUMBER = 2;
private int end_;
public boolean hasEnd() {
return ((bitField0_ & 0x00000002) == 0x00000002);
}
public int getEnd() {
return end_;
}
private void initFields() {
start_ = 0;
end_ = 0;
}
private byte memoizedIsInitialized = -1;
public final boolean isInitialized() {
byte isInitialized = memoizedIsInitialized;
if (isInitialized != -1) return isInitialized == 1;
memoizedIsInitialized = 1;
return true;
}
public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException {
getSerializedSize();
if (((bitField0_ & 0x00000001) == 0x00000001)) {
output.writeInt32(1, start_);
}
if (((bitField0_ & 0x00000002) == 0x00000002)) {
output.writeInt32(2, end_);
}
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
.computeInt32Size(1, start_);
}
if (((bitField0_ & 0x00000002) == 0x00000002)) {
size += com.google.protobuf.CodedOutputStream
.computeInt32Size(2, end_);
}
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 com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange parseFrom(java.io.InputStream input)
throws java.io.IOException {
return newBuilder().mergeFrom(input).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return newBuilder().mergeFrom(input, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
Builder builder = newBuilder();
if (builder.mergeDelimitedFrom(input)) {
return builder.buildParsed();
} else {
return null;
}
}
public static com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange 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 com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return newBuilder().mergeFrom(input).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange 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(com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange 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 com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRangeOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_DescriptorProto_ExtensionRange_descriptor;
}
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_DescriptorProto_ExtensionRange_fieldAccessorTable;
}
// Construct using com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.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();
start_ = 0;
bitField0_ = (bitField0_ & ~0x00000001);
end_ = 0;
bitField0_ = (bitField0_ & ~0x00000002);
return this;
}
public Builder clone() {
return create().mergeFrom(buildPartial());
}
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
return com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.getDescriptor();
}
public com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange getDefaultInstanceForType() {
return com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.getDefaultInstance();
}
public com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange build() {
com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(result);
}
return result;
}
private com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange buildParsed()
throws com.google.protobuf.InvalidProtocolBufferException {
com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(
result).asInvalidProtocolBufferException();
}
return result;
}
public com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange buildPartial() {
com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange result = new com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange(this);
int from_bitField0_ = bitField0_;
int to_bitField0_ = 0;
if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
to_bitField0_ |= 0x00000001;
}
result.start_ = start_;
if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
to_bitField0_ |= 0x00000002;
}
result.end_ = end_;
result.bitField0_ = to_bitField0_;
onBuilt();
return result;
}
public Builder mergeFrom(com.google.protobuf.Message other) {
if (other instanceof com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange) {
return mergeFrom((com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange)other);
} else {
super.mergeFrom(other);
return this;
}
}
public Builder mergeFrom(com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange other) {
if (other == com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.getDefaultInstance()) return this;
if (other.hasStart()) {
setStart(other.getStart());
}
if (other.hasEnd()) {
setEnd(other.getEnd());
}
this.mergeUnknownFields(other.getUnknownFields());
return this;
}
public final boolean isInitialized() {
return true;
}
public Builder mergeFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
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());
onChanged();
return this;
default: {
if (!parseUnknownField(input, unknownFields,
extensionRegistry, tag)) {
this.setUnknownFields(unknownFields.build());
onChanged();
return this;
}
break;
}
case 8: {
bitField0_ |= 0x00000001;
start_ = input.readInt32();
break;
}
case 16: {
bitField0_ |= 0x00000002;
end_ = input.readInt32();
break;
}
}
}
}
private int bitField0_;
// optional int32 start = 1;
private int start_ ;
public boolean hasStart() {
return ((bitField0_ & 0x00000001) == 0x00000001);
}
public int getStart() {
return start_;
}
public Builder setStart(int value) {
bitField0_ |= 0x00000001;
start_ = value;
onChanged();
return this;
}
public Builder clearStart() {
bitField0_ = (bitField0_ & ~0x00000001);
start_ = 0;
onChanged();
return this;
}
// optional int32 end = 2;
private int end_ ;
public boolean hasEnd() {
return ((bitField0_ & 0x00000002) == 0x00000002);
}
public int getEnd() {
return end_;
}
public Builder setEnd(int value) {
bitField0_ |= 0x00000002;
end_ = value;
onChanged();
return this;
}
public Builder clearEnd() {
bitField0_ = (bitField0_ & ~0x00000002);
end_ = 0;
onChanged();
return this;
}
// @@protoc_insertion_point(builder_scope:google.protobuf.DescriptorProto.ExtensionRange)
}
static {
defaultInstance = new ExtensionRange(true);
defaultInstance.initFields();
}
// @@protoc_insertion_point(class_scope:google.protobuf.DescriptorProto.ExtensionRange)
}
private int bitField0_;
// optional string name = 1;
public static final int NAME_FIELD_NUMBER = 1;
private java.lang.Object name_;
public boolean hasName() {
return ((bitField0_ & 0x00000001) == 0x00000001);
}
public String getName() {
java.lang.Object ref = name_;
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)) {
name_ = s;
}
return s;
}
}
private com.google.protobuf.ByteString getNameBytes() {
java.lang.Object ref = name_;
if (ref instanceof String) {
com.google.protobuf.ByteString b =
com.google.protobuf.ByteString.copyFromUtf8((String) ref);
name_ = b;
return b;
} else {
return (com.google.protobuf.ByteString) ref;
}
}
// repeated .google.protobuf.FieldDescriptorProto field = 2;
public static final int FIELD_FIELD_NUMBER = 2;
private java.util.List<com.google.protobuf.DescriptorProtos.FieldDescriptorProto> field_;
public java.util.List<com.google.protobuf.DescriptorProtos.FieldDescriptorProto> getFieldList() {
return field_;
}
public java.util.List<? extends com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder>
getFieldOrBuilderList() {
return field_;
}
public int getFieldCount() {
return field_.size();
}
public com.google.protobuf.DescriptorProtos.FieldDescriptorProto getField(int index) {
return field_.get(index);
}
public com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder getFieldOrBuilder(
int index) {
return field_.get(index);
}
// repeated .google.protobuf.FieldDescriptorProto extension = 6;
public static final int EXTENSION_FIELD_NUMBER = 6;
private java.util.List<com.google.protobuf.DescriptorProtos.FieldDescriptorProto> extension_;
public java.util.List<com.google.protobuf.DescriptorProtos.FieldDescriptorProto> getExtensionList() {
return extension_;
}
public java.util.List<? extends com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder>
getExtensionOrBuilderList() {
return extension_;
}
public int getExtensionCount() {
return extension_.size();
}
public com.google.protobuf.DescriptorProtos.FieldDescriptorProto getExtension(int index) {
return extension_.get(index);
}
public com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder getExtensionOrBuilder(
int index) {
return extension_.get(index);
}
// repeated .google.protobuf.DescriptorProto nested_type = 3;
public static final int NESTED_TYPE_FIELD_NUMBER = 3;
private java.util.List<com.google.protobuf.DescriptorProtos.DescriptorProto> nestedType_;
public java.util.List<com.google.protobuf.DescriptorProtos.DescriptorProto> getNestedTypeList() {
return nestedType_;
}
public java.util.List<? extends com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder>
getNestedTypeOrBuilderList() {
return nestedType_;
}
public int getNestedTypeCount() {
return nestedType_.size();
}
public com.google.protobuf.DescriptorProtos.DescriptorProto getNestedType(int index) {
return nestedType_.get(index);
}
public com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder getNestedTypeOrBuilder(
int index) {
return nestedType_.get(index);
}
// repeated .google.protobuf.EnumDescriptorProto enum_type = 4;
public static final int ENUM_TYPE_FIELD_NUMBER = 4;
private java.util.List<com.google.protobuf.DescriptorProtos.EnumDescriptorProto> enumType_;
public java.util.List<com.google.protobuf.DescriptorProtos.EnumDescriptorProto> getEnumTypeList() {
return enumType_;
}
public java.util.List<? extends com.google.protobuf.DescriptorProtos.EnumDescriptorProtoOrBuilder>
getEnumTypeOrBuilderList() {
return enumType_;
}
public int getEnumTypeCount() {
return enumType_.size();
}
public com.google.protobuf.DescriptorProtos.EnumDescriptorProto getEnumType(int index) {
return enumType_.get(index);
}
public com.google.protobuf.DescriptorProtos.EnumDescriptorProtoOrBuilder getEnumTypeOrBuilder(
int index) {
return enumType_.get(index);
}
// repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5;
public static final int EXTENSION_RANGE_FIELD_NUMBER = 5;
private java.util.List<com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange> extensionRange_;
public java.util.List<com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange> getExtensionRangeList() {
return extensionRange_;
}
public java.util.List<? extends com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRangeOrBuilder>
getExtensionRangeOrBuilderList() {
return extensionRange_;
}
public int getExtensionRangeCount() {
return extensionRange_.size();
}
public com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange getExtensionRange(int index) {
return extensionRange_.get(index);
}
public com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRangeOrBuilder getExtensionRangeOrBuilder(
int index) {
return extensionRange_.get(index);
}
// optional .google.protobuf.MessageOptions options = 7;
public static final int OPTIONS_FIELD_NUMBER = 7;
private com.google.protobuf.DescriptorProtos.MessageOptions options_;
public boolean hasOptions() {
return ((bitField0_ & 0x00000002) == 0x00000002);
}
public com.google.protobuf.DescriptorProtos.MessageOptions getOptions() {
return options_;
}
public com.google.protobuf.DescriptorProtos.MessageOptionsOrBuilder getOptionsOrBuilder() {
return options_;
}
private void initFields() {
name_ = "";
field_ = java.util.Collections.emptyList();
extension_ = java.util.Collections.emptyList();
nestedType_ = java.util.Collections.emptyList();
enumType_ = java.util.Collections.emptyList();
extensionRange_ = java.util.Collections.emptyList();
options_ = com.google.protobuf.DescriptorProtos.MessageOptions.getDefaultInstance();
}
private byte memoizedIsInitialized = -1;
public final boolean isInitialized() {
byte isInitialized = memoizedIsInitialized;
if (isInitialized != -1) return isInitialized == 1;
for (int i = 0; i < getFieldCount(); i++) {
if (!getField(i).isInitialized()) {
memoizedIsInitialized = 0;
return false;
}
}
for (int i = 0; i < getExtensionCount(); i++) {
if (!getExtension(i).isInitialized()) {
memoizedIsInitialized = 0;
return false;
}
}
for (int i = 0; i < getNestedTypeCount(); i++) {
if (!getNestedType(i).isInitialized()) {
memoizedIsInitialized = 0;
return false;
}
}
for (int i = 0; i < getEnumTypeCount(); i++) {
if (!getEnumType(i).isInitialized()) {
memoizedIsInitialized = 0;
return false;
}
}
if (hasOptions()) {
if (!getOptions().isInitialized()) {
memoizedIsInitialized = 0;
return false;
}
}
memoizedIsInitialized = 1;
return true;
}
public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException {
getSerializedSize();
if (((bitField0_ & 0x00000001) == 0x00000001)) {
output.writeBytes(1, getNameBytes());
}
for (int i = 0; i < field_.size(); i++) {
output.writeMessage(2, field_.get(i));
}
for (int i = 0; i < nestedType_.size(); i++) {
output.writeMessage(3, nestedType_.get(i));
}
for (int i = 0; i < enumType_.size(); i++) {
output.writeMessage(4, enumType_.get(i));
}
for (int i = 0; i < extensionRange_.size(); i++) {
output.writeMessage(5, extensionRange_.get(i));
}
for (int i = 0; i < extension_.size(); i++) {
output.writeMessage(6, extension_.get(i));
}
if (((bitField0_ & 0x00000002) == 0x00000002)) {
output.writeMessage(7, options_);
}
getUnknownFields().writeTo(output);
}
private int memoizedSerializedSize = -1;
public int getSerializedSize() {
int size = memoizedSerializedSize;
if (size != -1) return size;
size = 0;
if (((bitField0_ & 0x00000001) == 0x00000001)) {
size += com.google.protobuf.CodedOutputStream
.computeBytesSize(1, getNameBytes());
}
for (int i = 0; i < field_.size(); i++) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(2, field_.get(i));
}
for (int i = 0; i < nestedType_.size(); i++) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(3, nestedType_.get(i));
}
for (int i = 0; i < enumType_.size(); i++) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(4, enumType_.get(i));
}
for (int i = 0; i < extensionRange_.size(); i++) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(5, extensionRange_.get(i));
}
for (int i = 0; i < extension_.size(); i++) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(6, extension_.get(i));
}
if (((bitField0_ & 0x00000002) == 0x00000002)) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(7, options_);
}
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 com.google.protobuf.DescriptorProtos.DescriptorProto parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.DescriptorProto parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.DescriptorProto parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.DescriptorProto parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.DescriptorProto parseFrom(java.io.InputStream input)
throws java.io.IOException {
return newBuilder().mergeFrom(input).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.DescriptorProto parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return newBuilder().mergeFrom(input, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.DescriptorProto parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
Builder builder = newBuilder();
if (builder.mergeDelimitedFrom(input)) {
return builder.buildParsed();
} else {
return null;
}
}
public static com.google.protobuf.DescriptorProtos.DescriptorProto 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 com.google.protobuf.DescriptorProtos.DescriptorProto parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return newBuilder().mergeFrom(input).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.DescriptorProto 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(com.google.protobuf.DescriptorProtos.DescriptorProto 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 com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_DescriptorProto_descriptor;
}
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_DescriptorProto_fieldAccessorTable;
}
// Construct using com.google.protobuf.DescriptorProtos.DescriptorProto.newBuilder()
private Builder() {
maybeForceBuilderInitialization();
}
private Builder(BuilderParent parent) {
super(parent);
maybeForceBuilderInitialization();
}
private void maybeForceBuilderInitialization() {
if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
getFieldFieldBuilder();
getExtensionFieldBuilder();
getNestedTypeFieldBuilder();
getEnumTypeFieldBuilder();
getExtensionRangeFieldBuilder();
getOptionsFieldBuilder();
}
}
private static Builder create() {
return new Builder();
}
public Builder clear() {
super.clear();
name_ = "";
bitField0_ = (bitField0_ & ~0x00000001);
if (fieldBuilder_ == null) {
field_ = java.util.Collections.emptyList();
bitField0_ = (bitField0_ & ~0x00000002);
} else {
fieldBuilder_.clear();
}
if (extensionBuilder_ == null) {
extension_ = java.util.Collections.emptyList();
bitField0_ = (bitField0_ & ~0x00000004);
} else {
extensionBuilder_.clear();
}
if (nestedTypeBuilder_ == null) {
nestedType_ = java.util.Collections.emptyList();
bitField0_ = (bitField0_ & ~0x00000008);
} else {
nestedTypeBuilder_.clear();
}
if (enumTypeBuilder_ == null) {
enumType_ = java.util.Collections.emptyList();
bitField0_ = (bitField0_ & ~0x00000010);
} else {
enumTypeBuilder_.clear();
}
if (extensionRangeBuilder_ == null) {
extensionRange_ = java.util.Collections.emptyList();
bitField0_ = (bitField0_ & ~0x00000020);
} else {
extensionRangeBuilder_.clear();
}
if (optionsBuilder_ == null) {
options_ = com.google.protobuf.DescriptorProtos.MessageOptions.getDefaultInstance();
} else {
optionsBuilder_.clear();
}
bitField0_ = (bitField0_ & ~0x00000040);
return this;
}
public Builder clone() {
return create().mergeFrom(buildPartial());
}
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
return com.google.protobuf.DescriptorProtos.DescriptorProto.getDescriptor();
}
public com.google.protobuf.DescriptorProtos.DescriptorProto getDefaultInstanceForType() {
return com.google.protobuf.DescriptorProtos.DescriptorProto.getDefaultInstance();
}
public com.google.protobuf.DescriptorProtos.DescriptorProto build() {
com.google.protobuf.DescriptorProtos.DescriptorProto result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(result);
}
return result;
}
private com.google.protobuf.DescriptorProtos.DescriptorProto buildParsed()
throws com.google.protobuf.InvalidProtocolBufferException {
com.google.protobuf.DescriptorProtos.DescriptorProto result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(
result).asInvalidProtocolBufferException();
}
return result;
}
public com.google.protobuf.DescriptorProtos.DescriptorProto buildPartial() {
com.google.protobuf.DescriptorProtos.DescriptorProto result = new com.google.protobuf.DescriptorProtos.DescriptorProto(this);
int from_bitField0_ = bitField0_;
int to_bitField0_ = 0;
if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
to_bitField0_ |= 0x00000001;
}
result.name_ = name_;
if (fieldBuilder_ == null) {
if (((bitField0_ & 0x00000002) == 0x00000002)) {
field_ = java.util.Collections.unmodifiableList(field_);
bitField0_ = (bitField0_ & ~0x00000002);
}
result.field_ = field_;
} else {
result.field_ = fieldBuilder_.build();
}
if (extensionBuilder_ == null) {
if (((bitField0_ & 0x00000004) == 0x00000004)) {
extension_ = java.util.Collections.unmodifiableList(extension_);
bitField0_ = (bitField0_ & ~0x00000004);
}
result.extension_ = extension_;
} else {
result.extension_ = extensionBuilder_.build();
}
if (nestedTypeBuilder_ == null) {
if (((bitField0_ & 0x00000008) == 0x00000008)) {
nestedType_ = java.util.Collections.unmodifiableList(nestedType_);
bitField0_ = (bitField0_ & ~0x00000008);
}
result.nestedType_ = nestedType_;
} else {
result.nestedType_ = nestedTypeBuilder_.build();
}
if (enumTypeBuilder_ == null) {
if (((bitField0_ & 0x00000010) == 0x00000010)) {
enumType_ = java.util.Collections.unmodifiableList(enumType_);
bitField0_ = (bitField0_ & ~0x00000010);
}
result.enumType_ = enumType_;
} else {
result.enumType_ = enumTypeBuilder_.build();
}
if (extensionRangeBuilder_ == null) {
if (((bitField0_ & 0x00000020) == 0x00000020)) {
extensionRange_ = java.util.Collections.unmodifiableList(extensionRange_);
bitField0_ = (bitField0_ & ~0x00000020);
}
result.extensionRange_ = extensionRange_;
} else {
result.extensionRange_ = extensionRangeBuilder_.build();
}
if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
to_bitField0_ |= 0x00000002;
}
if (optionsBuilder_ == null) {
result.options_ = options_;
} else {
result.options_ = optionsBuilder_.build();
}
result.bitField0_ = to_bitField0_;
onBuilt();
return result;
}
public Builder mergeFrom(com.google.protobuf.Message other) {
if (other instanceof com.google.protobuf.DescriptorProtos.DescriptorProto) {
return mergeFrom((com.google.protobuf.DescriptorProtos.DescriptorProto)other);
} else {
super.mergeFrom(other);
return this;
}
}
public Builder mergeFrom(com.google.protobuf.DescriptorProtos.DescriptorProto other) {
if (other == com.google.protobuf.DescriptorProtos.DescriptorProto.getDefaultInstance()) return this;
if (other.hasName()) {
setName(other.getName());
}
if (fieldBuilder_ == null) {
if (!other.field_.isEmpty()) {
if (field_.isEmpty()) {
field_ = other.field_;
bitField0_ = (bitField0_ & ~0x00000002);
} else {
ensureFieldIsMutable();
field_.addAll(other.field_);
}
onChanged();
}
} else {
if (!other.field_.isEmpty()) {
if (fieldBuilder_.isEmpty()) {
fieldBuilder_.dispose();
fieldBuilder_ = null;
field_ = other.field_;
bitField0_ = (bitField0_ & ~0x00000002);
fieldBuilder_ =
com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
getFieldFieldBuilder() : null;
} else {
fieldBuilder_.addAllMessages(other.field_);
}
}
}
if (extensionBuilder_ == null) {
if (!other.extension_.isEmpty()) {
if (extension_.isEmpty()) {
extension_ = other.extension_;
bitField0_ = (bitField0_ & ~0x00000004);
} else {
ensureExtensionIsMutable();
extension_.addAll(other.extension_);
}
onChanged();
}
} else {
if (!other.extension_.isEmpty()) {
if (extensionBuilder_.isEmpty()) {
extensionBuilder_.dispose();
extensionBuilder_ = null;
extension_ = other.extension_;
bitField0_ = (bitField0_ & ~0x00000004);
extensionBuilder_ =
com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
getExtensionFieldBuilder() : null;
} else {
extensionBuilder_.addAllMessages(other.extension_);
}
}
}
if (nestedTypeBuilder_ == null) {
if (!other.nestedType_.isEmpty()) {
if (nestedType_.isEmpty()) {
nestedType_ = other.nestedType_;
bitField0_ = (bitField0_ & ~0x00000008);
} else {
ensureNestedTypeIsMutable();
nestedType_.addAll(other.nestedType_);
}
onChanged();
}
} else {
if (!other.nestedType_.isEmpty()) {
if (nestedTypeBuilder_.isEmpty()) {
nestedTypeBuilder_.dispose();
nestedTypeBuilder_ = null;
nestedType_ = other.nestedType_;
bitField0_ = (bitField0_ & ~0x00000008);
nestedTypeBuilder_ =
com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
getNestedTypeFieldBuilder() : null;
} else {
nestedTypeBuilder_.addAllMessages(other.nestedType_);
}
}
}
if (enumTypeBuilder_ == null) {
if (!other.enumType_.isEmpty()) {
if (enumType_.isEmpty()) {
enumType_ = other.enumType_;
bitField0_ = (bitField0_ & ~0x00000010);
} else {
ensureEnumTypeIsMutable();
enumType_.addAll(other.enumType_);
}
onChanged();
}
} else {
if (!other.enumType_.isEmpty()) {
if (enumTypeBuilder_.isEmpty()) {
enumTypeBuilder_.dispose();
enumTypeBuilder_ = null;
enumType_ = other.enumType_;
bitField0_ = (bitField0_ & ~0x00000010);
enumTypeBuilder_ =
com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
getEnumTypeFieldBuilder() : null;
} else {
enumTypeBuilder_.addAllMessages(other.enumType_);
}
}
}
if (extensionRangeBuilder_ == null) {
if (!other.extensionRange_.isEmpty()) {
if (extensionRange_.isEmpty()) {
extensionRange_ = other.extensionRange_;
bitField0_ = (bitField0_ & ~0x00000020);
} else {
ensureExtensionRangeIsMutable();
extensionRange_.addAll(other.extensionRange_);
}
onChanged();
}
} else {
if (!other.extensionRange_.isEmpty()) {
if (extensionRangeBuilder_.isEmpty()) {
extensionRangeBuilder_.dispose();
extensionRangeBuilder_ = null;
extensionRange_ = other.extensionRange_;
bitField0_ = (bitField0_ & ~0x00000020);
extensionRangeBuilder_ =
com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
getExtensionRangeFieldBuilder() : null;
} else {
extensionRangeBuilder_.addAllMessages(other.extensionRange_);
}
}
}
if (other.hasOptions()) {
mergeOptions(other.getOptions());
}
this.mergeUnknownFields(other.getUnknownFields());
return this;
}
public final boolean isInitialized() {
for (int i = 0; i < getFieldCount(); i++) {
if (!getField(i).isInitialized()) {
return false;
}
}
for (int i = 0; i < getExtensionCount(); i++) {
if (!getExtension(i).isInitialized()) {
return false;
}
}
for (int i = 0; i < getNestedTypeCount(); i++) {
if (!getNestedType(i).isInitialized()) {
return false;
}
}
for (int i = 0; i < getEnumTypeCount(); i++) {
if (!getEnumType(i).isInitialized()) {
return false;
}
}
if (hasOptions()) {
if (!getOptions().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(
this.getUnknownFields());
while (true) {
int tag = input.readTag();
switch (tag) {
case 0:
this.setUnknownFields(unknownFields.build());
onChanged();
return this;
default: {
if (!parseUnknownField(input, unknownFields,
extensionRegistry, tag)) {
this.setUnknownFields(unknownFields.build());
onChanged();
return this;
}
break;
}
case 10: {
bitField0_ |= 0x00000001;
name_ = input.readBytes();
break;
}
case 18: {
com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder subBuilder = com.google.protobuf.DescriptorProtos.FieldDescriptorProto.newBuilder();
input.readMessage(subBuilder, extensionRegistry);
addField(subBuilder.buildPartial());
break;
}
case 26: {
com.google.protobuf.DescriptorProtos.DescriptorProto.Builder subBuilder = com.google.protobuf.DescriptorProtos.DescriptorProto.newBuilder();
input.readMessage(subBuilder, extensionRegistry);
addNestedType(subBuilder.buildPartial());
break;
}
case 34: {
com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder subBuilder = com.google.protobuf.DescriptorProtos.EnumDescriptorProto.newBuilder();
input.readMessage(subBuilder, extensionRegistry);
addEnumType(subBuilder.buildPartial());
break;
}
case 42: {
com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.Builder subBuilder = com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.newBuilder();
input.readMessage(subBuilder, extensionRegistry);
addExtensionRange(subBuilder.buildPartial());
break;
}
case 50: {
com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder subBuilder = com.google.protobuf.DescriptorProtos.FieldDescriptorProto.newBuilder();
input.readMessage(subBuilder, extensionRegistry);
addExtension(subBuilder.buildPartial());
break;
}
case 58: {
com.google.protobuf.DescriptorProtos.MessageOptions.Builder subBuilder = com.google.protobuf.DescriptorProtos.MessageOptions.newBuilder();
if (hasOptions()) {
subBuilder.mergeFrom(getOptions());
}
input.readMessage(subBuilder, extensionRegistry);
setOptions(subBuilder.buildPartial());
break;
}
}
}
}
private int bitField0_;
// optional string name = 1;
private java.lang.Object name_ = "";
public boolean hasName() {
return ((bitField0_ & 0x00000001) == 0x00000001);
}
public String getName() {
java.lang.Object ref = name_;
if (!(ref instanceof String)) {
String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
name_ = s;
return s;
} else {
return (String) ref;
}
}
public Builder setName(String value) {
if (value == null) {
throw new NullPointerException();
}
bitField0_ |= 0x00000001;
name_ = value;
onChanged();
return this;
}
public Builder clearName() {
bitField0_ = (bitField0_ & ~0x00000001);
name_ = getDefaultInstance().getName();
onChanged();
return this;
}
void setName(com.google.protobuf.ByteString value) {
bitField0_ |= 0x00000001;
name_ = value;
onChanged();
}
// repeated .google.protobuf.FieldDescriptorProto field = 2;
private java.util.List<com.google.protobuf.DescriptorProtos.FieldDescriptorProto> field_ =
java.util.Collections.emptyList();
private void ensureFieldIsMutable() {
if (!((bitField0_ & 0x00000002) == 0x00000002)) {
field_ = new java.util.ArrayList<com.google.protobuf.DescriptorProtos.FieldDescriptorProto>(field_);
bitField0_ |= 0x00000002;
}
}
private com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.FieldDescriptorProto, com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder, com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder> fieldBuilder_;
public java.util.List<com.google.protobuf.DescriptorProtos.FieldDescriptorProto> getFieldList() {
if (fieldBuilder_ == null) {
return java.util.Collections.unmodifiableList(field_);
} else {
return fieldBuilder_.getMessageList();
}
}
public int getFieldCount() {
if (fieldBuilder_ == null) {
return field_.size();
} else {
return fieldBuilder_.getCount();
}
}
public com.google.protobuf.DescriptorProtos.FieldDescriptorProto getField(int index) {
if (fieldBuilder_ == null) {
return field_.get(index);
} else {
return fieldBuilder_.getMessage(index);
}
}
public Builder setField(
int index, com.google.protobuf.DescriptorProtos.FieldDescriptorProto value) {
if (fieldBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureFieldIsMutable();
field_.set(index, value);
onChanged();
} else {
fieldBuilder_.setMessage(index, value);
}
return this;
}
public Builder setField(
int index, com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder builderForValue) {
if (fieldBuilder_ == null) {
ensureFieldIsMutable();
field_.set(index, builderForValue.build());
onChanged();
} else {
fieldBuilder_.setMessage(index, builderForValue.build());
}
return this;
}
public Builder addField(com.google.protobuf.DescriptorProtos.FieldDescriptorProto value) {
if (fieldBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureFieldIsMutable();
field_.add(value);
onChanged();
} else {
fieldBuilder_.addMessage(value);
}
return this;
}
public Builder addField(
int index, com.google.protobuf.DescriptorProtos.FieldDescriptorProto value) {
if (fieldBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureFieldIsMutable();
field_.add(index, value);
onChanged();
} else {
fieldBuilder_.addMessage(index, value);
}
return this;
}
public Builder addField(
com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder builderForValue) {
if (fieldBuilder_ == null) {
ensureFieldIsMutable();
field_.add(builderForValue.build());
onChanged();
} else {
fieldBuilder_.addMessage(builderForValue.build());
}
return this;
}
public Builder addField(
int index, com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder builderForValue) {
if (fieldBuilder_ == null) {
ensureFieldIsMutable();
field_.add(index, builderForValue.build());
onChanged();
} else {
fieldBuilder_.addMessage(index, builderForValue.build());
}
return this;
}
public Builder addAllField(
java.lang.Iterable<? extends com.google.protobuf.DescriptorProtos.FieldDescriptorProto> values) {
if (fieldBuilder_ == null) {
ensureFieldIsMutable();
super.addAll(values, field_);
onChanged();
} else {
fieldBuilder_.addAllMessages(values);
}
return this;
}
public Builder clearField() {
if (fieldBuilder_ == null) {
field_ = java.util.Collections.emptyList();
bitField0_ = (bitField0_ & ~0x00000002);
onChanged();
} else {
fieldBuilder_.clear();
}
return this;
}
public Builder removeField(int index) {
if (fieldBuilder_ == null) {
ensureFieldIsMutable();
field_.remove(index);
onChanged();
} else {
fieldBuilder_.remove(index);
}
return this;
}
public com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder getFieldBuilder(
int index) {
return getFieldFieldBuilder().getBuilder(index);
}
public com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder getFieldOrBuilder(
int index) {
if (fieldBuilder_ == null) {
return field_.get(index); } else {
return fieldBuilder_.getMessageOrBuilder(index);
}
}
public java.util.List<? extends com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder>
getFieldOrBuilderList() {
if (fieldBuilder_ != null) {
return fieldBuilder_.getMessageOrBuilderList();
} else {
return java.util.Collections.unmodifiableList(field_);
}
}
public com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder addFieldBuilder() {
return getFieldFieldBuilder().addBuilder(
com.google.protobuf.DescriptorProtos.FieldDescriptorProto.getDefaultInstance());
}
public com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder addFieldBuilder(
int index) {
return getFieldFieldBuilder().addBuilder(
index, com.google.protobuf.DescriptorProtos.FieldDescriptorProto.getDefaultInstance());
}
public java.util.List<com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder>
getFieldBuilderList() {
return getFieldFieldBuilder().getBuilderList();
}
private com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.FieldDescriptorProto, com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder, com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder>
getFieldFieldBuilder() {
if (fieldBuilder_ == null) {
fieldBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.FieldDescriptorProto, com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder, com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder>(
field_,
((bitField0_ & 0x00000002) == 0x00000002),
getParentForChildren(),
isClean());
field_ = null;
}
return fieldBuilder_;
}
// repeated .google.protobuf.FieldDescriptorProto extension = 6;
private java.util.List<com.google.protobuf.DescriptorProtos.FieldDescriptorProto> extension_ =
java.util.Collections.emptyList();
private void ensureExtensionIsMutable() {
if (!((bitField0_ & 0x00000004) == 0x00000004)) {
extension_ = new java.util.ArrayList<com.google.protobuf.DescriptorProtos.FieldDescriptorProto>(extension_);
bitField0_ |= 0x00000004;
}
}
private com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.FieldDescriptorProto, com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder, com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder> extensionBuilder_;
public java.util.List<com.google.protobuf.DescriptorProtos.FieldDescriptorProto> getExtensionList() {
if (extensionBuilder_ == null) {
return java.util.Collections.unmodifiableList(extension_);
} else {
return extensionBuilder_.getMessageList();
}
}
public int getExtensionCount() {
if (extensionBuilder_ == null) {
return extension_.size();
} else {
return extensionBuilder_.getCount();
}
}
public com.google.protobuf.DescriptorProtos.FieldDescriptorProto getExtension(int index) {
if (extensionBuilder_ == null) {
return extension_.get(index);
} else {
return extensionBuilder_.getMessage(index);
}
}
public Builder setExtension(
int index, com.google.protobuf.DescriptorProtos.FieldDescriptorProto value) {
if (extensionBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureExtensionIsMutable();
extension_.set(index, value);
onChanged();
} else {
extensionBuilder_.setMessage(index, value);
}
return this;
}
public Builder setExtension(
int index, com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder builderForValue) {
if (extensionBuilder_ == null) {
ensureExtensionIsMutable();
extension_.set(index, builderForValue.build());
onChanged();
} else {
extensionBuilder_.setMessage(index, builderForValue.build());
}
return this;
}
public Builder addExtension(com.google.protobuf.DescriptorProtos.FieldDescriptorProto value) {
if (extensionBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureExtensionIsMutable();
extension_.add(value);
onChanged();
} else {
extensionBuilder_.addMessage(value);
}
return this;
}
public Builder addExtension(
int index, com.google.protobuf.DescriptorProtos.FieldDescriptorProto value) {
if (extensionBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureExtensionIsMutable();
extension_.add(index, value);
onChanged();
} else {
extensionBuilder_.addMessage(index, value);
}
return this;
}
public Builder addExtension(
com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder builderForValue) {
if (extensionBuilder_ == null) {
ensureExtensionIsMutable();
extension_.add(builderForValue.build());
onChanged();
} else {
extensionBuilder_.addMessage(builderForValue.build());
}
return this;
}
public Builder addExtension(
int index, com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder builderForValue) {
if (extensionBuilder_ == null) {
ensureExtensionIsMutable();
extension_.add(index, builderForValue.build());
onChanged();
} else {
extensionBuilder_.addMessage(index, builderForValue.build());
}
return this;
}
public Builder addAllExtension(
java.lang.Iterable<? extends com.google.protobuf.DescriptorProtos.FieldDescriptorProto> values) {
if (extensionBuilder_ == null) {
ensureExtensionIsMutable();
super.addAll(values, extension_);
onChanged();
} else {
extensionBuilder_.addAllMessages(values);
}
return this;
}
public Builder clearExtension() {
if (extensionBuilder_ == null) {
extension_ = java.util.Collections.emptyList();
bitField0_ = (bitField0_ & ~0x00000004);
onChanged();
} else {
extensionBuilder_.clear();
}
return this;
}
public Builder removeExtension(int index) {
if (extensionBuilder_ == null) {
ensureExtensionIsMutable();
extension_.remove(index);
onChanged();
} else {
extensionBuilder_.remove(index);
}
return this;
}
public com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder getExtensionBuilder(
int index) {
return getExtensionFieldBuilder().getBuilder(index);
}
public com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder getExtensionOrBuilder(
int index) {
if (extensionBuilder_ == null) {
return extension_.get(index); } else {
return extensionBuilder_.getMessageOrBuilder(index);
}
}
public java.util.List<? extends com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder>
getExtensionOrBuilderList() {
if (extensionBuilder_ != null) {
return extensionBuilder_.getMessageOrBuilderList();
} else {
return java.util.Collections.unmodifiableList(extension_);
}
}
public com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder addExtensionBuilder() {
return getExtensionFieldBuilder().addBuilder(
com.google.protobuf.DescriptorProtos.FieldDescriptorProto.getDefaultInstance());
}
public com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder addExtensionBuilder(
int index) {
return getExtensionFieldBuilder().addBuilder(
index, com.google.protobuf.DescriptorProtos.FieldDescriptorProto.getDefaultInstance());
}
public java.util.List<com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder>
getExtensionBuilderList() {
return getExtensionFieldBuilder().getBuilderList();
}
private com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.FieldDescriptorProto, com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder, com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder>
getExtensionFieldBuilder() {
if (extensionBuilder_ == null) {
extensionBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.FieldDescriptorProto, com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder, com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder>(
extension_,
((bitField0_ & 0x00000004) == 0x00000004),
getParentForChildren(),
isClean());
extension_ = null;
}
return extensionBuilder_;
}
// repeated .google.protobuf.DescriptorProto nested_type = 3;
private java.util.List<com.google.protobuf.DescriptorProtos.DescriptorProto> nestedType_ =
java.util.Collections.emptyList();
private void ensureNestedTypeIsMutable() {
if (!((bitField0_ & 0x00000008) == 0x00000008)) {
nestedType_ = new java.util.ArrayList<com.google.protobuf.DescriptorProtos.DescriptorProto>(nestedType_);
bitField0_ |= 0x00000008;
}
}
private com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.DescriptorProto, com.google.protobuf.DescriptorProtos.DescriptorProto.Builder, com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder> nestedTypeBuilder_;
public java.util.List<com.google.protobuf.DescriptorProtos.DescriptorProto> getNestedTypeList() {
if (nestedTypeBuilder_ == null) {
return java.util.Collections.unmodifiableList(nestedType_);
} else {
return nestedTypeBuilder_.getMessageList();
}
}
public int getNestedTypeCount() {
if (nestedTypeBuilder_ == null) {
return nestedType_.size();
} else {
return nestedTypeBuilder_.getCount();
}
}
public com.google.protobuf.DescriptorProtos.DescriptorProto getNestedType(int index) {
if (nestedTypeBuilder_ == null) {
return nestedType_.get(index);
} else {
return nestedTypeBuilder_.getMessage(index);
}
}
public Builder setNestedType(
int index, com.google.protobuf.DescriptorProtos.DescriptorProto value) {
if (nestedTypeBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureNestedTypeIsMutable();
nestedType_.set(index, value);
onChanged();
} else {
nestedTypeBuilder_.setMessage(index, value);
}
return this;
}
public Builder setNestedType(
int index, com.google.protobuf.DescriptorProtos.DescriptorProto.Builder builderForValue) {
if (nestedTypeBuilder_ == null) {
ensureNestedTypeIsMutable();
nestedType_.set(index, builderForValue.build());
onChanged();
} else {
nestedTypeBuilder_.setMessage(index, builderForValue.build());
}
return this;
}
public Builder addNestedType(com.google.protobuf.DescriptorProtos.DescriptorProto value) {
if (nestedTypeBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureNestedTypeIsMutable();
nestedType_.add(value);
onChanged();
} else {
nestedTypeBuilder_.addMessage(value);
}
return this;
}
public Builder addNestedType(
int index, com.google.protobuf.DescriptorProtos.DescriptorProto value) {
if (nestedTypeBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureNestedTypeIsMutable();
nestedType_.add(index, value);
onChanged();
} else {
nestedTypeBuilder_.addMessage(index, value);
}
return this;
}
public Builder addNestedType(
com.google.protobuf.DescriptorProtos.DescriptorProto.Builder builderForValue) {
if (nestedTypeBuilder_ == null) {
ensureNestedTypeIsMutable();
nestedType_.add(builderForValue.build());
onChanged();
} else {
nestedTypeBuilder_.addMessage(builderForValue.build());
}
return this;
}
public Builder addNestedType(
int index, com.google.protobuf.DescriptorProtos.DescriptorProto.Builder builderForValue) {
if (nestedTypeBuilder_ == null) {
ensureNestedTypeIsMutable();
nestedType_.add(index, builderForValue.build());
onChanged();
} else {
nestedTypeBuilder_.addMessage(index, builderForValue.build());
}
return this;
}
public Builder addAllNestedType(
java.lang.Iterable<? extends com.google.protobuf.DescriptorProtos.DescriptorProto> values) {
if (nestedTypeBuilder_ == null) {
ensureNestedTypeIsMutable();
super.addAll(values, nestedType_);
onChanged();
} else {
nestedTypeBuilder_.addAllMessages(values);
}
return this;
}
public Builder clearNestedType() {
if (nestedTypeBuilder_ == null) {
nestedType_ = java.util.Collections.emptyList();
bitField0_ = (bitField0_ & ~0x00000008);
onChanged();
} else {
nestedTypeBuilder_.clear();
}
return this;
}
public Builder removeNestedType(int index) {
if (nestedTypeBuilder_ == null) {
ensureNestedTypeIsMutable();
nestedType_.remove(index);
onChanged();
} else {
nestedTypeBuilder_.remove(index);
}
return this;
}
public com.google.protobuf.DescriptorProtos.DescriptorProto.Builder getNestedTypeBuilder(
int index) {
return getNestedTypeFieldBuilder().getBuilder(index);
}
public com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder getNestedTypeOrBuilder(
int index) {
if (nestedTypeBuilder_ == null) {
return nestedType_.get(index); } else {
return nestedTypeBuilder_.getMessageOrBuilder(index);
}
}
public java.util.List<? extends com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder>
getNestedTypeOrBuilderList() {
if (nestedTypeBuilder_ != null) {
return nestedTypeBuilder_.getMessageOrBuilderList();
} else {
return java.util.Collections.unmodifiableList(nestedType_);
}
}
public com.google.protobuf.DescriptorProtos.DescriptorProto.Builder addNestedTypeBuilder() {
return getNestedTypeFieldBuilder().addBuilder(
com.google.protobuf.DescriptorProtos.DescriptorProto.getDefaultInstance());
}
public com.google.protobuf.DescriptorProtos.DescriptorProto.Builder addNestedTypeBuilder(
int index) {
return getNestedTypeFieldBuilder().addBuilder(
index, com.google.protobuf.DescriptorProtos.DescriptorProto.getDefaultInstance());
}
public java.util.List<com.google.protobuf.DescriptorProtos.DescriptorProto.Builder>
getNestedTypeBuilderList() {
return getNestedTypeFieldBuilder().getBuilderList();
}
private com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.DescriptorProto, com.google.protobuf.DescriptorProtos.DescriptorProto.Builder, com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder>
getNestedTypeFieldBuilder() {
if (nestedTypeBuilder_ == null) {
nestedTypeBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.DescriptorProto, com.google.protobuf.DescriptorProtos.DescriptorProto.Builder, com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder>(
nestedType_,
((bitField0_ & 0x00000008) == 0x00000008),
getParentForChildren(),
isClean());
nestedType_ = null;
}
return nestedTypeBuilder_;
}
// repeated .google.protobuf.EnumDescriptorProto enum_type = 4;
private java.util.List<com.google.protobuf.DescriptorProtos.EnumDescriptorProto> enumType_ =
java.util.Collections.emptyList();
private void ensureEnumTypeIsMutable() {
if (!((bitField0_ & 0x00000010) == 0x00000010)) {
enumType_ = new java.util.ArrayList<com.google.protobuf.DescriptorProtos.EnumDescriptorProto>(enumType_);
bitField0_ |= 0x00000010;
}
}
private com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.EnumDescriptorProto, com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder, com.google.protobuf.DescriptorProtos.EnumDescriptorProtoOrBuilder> enumTypeBuilder_;
public java.util.List<com.google.protobuf.DescriptorProtos.EnumDescriptorProto> getEnumTypeList() {
if (enumTypeBuilder_ == null) {
return java.util.Collections.unmodifiableList(enumType_);
} else {
return enumTypeBuilder_.getMessageList();
}
}
public int getEnumTypeCount() {
if (enumTypeBuilder_ == null) {
return enumType_.size();
} else {
return enumTypeBuilder_.getCount();
}
}
public com.google.protobuf.DescriptorProtos.EnumDescriptorProto getEnumType(int index) {
if (enumTypeBuilder_ == null) {
return enumType_.get(index);
} else {
return enumTypeBuilder_.getMessage(index);
}
}
public Builder setEnumType(
int index, com.google.protobuf.DescriptorProtos.EnumDescriptorProto value) {
if (enumTypeBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureEnumTypeIsMutable();
enumType_.set(index, value);
onChanged();
} else {
enumTypeBuilder_.setMessage(index, value);
}
return this;
}
public Builder setEnumType(
int index, com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder builderForValue) {
if (enumTypeBuilder_ == null) {
ensureEnumTypeIsMutable();
enumType_.set(index, builderForValue.build());
onChanged();
} else {
enumTypeBuilder_.setMessage(index, builderForValue.build());
}
return this;
}
public Builder addEnumType(com.google.protobuf.DescriptorProtos.EnumDescriptorProto value) {
if (enumTypeBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureEnumTypeIsMutable();
enumType_.add(value);
onChanged();
} else {
enumTypeBuilder_.addMessage(value);
}
return this;
}
public Builder addEnumType(
int index, com.google.protobuf.DescriptorProtos.EnumDescriptorProto value) {
if (enumTypeBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureEnumTypeIsMutable();
enumType_.add(index, value);
onChanged();
} else {
enumTypeBuilder_.addMessage(index, value);
}
return this;
}
public Builder addEnumType(
com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder builderForValue) {
if (enumTypeBuilder_ == null) {
ensureEnumTypeIsMutable();
enumType_.add(builderForValue.build());
onChanged();
} else {
enumTypeBuilder_.addMessage(builderForValue.build());
}
return this;
}
public Builder addEnumType(
int index, com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder builderForValue) {
if (enumTypeBuilder_ == null) {
ensureEnumTypeIsMutable();
enumType_.add(index, builderForValue.build());
onChanged();
} else {
enumTypeBuilder_.addMessage(index, builderForValue.build());
}
return this;
}
public Builder addAllEnumType(
java.lang.Iterable<? extends com.google.protobuf.DescriptorProtos.EnumDescriptorProto> values) {
if (enumTypeBuilder_ == null) {
ensureEnumTypeIsMutable();
super.addAll(values, enumType_);
onChanged();
} else {
enumTypeBuilder_.addAllMessages(values);
}
return this;
}
public Builder clearEnumType() {
if (enumTypeBuilder_ == null) {
enumType_ = java.util.Collections.emptyList();
bitField0_ = (bitField0_ & ~0x00000010);
onChanged();
} else {
enumTypeBuilder_.clear();
}
return this;
}
public Builder removeEnumType(int index) {
if (enumTypeBuilder_ == null) {
ensureEnumTypeIsMutable();
enumType_.remove(index);
onChanged();
} else {
enumTypeBuilder_.remove(index);
}
return this;
}
public com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder getEnumTypeBuilder(
int index) {
return getEnumTypeFieldBuilder().getBuilder(index);
}
public com.google.protobuf.DescriptorProtos.EnumDescriptorProtoOrBuilder getEnumTypeOrBuilder(
int index) {
if (enumTypeBuilder_ == null) {
return enumType_.get(index); } else {
return enumTypeBuilder_.getMessageOrBuilder(index);
}
}
public java.util.List<? extends com.google.protobuf.DescriptorProtos.EnumDescriptorProtoOrBuilder>
getEnumTypeOrBuilderList() {
if (enumTypeBuilder_ != null) {
return enumTypeBuilder_.getMessageOrBuilderList();
} else {
return java.util.Collections.unmodifiableList(enumType_);
}
}
public com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder addEnumTypeBuilder() {
return getEnumTypeFieldBuilder().addBuilder(
com.google.protobuf.DescriptorProtos.EnumDescriptorProto.getDefaultInstance());
}
public com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder addEnumTypeBuilder(
int index) {
return getEnumTypeFieldBuilder().addBuilder(
index, com.google.protobuf.DescriptorProtos.EnumDescriptorProto.getDefaultInstance());
}
public java.util.List<com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder>
getEnumTypeBuilderList() {
return getEnumTypeFieldBuilder().getBuilderList();
}
private com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.EnumDescriptorProto, com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder, com.google.protobuf.DescriptorProtos.EnumDescriptorProtoOrBuilder>
getEnumTypeFieldBuilder() {
if (enumTypeBuilder_ == null) {
enumTypeBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.EnumDescriptorProto, com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder, com.google.protobuf.DescriptorProtos.EnumDescriptorProtoOrBuilder>(
enumType_,
((bitField0_ & 0x00000010) == 0x00000010),
getParentForChildren(),
isClean());
enumType_ = null;
}
return enumTypeBuilder_;
}
// repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5;
private java.util.List<com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange> extensionRange_ =
java.util.Collections.emptyList();
private void ensureExtensionRangeIsMutable() {
if (!((bitField0_ & 0x00000020) == 0x00000020)) {
extensionRange_ = new java.util.ArrayList<com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange>(extensionRange_);
bitField0_ |= 0x00000020;
}
}
private com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange, com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.Builder, com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRangeOrBuilder> extensionRangeBuilder_;
public java.util.List<com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange> getExtensionRangeList() {
if (extensionRangeBuilder_ == null) {
return java.util.Collections.unmodifiableList(extensionRange_);
} else {
return extensionRangeBuilder_.getMessageList();
}
}
public int getExtensionRangeCount() {
if (extensionRangeBuilder_ == null) {
return extensionRange_.size();
} else {
return extensionRangeBuilder_.getCount();
}
}
public com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange getExtensionRange(int index) {
if (extensionRangeBuilder_ == null) {
return extensionRange_.get(index);
} else {
return extensionRangeBuilder_.getMessage(index);
}
}
public Builder setExtensionRange(
int index, com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange value) {
if (extensionRangeBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureExtensionRangeIsMutable();
extensionRange_.set(index, value);
onChanged();
} else {
extensionRangeBuilder_.setMessage(index, value);
}
return this;
}
public Builder setExtensionRange(
int index, com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.Builder builderForValue) {
if (extensionRangeBuilder_ == null) {
ensureExtensionRangeIsMutable();
extensionRange_.set(index, builderForValue.build());
onChanged();
} else {
extensionRangeBuilder_.setMessage(index, builderForValue.build());
}
return this;
}
public Builder addExtensionRange(com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange value) {
if (extensionRangeBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureExtensionRangeIsMutable();
extensionRange_.add(value);
onChanged();
} else {
extensionRangeBuilder_.addMessage(value);
}
return this;
}
public Builder addExtensionRange(
int index, com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange value) {
if (extensionRangeBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureExtensionRangeIsMutable();
extensionRange_.add(index, value);
onChanged();
} else {
extensionRangeBuilder_.addMessage(index, value);
}
return this;
}
public Builder addExtensionRange(
com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.Builder builderForValue) {
if (extensionRangeBuilder_ == null) {
ensureExtensionRangeIsMutable();
extensionRange_.add(builderForValue.build());
onChanged();
} else {
extensionRangeBuilder_.addMessage(builderForValue.build());
}
return this;
}
public Builder addExtensionRange(
int index, com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.Builder builderForValue) {
if (extensionRangeBuilder_ == null) {
ensureExtensionRangeIsMutable();
extensionRange_.add(index, builderForValue.build());
onChanged();
} else {
extensionRangeBuilder_.addMessage(index, builderForValue.build());
}
return this;
}
public Builder addAllExtensionRange(
java.lang.Iterable<? extends com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange> values) {
if (extensionRangeBuilder_ == null) {
ensureExtensionRangeIsMutable();
super.addAll(values, extensionRange_);
onChanged();
} else {
extensionRangeBuilder_.addAllMessages(values);
}
return this;
}
public Builder clearExtensionRange() {
if (extensionRangeBuilder_ == null) {
extensionRange_ = java.util.Collections.emptyList();
bitField0_ = (bitField0_ & ~0x00000020);
onChanged();
} else {
extensionRangeBuilder_.clear();
}
return this;
}
public Builder removeExtensionRange(int index) {
if (extensionRangeBuilder_ == null) {
ensureExtensionRangeIsMutable();
extensionRange_.remove(index);
onChanged();
} else {
extensionRangeBuilder_.remove(index);
}
return this;
}
public com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.Builder getExtensionRangeBuilder(
int index) {
return getExtensionRangeFieldBuilder().getBuilder(index);
}
public com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRangeOrBuilder getExtensionRangeOrBuilder(
int index) {
if (extensionRangeBuilder_ == null) {
return extensionRange_.get(index); } else {
return extensionRangeBuilder_.getMessageOrBuilder(index);
}
}
public java.util.List<? extends com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRangeOrBuilder>
getExtensionRangeOrBuilderList() {
if (extensionRangeBuilder_ != null) {
return extensionRangeBuilder_.getMessageOrBuilderList();
} else {
return java.util.Collections.unmodifiableList(extensionRange_);
}
}
public com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.Builder addExtensionRangeBuilder() {
return getExtensionRangeFieldBuilder().addBuilder(
com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.getDefaultInstance());
}
public com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.Builder addExtensionRangeBuilder(
int index) {
return getExtensionRangeFieldBuilder().addBuilder(
index, com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.getDefaultInstance());
}
public java.util.List<com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.Builder>
getExtensionRangeBuilderList() {
return getExtensionRangeFieldBuilder().getBuilderList();
}
private com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange, com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.Builder, com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRangeOrBuilder>
getExtensionRangeFieldBuilder() {
if (extensionRangeBuilder_ == null) {
extensionRangeBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange, com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.Builder, com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRangeOrBuilder>(
extensionRange_,
((bitField0_ & 0x00000020) == 0x00000020),
getParentForChildren(),
isClean());
extensionRange_ = null;
}
return extensionRangeBuilder_;
}
// optional .google.protobuf.MessageOptions options = 7;
private com.google.protobuf.DescriptorProtos.MessageOptions options_ = com.google.protobuf.DescriptorProtos.MessageOptions.getDefaultInstance();
private com.google.protobuf.SingleFieldBuilder<
com.google.protobuf.DescriptorProtos.MessageOptions, com.google.protobuf.DescriptorProtos.MessageOptions.Builder, com.google.protobuf.DescriptorProtos.MessageOptionsOrBuilder> optionsBuilder_;
public boolean hasOptions() {
return ((bitField0_ & 0x00000040) == 0x00000040);
}
public com.google.protobuf.DescriptorProtos.MessageOptions getOptions() {
if (optionsBuilder_ == null) {
return options_;
} else {
return optionsBuilder_.getMessage();
}
}
public Builder setOptions(com.google.protobuf.DescriptorProtos.MessageOptions value) {
if (optionsBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
options_ = value;
onChanged();
} else {
optionsBuilder_.setMessage(value);
}
bitField0_ |= 0x00000040;
return this;
}
public Builder setOptions(
com.google.protobuf.DescriptorProtos.MessageOptions.Builder builderForValue) {
if (optionsBuilder_ == null) {
options_ = builderForValue.build();
onChanged();
} else {
optionsBuilder_.setMessage(builderForValue.build());
}
bitField0_ |= 0x00000040;
return this;
}
public Builder mergeOptions(com.google.protobuf.DescriptorProtos.MessageOptions value) {
if (optionsBuilder_ == null) {
if (((bitField0_ & 0x00000040) == 0x00000040) &&
options_ != com.google.protobuf.DescriptorProtos.MessageOptions.getDefaultInstance()) {
options_ =
com.google.protobuf.DescriptorProtos.MessageOptions.newBuilder(options_).mergeFrom(value).buildPartial();
} else {
options_ = value;
}
onChanged();
} else {
optionsBuilder_.mergeFrom(value);
}
bitField0_ |= 0x00000040;
return this;
}
public Builder clearOptions() {
if (optionsBuilder_ == null) {
options_ = com.google.protobuf.DescriptorProtos.MessageOptions.getDefaultInstance();
onChanged();
} else {
optionsBuilder_.clear();
}
bitField0_ = (bitField0_ & ~0x00000040);
return this;
}
public com.google.protobuf.DescriptorProtos.MessageOptions.Builder getOptionsBuilder() {
bitField0_ |= 0x00000040;
onChanged();
return getOptionsFieldBuilder().getBuilder();
}
public com.google.protobuf.DescriptorProtos.MessageOptionsOrBuilder getOptionsOrBuilder() {
if (optionsBuilder_ != null) {
return optionsBuilder_.getMessageOrBuilder();
} else {
return options_;
}
}
private com.google.protobuf.SingleFieldBuilder<
com.google.protobuf.DescriptorProtos.MessageOptions, com.google.protobuf.DescriptorProtos.MessageOptions.Builder, com.google.protobuf.DescriptorProtos.MessageOptionsOrBuilder>
getOptionsFieldBuilder() {
if (optionsBuilder_ == null) {
optionsBuilder_ = new com.google.protobuf.SingleFieldBuilder<
com.google.protobuf.DescriptorProtos.MessageOptions, com.google.protobuf.DescriptorProtos.MessageOptions.Builder, com.google.protobuf.DescriptorProtos.MessageOptionsOrBuilder>(
options_,
getParentForChildren(),
isClean());
options_ = null;
}
return optionsBuilder_;
}
// @@protoc_insertion_point(builder_scope:google.protobuf.DescriptorProto)
}
static {
defaultInstance = new DescriptorProto(true);
defaultInstance.initFields();
}
// @@protoc_insertion_point(class_scope:google.protobuf.DescriptorProto)
}
public interface FieldDescriptorProtoOrBuilder
extends com.google.protobuf.MessageOrBuilder {
// optional string name = 1;
boolean hasName();
String getName();
// optional int32 number = 3;
boolean hasNumber();
int getNumber();
// optional .google.protobuf.FieldDescriptorProto.Label label = 4;
boolean hasLabel();
com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Label getLabel();
// optional .google.protobuf.FieldDescriptorProto.Type type = 5;
boolean hasType();
com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Type getType();
// optional string type_name = 6;
boolean hasTypeName();
String getTypeName();
// optional string extendee = 2;
boolean hasExtendee();
String getExtendee();
// optional string default_value = 7;
boolean hasDefaultValue();
String getDefaultValue();
// optional .google.protobuf.FieldOptions options = 8;
boolean hasOptions();
com.google.protobuf.DescriptorProtos.FieldOptions getOptions();
com.google.protobuf.DescriptorProtos.FieldOptionsOrBuilder getOptionsOrBuilder();
}
public static final class FieldDescriptorProto extends
com.google.protobuf.GeneratedMessage
implements FieldDescriptorProtoOrBuilder {
// Use FieldDescriptorProto.newBuilder() to construct.
private FieldDescriptorProto(Builder builder) {
super(builder);
}
private FieldDescriptorProto(boolean noInit) {}
private static final FieldDescriptorProto defaultInstance;
public static FieldDescriptorProto getDefaultInstance() {
return defaultInstance;
}
public FieldDescriptorProto getDefaultInstanceForType() {
return defaultInstance;
}
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_FieldDescriptorProto_descriptor;
}
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_FieldDescriptorProto_fieldAccessorTable;
}
public enum Type
implements com.google.protobuf.ProtocolMessageEnum {
TYPE_DOUBLE(0, 1),
TYPE_FLOAT(1, 2),
TYPE_INT64(2, 3),
TYPE_UINT64(3, 4),
TYPE_INT32(4, 5),
TYPE_FIXED64(5, 6),
TYPE_FIXED32(6, 7),
TYPE_BOOL(7, 8),
TYPE_STRING(8, 9),
TYPE_GROUP(9, 10),
TYPE_MESSAGE(10, 11),
TYPE_BYTES(11, 12),
TYPE_UINT32(12, 13),
TYPE_ENUM(13, 14),
TYPE_SFIXED32(14, 15),
TYPE_SFIXED64(15, 16),
TYPE_SINT32(16, 17),
TYPE_SINT64(17, 18),
;
public static final int TYPE_DOUBLE_VALUE = 1;
public static final int TYPE_FLOAT_VALUE = 2;
public static final int TYPE_INT64_VALUE = 3;
public static final int TYPE_UINT64_VALUE = 4;
public static final int TYPE_INT32_VALUE = 5;
public static final int TYPE_FIXED64_VALUE = 6;
public static final int TYPE_FIXED32_VALUE = 7;
public static final int TYPE_BOOL_VALUE = 8;
public static final int TYPE_STRING_VALUE = 9;
public static final int TYPE_GROUP_VALUE = 10;
public static final int TYPE_MESSAGE_VALUE = 11;
public static final int TYPE_BYTES_VALUE = 12;
public static final int TYPE_UINT32_VALUE = 13;
public static final int TYPE_ENUM_VALUE = 14;
public static final int TYPE_SFIXED32_VALUE = 15;
public static final int TYPE_SFIXED64_VALUE = 16;
public static final int TYPE_SINT32_VALUE = 17;
public static final int TYPE_SINT64_VALUE = 18;
public final int getNumber() { return value; }
public static Type valueOf(int value) {
switch (value) {
case 1: return TYPE_DOUBLE;
case 2: return TYPE_FLOAT;
case 3: return TYPE_INT64;
case 4: return TYPE_UINT64;
case 5: return TYPE_INT32;
case 6: return TYPE_FIXED64;
case 7: return TYPE_FIXED32;
case 8: return TYPE_BOOL;
case 9: return TYPE_STRING;
case 10: return TYPE_GROUP;
case 11: return TYPE_MESSAGE;
case 12: return TYPE_BYTES;
case 13: return TYPE_UINT32;
case 14: return TYPE_ENUM;
case 15: return TYPE_SFIXED32;
case 16: return TYPE_SFIXED64;
case 17: return TYPE_SINT32;
case 18: return TYPE_SINT64;
default: return null;
}
}
public static com.google.protobuf.Internal.EnumLiteMap<Type>
internalGetValueMap() {
return internalValueMap;
}
private static com.google.protobuf.Internal.EnumLiteMap<Type>
internalValueMap =
new com.google.protobuf.Internal.EnumLiteMap<Type>() {
public Type findValueByNumber(int number) {
return Type.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 com.google.protobuf.DescriptorProtos.FieldDescriptorProto.getDescriptor().getEnumTypes().get(0);
}
private static final Type[] VALUES = {
TYPE_DOUBLE, TYPE_FLOAT, TYPE_INT64, TYPE_UINT64, TYPE_INT32, TYPE_FIXED64, TYPE_FIXED32, TYPE_BOOL, TYPE_STRING, TYPE_GROUP, TYPE_MESSAGE, TYPE_BYTES, TYPE_UINT32, TYPE_ENUM, TYPE_SFIXED32, TYPE_SFIXED64, TYPE_SINT32, TYPE_SINT64,
};
public static Type 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 Type(int index, int value) {
this.index = index;
this.value = value;
}
// @@protoc_insertion_point(enum_scope:google.protobuf.FieldDescriptorProto.Type)
}
public enum Label
implements com.google.protobuf.ProtocolMessageEnum {
LABEL_OPTIONAL(0, 1),
LABEL_REQUIRED(1, 2),
LABEL_REPEATED(2, 3),
;
public static final int LABEL_OPTIONAL_VALUE = 1;
public static final int LABEL_REQUIRED_VALUE = 2;
public static final int LABEL_REPEATED_VALUE = 3;
public final int getNumber() { return value; }
public static Label valueOf(int value) {
switch (value) {
case 1: return LABEL_OPTIONAL;
case 2: return LABEL_REQUIRED;
case 3: return LABEL_REPEATED;
default: return null;
}
}
public static com.google.protobuf.Internal.EnumLiteMap<Label>
internalGetValueMap() {
return internalValueMap;
}
private static com.google.protobuf.Internal.EnumLiteMap<Label>
internalValueMap =
new com.google.protobuf.Internal.EnumLiteMap<Label>() {
public Label findValueByNumber(int number) {
return Label.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 com.google.protobuf.DescriptorProtos.FieldDescriptorProto.getDescriptor().getEnumTypes().get(1);
}
private static final Label[] VALUES = {
LABEL_OPTIONAL, LABEL_REQUIRED, LABEL_REPEATED,
};
public static Label 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 Label(int index, int value) {
this.index = index;
this.value = value;
}
// @@protoc_insertion_point(enum_scope:google.protobuf.FieldDescriptorProto.Label)
}
private int bitField0_;
// optional string name = 1;
public static final int NAME_FIELD_NUMBER = 1;
private java.lang.Object name_;
public boolean hasName() {
return ((bitField0_ & 0x00000001) == 0x00000001);
}
public String getName() {
java.lang.Object ref = name_;
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)) {
name_ = s;
}
return s;
}
}
private com.google.protobuf.ByteString getNameBytes() {
java.lang.Object ref = name_;
if (ref instanceof String) {
com.google.protobuf.ByteString b =
com.google.protobuf.ByteString.copyFromUtf8((String) ref);
name_ = b;
return b;
} else {
return (com.google.protobuf.ByteString) ref;
}
}
// optional int32 number = 3;
public static final int NUMBER_FIELD_NUMBER = 3;
private int number_;
public boolean hasNumber() {
return ((bitField0_ & 0x00000002) == 0x00000002);
}
public int getNumber() {
return number_;
}
// optional .google.protobuf.FieldDescriptorProto.Label label = 4;
public static final int LABEL_FIELD_NUMBER = 4;
private com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Label label_;
public boolean hasLabel() {
return ((bitField0_ & 0x00000004) == 0x00000004);
}
public com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Label getLabel() {
return label_;
}
// optional .google.protobuf.FieldDescriptorProto.Type type = 5;
public static final int TYPE_FIELD_NUMBER = 5;
private com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Type type_;
public boolean hasType() {
return ((bitField0_ & 0x00000008) == 0x00000008);
}
public com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Type getType() {
return type_;
}
// optional string type_name = 6;
public static final int TYPE_NAME_FIELD_NUMBER = 6;
private java.lang.Object typeName_;
public boolean hasTypeName() {
return ((bitField0_ & 0x00000010) == 0x00000010);
}
public String getTypeName() {
java.lang.Object ref = typeName_;
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)) {
typeName_ = s;
}
return s;
}
}
private com.google.protobuf.ByteString getTypeNameBytes() {
java.lang.Object ref = typeName_;
if (ref instanceof String) {
com.google.protobuf.ByteString b =
com.google.protobuf.ByteString.copyFromUtf8((String) ref);
typeName_ = b;
return b;
} else {
return (com.google.protobuf.ByteString) ref;
}
}
// optional string extendee = 2;
public static final int EXTENDEE_FIELD_NUMBER = 2;
private java.lang.Object extendee_;
public boolean hasExtendee() {
return ((bitField0_ & 0x00000020) == 0x00000020);
}
public String getExtendee() {
java.lang.Object ref = extendee_;
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)) {
extendee_ = s;
}
return s;
}
}
private com.google.protobuf.ByteString getExtendeeBytes() {
java.lang.Object ref = extendee_;
if (ref instanceof String) {
com.google.protobuf.ByteString b =
com.google.protobuf.ByteString.copyFromUtf8((String) ref);
extendee_ = b;
return b;
} else {
return (com.google.protobuf.ByteString) ref;
}
}
// optional string default_value = 7;
public static final int DEFAULT_VALUE_FIELD_NUMBER = 7;
private java.lang.Object defaultValue_;
public boolean hasDefaultValue() {
return ((bitField0_ & 0x00000040) == 0x00000040);
}
public String getDefaultValue() {
java.lang.Object ref = defaultValue_;
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)) {
defaultValue_ = s;
}
return s;
}
}
private com.google.protobuf.ByteString getDefaultValueBytes() {
java.lang.Object ref = defaultValue_;
if (ref instanceof String) {
com.google.protobuf.ByteString b =
com.google.protobuf.ByteString.copyFromUtf8((String) ref);
defaultValue_ = b;
return b;
} else {
return (com.google.protobuf.ByteString) ref;
}
}
// optional .google.protobuf.FieldOptions options = 8;
public static final int OPTIONS_FIELD_NUMBER = 8;
private com.google.protobuf.DescriptorProtos.FieldOptions options_;
public boolean hasOptions() {
return ((bitField0_ & 0x00000080) == 0x00000080);
}
public com.google.protobuf.DescriptorProtos.FieldOptions getOptions() {
return options_;
}
public com.google.protobuf.DescriptorProtos.FieldOptionsOrBuilder getOptionsOrBuilder() {
return options_;
}
private void initFields() {
name_ = "";
number_ = 0;
label_ = com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Label.LABEL_OPTIONAL;
type_ = com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Type.TYPE_DOUBLE;
typeName_ = "";
extendee_ = "";
defaultValue_ = "";
options_ = com.google.protobuf.DescriptorProtos.FieldOptions.getDefaultInstance();
}
private byte memoizedIsInitialized = -1;
public final boolean isInitialized() {
byte isInitialized = memoizedIsInitialized;
if (isInitialized != -1) return isInitialized == 1;
if (hasOptions()) {
if (!getOptions().isInitialized()) {
memoizedIsInitialized = 0;
return false;
}
}
memoizedIsInitialized = 1;
return true;
}
public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException {
getSerializedSize();
if (((bitField0_ & 0x00000001) == 0x00000001)) {
output.writeBytes(1, getNameBytes());
}
if (((bitField0_ & 0x00000020) == 0x00000020)) {
output.writeBytes(2, getExtendeeBytes());
}
if (((bitField0_ & 0x00000002) == 0x00000002)) {
output.writeInt32(3, number_);
}
if (((bitField0_ & 0x00000004) == 0x00000004)) {
output.writeEnum(4, label_.getNumber());
}
if (((bitField0_ & 0x00000008) == 0x00000008)) {
output.writeEnum(5, type_.getNumber());
}
if (((bitField0_ & 0x00000010) == 0x00000010)) {
output.writeBytes(6, getTypeNameBytes());
}
if (((bitField0_ & 0x00000040) == 0x00000040)) {
output.writeBytes(7, getDefaultValueBytes());
}
if (((bitField0_ & 0x00000080) == 0x00000080)) {
output.writeMessage(8, options_);
}
getUnknownFields().writeTo(output);
}
private int memoizedSerializedSize = -1;
public int getSerializedSize() {
int size = memoizedSerializedSize;
if (size != -1) return size;
size = 0;
if (((bitField0_ & 0x00000001) == 0x00000001)) {
size += com.google.protobuf.CodedOutputStream
.computeBytesSize(1, getNameBytes());
}
if (((bitField0_ & 0x00000020) == 0x00000020)) {
size += com.google.protobuf.CodedOutputStream
.computeBytesSize(2, getExtendeeBytes());
}
if (((bitField0_ & 0x00000002) == 0x00000002)) {
size += com.google.protobuf.CodedOutputStream
.computeInt32Size(3, number_);
}
if (((bitField0_ & 0x00000004) == 0x00000004)) {
size += com.google.protobuf.CodedOutputStream
.computeEnumSize(4, label_.getNumber());
}
if (((bitField0_ & 0x00000008) == 0x00000008)) {
size += com.google.protobuf.CodedOutputStream
.computeEnumSize(5, type_.getNumber());
}
if (((bitField0_ & 0x00000010) == 0x00000010)) {
size += com.google.protobuf.CodedOutputStream
.computeBytesSize(6, getTypeNameBytes());
}
if (((bitField0_ & 0x00000040) == 0x00000040)) {
size += com.google.protobuf.CodedOutputStream
.computeBytesSize(7, getDefaultValueBytes());
}
if (((bitField0_ & 0x00000080) == 0x00000080)) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(8, options_);
}
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 com.google.protobuf.DescriptorProtos.FieldDescriptorProto parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.FieldDescriptorProto parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.FieldDescriptorProto parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.FieldDescriptorProto parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.FieldDescriptorProto parseFrom(java.io.InputStream input)
throws java.io.IOException {
return newBuilder().mergeFrom(input).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.FieldDescriptorProto parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return newBuilder().mergeFrom(input, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.FieldDescriptorProto parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
Builder builder = newBuilder();
if (builder.mergeDelimitedFrom(input)) {
return builder.buildParsed();
} else {
return null;
}
}
public static com.google.protobuf.DescriptorProtos.FieldDescriptorProto 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 com.google.protobuf.DescriptorProtos.FieldDescriptorProto parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return newBuilder().mergeFrom(input).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.FieldDescriptorProto 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(com.google.protobuf.DescriptorProtos.FieldDescriptorProto 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 com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_FieldDescriptorProto_descriptor;
}
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_FieldDescriptorProto_fieldAccessorTable;
}
// Construct using com.google.protobuf.DescriptorProtos.FieldDescriptorProto.newBuilder()
private Builder() {
maybeForceBuilderInitialization();
}
private Builder(BuilderParent parent) {
super(parent);
maybeForceBuilderInitialization();
}
private void maybeForceBuilderInitialization() {
if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
getOptionsFieldBuilder();
}
}
private static Builder create() {
return new Builder();
}
public Builder clear() {
super.clear();
name_ = "";
bitField0_ = (bitField0_ & ~0x00000001);
number_ = 0;
bitField0_ = (bitField0_ & ~0x00000002);
label_ = com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Label.LABEL_OPTIONAL;
bitField0_ = (bitField0_ & ~0x00000004);
type_ = com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Type.TYPE_DOUBLE;
bitField0_ = (bitField0_ & ~0x00000008);
typeName_ = "";
bitField0_ = (bitField0_ & ~0x00000010);
extendee_ = "";
bitField0_ = (bitField0_ & ~0x00000020);
defaultValue_ = "";
bitField0_ = (bitField0_ & ~0x00000040);
if (optionsBuilder_ == null) {
options_ = com.google.protobuf.DescriptorProtos.FieldOptions.getDefaultInstance();
} else {
optionsBuilder_.clear();
}
bitField0_ = (bitField0_ & ~0x00000080);
return this;
}
public Builder clone() {
return create().mergeFrom(buildPartial());
}
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
return com.google.protobuf.DescriptorProtos.FieldDescriptorProto.getDescriptor();
}
public com.google.protobuf.DescriptorProtos.FieldDescriptorProto getDefaultInstanceForType() {
return com.google.protobuf.DescriptorProtos.FieldDescriptorProto.getDefaultInstance();
}
public com.google.protobuf.DescriptorProtos.FieldDescriptorProto build() {
com.google.protobuf.DescriptorProtos.FieldDescriptorProto result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(result);
}
return result;
}
private com.google.protobuf.DescriptorProtos.FieldDescriptorProto buildParsed()
throws com.google.protobuf.InvalidProtocolBufferException {
com.google.protobuf.DescriptorProtos.FieldDescriptorProto result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(
result).asInvalidProtocolBufferException();
}
return result;
}
public com.google.protobuf.DescriptorProtos.FieldDescriptorProto buildPartial() {
com.google.protobuf.DescriptorProtos.FieldDescriptorProto result = new com.google.protobuf.DescriptorProtos.FieldDescriptorProto(this);
int from_bitField0_ = bitField0_;
int to_bitField0_ = 0;
if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
to_bitField0_ |= 0x00000001;
}
result.name_ = name_;
if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
to_bitField0_ |= 0x00000002;
}
result.number_ = number_;
if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
to_bitField0_ |= 0x00000004;
}
result.label_ = label_;
if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
to_bitField0_ |= 0x00000008;
}
result.type_ = type_;
if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
to_bitField0_ |= 0x00000010;
}
result.typeName_ = typeName_;
if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
to_bitField0_ |= 0x00000020;
}
result.extendee_ = extendee_;
if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
to_bitField0_ |= 0x00000040;
}
result.defaultValue_ = defaultValue_;
if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
to_bitField0_ |= 0x00000080;
}
if (optionsBuilder_ == null) {
result.options_ = options_;
} else {
result.options_ = optionsBuilder_.build();
}
result.bitField0_ = to_bitField0_;
onBuilt();
return result;
}
public Builder mergeFrom(com.google.protobuf.Message other) {
if (other instanceof com.google.protobuf.DescriptorProtos.FieldDescriptorProto) {
return mergeFrom((com.google.protobuf.DescriptorProtos.FieldDescriptorProto)other);
} else {
super.mergeFrom(other);
return this;
}
}
public Builder mergeFrom(com.google.protobuf.DescriptorProtos.FieldDescriptorProto other) {
if (other == com.google.protobuf.DescriptorProtos.FieldDescriptorProto.getDefaultInstance()) return this;
if (other.hasName()) {
setName(other.getName());
}
if (other.hasNumber()) {
setNumber(other.getNumber());
}
if (other.hasLabel()) {
setLabel(other.getLabel());
}
if (other.hasType()) {
setType(other.getType());
}
if (other.hasTypeName()) {
setTypeName(other.getTypeName());
}
if (other.hasExtendee()) {
setExtendee(other.getExtendee());
}
if (other.hasDefaultValue()) {
setDefaultValue(other.getDefaultValue());
}
if (other.hasOptions()) {
mergeOptions(other.getOptions());
}
this.mergeUnknownFields(other.getUnknownFields());
return this;
}
public final boolean isInitialized() {
if (hasOptions()) {
if (!getOptions().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(
this.getUnknownFields());
while (true) {
int tag = input.readTag();
switch (tag) {
case 0:
this.setUnknownFields(unknownFields.build());
onChanged();
return this;
default: {
if (!parseUnknownField(input, unknownFields,
extensionRegistry, tag)) {
this.setUnknownFields(unknownFields.build());
onChanged();
return this;
}
break;
}
case 10: {
bitField0_ |= 0x00000001;
name_ = input.readBytes();
break;
}
case 18: {
bitField0_ |= 0x00000020;
extendee_ = input.readBytes();
break;
}
case 24: {
bitField0_ |= 0x00000002;
number_ = input.readInt32();
break;
}
case 32: {
int rawValue = input.readEnum();
com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Label value = com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Label.valueOf(rawValue);
if (value == null) {
unknownFields.mergeVarintField(4, rawValue);
} else {
bitField0_ |= 0x00000004;
label_ = value;
}
break;
}
case 40: {
int rawValue = input.readEnum();
com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Type value = com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Type.valueOf(rawValue);
if (value == null) {
unknownFields.mergeVarintField(5, rawValue);
} else {
bitField0_ |= 0x00000008;
type_ = value;
}
break;
}
case 50: {
bitField0_ |= 0x00000010;
typeName_ = input.readBytes();
break;
}
case 58: {
bitField0_ |= 0x00000040;
defaultValue_ = input.readBytes();
break;
}
case 66: {
com.google.protobuf.DescriptorProtos.FieldOptions.Builder subBuilder = com.google.protobuf.DescriptorProtos.FieldOptions.newBuilder();
if (hasOptions()) {
subBuilder.mergeFrom(getOptions());
}
input.readMessage(subBuilder, extensionRegistry);
setOptions(subBuilder.buildPartial());
break;
}
}
}
}
private int bitField0_;
// optional string name = 1;
private java.lang.Object name_ = "";
public boolean hasName() {
return ((bitField0_ & 0x00000001) == 0x00000001);
}
public String getName() {
java.lang.Object ref = name_;
if (!(ref instanceof String)) {
String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
name_ = s;
return s;
} else {
return (String) ref;
}
}
public Builder setName(String value) {
if (value == null) {
throw new NullPointerException();
}
bitField0_ |= 0x00000001;
name_ = value;
onChanged();
return this;
}
public Builder clearName() {
bitField0_ = (bitField0_ & ~0x00000001);
name_ = getDefaultInstance().getName();
onChanged();
return this;
}
void setName(com.google.protobuf.ByteString value) {
bitField0_ |= 0x00000001;
name_ = value;
onChanged();
}
// optional int32 number = 3;
private int number_ ;
public boolean hasNumber() {
return ((bitField0_ & 0x00000002) == 0x00000002);
}
public int getNumber() {
return number_;
}
public Builder setNumber(int value) {
bitField0_ |= 0x00000002;
number_ = value;
onChanged();
return this;
}
public Builder clearNumber() {
bitField0_ = (bitField0_ & ~0x00000002);
number_ = 0;
onChanged();
return this;
}
// optional .google.protobuf.FieldDescriptorProto.Label label = 4;
private com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Label label_ = com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Label.LABEL_OPTIONAL;
public boolean hasLabel() {
return ((bitField0_ & 0x00000004) == 0x00000004);
}
public com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Label getLabel() {
return label_;
}
public Builder setLabel(com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Label value) {
if (value == null) {
throw new NullPointerException();
}
bitField0_ |= 0x00000004;
label_ = value;
onChanged();
return this;
}
public Builder clearLabel() {
bitField0_ = (bitField0_ & ~0x00000004);
label_ = com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Label.LABEL_OPTIONAL;
onChanged();
return this;
}
// optional .google.protobuf.FieldDescriptorProto.Type type = 5;
private com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Type type_ = com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Type.TYPE_DOUBLE;
public boolean hasType() {
return ((bitField0_ & 0x00000008) == 0x00000008);
}
public com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Type getType() {
return type_;
}
public Builder setType(com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Type value) {
if (value == null) {
throw new NullPointerException();
}
bitField0_ |= 0x00000008;
type_ = value;
onChanged();
return this;
}
public Builder clearType() {
bitField0_ = (bitField0_ & ~0x00000008);
type_ = com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Type.TYPE_DOUBLE;
onChanged();
return this;
}
// optional string type_name = 6;
private java.lang.Object typeName_ = "";
public boolean hasTypeName() {
return ((bitField0_ & 0x00000010) == 0x00000010);
}
public String getTypeName() {
java.lang.Object ref = typeName_;
if (!(ref instanceof String)) {
String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
typeName_ = s;
return s;
} else {
return (String) ref;
}
}
public Builder setTypeName(String value) {
if (value == null) {
throw new NullPointerException();
}
bitField0_ |= 0x00000010;
typeName_ = value;
onChanged();
return this;
}
public Builder clearTypeName() {
bitField0_ = (bitField0_ & ~0x00000010);
typeName_ = getDefaultInstance().getTypeName();
onChanged();
return this;
}
void setTypeName(com.google.protobuf.ByteString value) {
bitField0_ |= 0x00000010;
typeName_ = value;
onChanged();
}
// optional string extendee = 2;
private java.lang.Object extendee_ = "";
public boolean hasExtendee() {
return ((bitField0_ & 0x00000020) == 0x00000020);
}
public String getExtendee() {
java.lang.Object ref = extendee_;
if (!(ref instanceof String)) {
String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
extendee_ = s;
return s;
} else {
return (String) ref;
}
}
public Builder setExtendee(String value) {
if (value == null) {
throw new NullPointerException();
}
bitField0_ |= 0x00000020;
extendee_ = value;
onChanged();
return this;
}
public Builder clearExtendee() {
bitField0_ = (bitField0_ & ~0x00000020);
extendee_ = getDefaultInstance().getExtendee();
onChanged();
return this;
}
void setExtendee(com.google.protobuf.ByteString value) {
bitField0_ |= 0x00000020;
extendee_ = value;
onChanged();
}
// optional string default_value = 7;
private java.lang.Object defaultValue_ = "";
public boolean hasDefaultValue() {
return ((bitField0_ & 0x00000040) == 0x00000040);
}
public String getDefaultValue() {
java.lang.Object ref = defaultValue_;
if (!(ref instanceof String)) {
String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
defaultValue_ = s;
return s;
} else {
return (String) ref;
}
}
public Builder setDefaultValue(String value) {
if (value == null) {
throw new NullPointerException();
}
bitField0_ |= 0x00000040;
defaultValue_ = value;
onChanged();
return this;
}
public Builder clearDefaultValue() {
bitField0_ = (bitField0_ & ~0x00000040);
defaultValue_ = getDefaultInstance().getDefaultValue();
onChanged();
return this;
}
void setDefaultValue(com.google.protobuf.ByteString value) {
bitField0_ |= 0x00000040;
defaultValue_ = value;
onChanged();
}
// optional .google.protobuf.FieldOptions options = 8;
private com.google.protobuf.DescriptorProtos.FieldOptions options_ = com.google.protobuf.DescriptorProtos.FieldOptions.getDefaultInstance();
private com.google.protobuf.SingleFieldBuilder<
com.google.protobuf.DescriptorProtos.FieldOptions, com.google.protobuf.DescriptorProtos.FieldOptions.Builder, com.google.protobuf.DescriptorProtos.FieldOptionsOrBuilder> optionsBuilder_;
public boolean hasOptions() {
return ((bitField0_ & 0x00000080) == 0x00000080);
}
public com.google.protobuf.DescriptorProtos.FieldOptions getOptions() {
if (optionsBuilder_ == null) {
return options_;
} else {
return optionsBuilder_.getMessage();
}
}
public Builder setOptions(com.google.protobuf.DescriptorProtos.FieldOptions value) {
if (optionsBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
options_ = value;
onChanged();
} else {
optionsBuilder_.setMessage(value);
}
bitField0_ |= 0x00000080;
return this;
}
public Builder setOptions(
com.google.protobuf.DescriptorProtos.FieldOptions.Builder builderForValue) {
if (optionsBuilder_ == null) {
options_ = builderForValue.build();
onChanged();
} else {
optionsBuilder_.setMessage(builderForValue.build());
}
bitField0_ |= 0x00000080;
return this;
}
public Builder mergeOptions(com.google.protobuf.DescriptorProtos.FieldOptions value) {
if (optionsBuilder_ == null) {
if (((bitField0_ & 0x00000080) == 0x00000080) &&
options_ != com.google.protobuf.DescriptorProtos.FieldOptions.getDefaultInstance()) {
options_ =
com.google.protobuf.DescriptorProtos.FieldOptions.newBuilder(options_).mergeFrom(value).buildPartial();
} else {
options_ = value;
}
onChanged();
} else {
optionsBuilder_.mergeFrom(value);
}
bitField0_ |= 0x00000080;
return this;
}
public Builder clearOptions() {
if (optionsBuilder_ == null) {
options_ = com.google.protobuf.DescriptorProtos.FieldOptions.getDefaultInstance();
onChanged();
} else {
optionsBuilder_.clear();
}
bitField0_ = (bitField0_ & ~0x00000080);
return this;
}
public com.google.protobuf.DescriptorProtos.FieldOptions.Builder getOptionsBuilder() {
bitField0_ |= 0x00000080;
onChanged();
return getOptionsFieldBuilder().getBuilder();
}
public com.google.protobuf.DescriptorProtos.FieldOptionsOrBuilder getOptionsOrBuilder() {
if (optionsBuilder_ != null) {
return optionsBuilder_.getMessageOrBuilder();
} else {
return options_;
}
}
private com.google.protobuf.SingleFieldBuilder<
com.google.protobuf.DescriptorProtos.FieldOptions, com.google.protobuf.DescriptorProtos.FieldOptions.Builder, com.google.protobuf.DescriptorProtos.FieldOptionsOrBuilder>
getOptionsFieldBuilder() {
if (optionsBuilder_ == null) {
optionsBuilder_ = new com.google.protobuf.SingleFieldBuilder<
com.google.protobuf.DescriptorProtos.FieldOptions, com.google.protobuf.DescriptorProtos.FieldOptions.Builder, com.google.protobuf.DescriptorProtos.FieldOptionsOrBuilder>(
options_,
getParentForChildren(),
isClean());
options_ = null;
}
return optionsBuilder_;
}
// @@protoc_insertion_point(builder_scope:google.protobuf.FieldDescriptorProto)
}
static {
defaultInstance = new FieldDescriptorProto(true);
defaultInstance.initFields();
}
// @@protoc_insertion_point(class_scope:google.protobuf.FieldDescriptorProto)
}
public interface EnumDescriptorProtoOrBuilder
extends com.google.protobuf.MessageOrBuilder {
// optional string name = 1;
boolean hasName();
String getName();
// repeated .google.protobuf.EnumValueDescriptorProto value = 2;
java.util.List<com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto>
getValueList();
com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto getValue(int index);
int getValueCount();
java.util.List<? extends com.google.protobuf.DescriptorProtos.EnumValueDescriptorProtoOrBuilder>
getValueOrBuilderList();
com.google.protobuf.DescriptorProtos.EnumValueDescriptorProtoOrBuilder getValueOrBuilder(
int index);
// optional .google.protobuf.EnumOptions options = 3;
boolean hasOptions();
com.google.protobuf.DescriptorProtos.EnumOptions getOptions();
com.google.protobuf.DescriptorProtos.EnumOptionsOrBuilder getOptionsOrBuilder();
}
public static final class EnumDescriptorProto extends
com.google.protobuf.GeneratedMessage
implements EnumDescriptorProtoOrBuilder {
// Use EnumDescriptorProto.newBuilder() to construct.
private EnumDescriptorProto(Builder builder) {
super(builder);
}
private EnumDescriptorProto(boolean noInit) {}
private static final EnumDescriptorProto defaultInstance;
public static EnumDescriptorProto getDefaultInstance() {
return defaultInstance;
}
public EnumDescriptorProto getDefaultInstanceForType() {
return defaultInstance;
}
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_EnumDescriptorProto_descriptor;
}
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_EnumDescriptorProto_fieldAccessorTable;
}
private int bitField0_;
// optional string name = 1;
public static final int NAME_FIELD_NUMBER = 1;
private java.lang.Object name_;
public boolean hasName() {
return ((bitField0_ & 0x00000001) == 0x00000001);
}
public String getName() {
java.lang.Object ref = name_;
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)) {
name_ = s;
}
return s;
}
}
private com.google.protobuf.ByteString getNameBytes() {
java.lang.Object ref = name_;
if (ref instanceof String) {
com.google.protobuf.ByteString b =
com.google.protobuf.ByteString.copyFromUtf8((String) ref);
name_ = b;
return b;
} else {
return (com.google.protobuf.ByteString) ref;
}
}
// repeated .google.protobuf.EnumValueDescriptorProto value = 2;
public static final int VALUE_FIELD_NUMBER = 2;
private java.util.List<com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto> value_;
public java.util.List<com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto> getValueList() {
return value_;
}
public java.util.List<? extends com.google.protobuf.DescriptorProtos.EnumValueDescriptorProtoOrBuilder>
getValueOrBuilderList() {
return value_;
}
public int getValueCount() {
return value_.size();
}
public com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto getValue(int index) {
return value_.get(index);
}
public com.google.protobuf.DescriptorProtos.EnumValueDescriptorProtoOrBuilder getValueOrBuilder(
int index) {
return value_.get(index);
}
// optional .google.protobuf.EnumOptions options = 3;
public static final int OPTIONS_FIELD_NUMBER = 3;
private com.google.protobuf.DescriptorProtos.EnumOptions options_;
public boolean hasOptions() {
return ((bitField0_ & 0x00000002) == 0x00000002);
}
public com.google.protobuf.DescriptorProtos.EnumOptions getOptions() {
return options_;
}
public com.google.protobuf.DescriptorProtos.EnumOptionsOrBuilder getOptionsOrBuilder() {
return options_;
}
private void initFields() {
name_ = "";
value_ = java.util.Collections.emptyList();
options_ = com.google.protobuf.DescriptorProtos.EnumOptions.getDefaultInstance();
}
private byte memoizedIsInitialized = -1;
public final boolean isInitialized() {
byte isInitialized = memoizedIsInitialized;
if (isInitialized != -1) return isInitialized == 1;
for (int i = 0; i < getValueCount(); i++) {
if (!getValue(i).isInitialized()) {
memoizedIsInitialized = 0;
return false;
}
}
if (hasOptions()) {
if (!getOptions().isInitialized()) {
memoizedIsInitialized = 0;
return false;
}
}
memoizedIsInitialized = 1;
return true;
}
public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException {
getSerializedSize();
if (((bitField0_ & 0x00000001) == 0x00000001)) {
output.writeBytes(1, getNameBytes());
}
for (int i = 0; i < value_.size(); i++) {
output.writeMessage(2, value_.get(i));
}
if (((bitField0_ & 0x00000002) == 0x00000002)) {
output.writeMessage(3, options_);
}
getUnknownFields().writeTo(output);
}
private int memoizedSerializedSize = -1;
public int getSerializedSize() {
int size = memoizedSerializedSize;
if (size != -1) return size;
size = 0;
if (((bitField0_ & 0x00000001) == 0x00000001)) {
size += com.google.protobuf.CodedOutputStream
.computeBytesSize(1, getNameBytes());
}
for (int i = 0; i < value_.size(); i++) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(2, value_.get(i));
}
if (((bitField0_ & 0x00000002) == 0x00000002)) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(3, options_);
}
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 com.google.protobuf.DescriptorProtos.EnumDescriptorProto parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.EnumDescriptorProto parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.EnumDescriptorProto parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.EnumDescriptorProto parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.EnumDescriptorProto parseFrom(java.io.InputStream input)
throws java.io.IOException {
return newBuilder().mergeFrom(input).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.EnumDescriptorProto parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return newBuilder().mergeFrom(input, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.EnumDescriptorProto parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
Builder builder = newBuilder();
if (builder.mergeDelimitedFrom(input)) {
return builder.buildParsed();
} else {
return null;
}
}
public static com.google.protobuf.DescriptorProtos.EnumDescriptorProto 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 com.google.protobuf.DescriptorProtos.EnumDescriptorProto parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return newBuilder().mergeFrom(input).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.EnumDescriptorProto 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(com.google.protobuf.DescriptorProtos.EnumDescriptorProto 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 com.google.protobuf.DescriptorProtos.EnumDescriptorProtoOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_EnumDescriptorProto_descriptor;
}
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_EnumDescriptorProto_fieldAccessorTable;
}
// Construct using com.google.protobuf.DescriptorProtos.EnumDescriptorProto.newBuilder()
private Builder() {
maybeForceBuilderInitialization();
}
private Builder(BuilderParent parent) {
super(parent);
maybeForceBuilderInitialization();
}
private void maybeForceBuilderInitialization() {
if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
getValueFieldBuilder();
getOptionsFieldBuilder();
}
}
private static Builder create() {
return new Builder();
}
public Builder clear() {
super.clear();
name_ = "";
bitField0_ = (bitField0_ & ~0x00000001);
if (valueBuilder_ == null) {
value_ = java.util.Collections.emptyList();
bitField0_ = (bitField0_ & ~0x00000002);
} else {
valueBuilder_.clear();
}
if (optionsBuilder_ == null) {
options_ = com.google.protobuf.DescriptorProtos.EnumOptions.getDefaultInstance();
} else {
optionsBuilder_.clear();
}
bitField0_ = (bitField0_ & ~0x00000004);
return this;
}
public Builder clone() {
return create().mergeFrom(buildPartial());
}
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
return com.google.protobuf.DescriptorProtos.EnumDescriptorProto.getDescriptor();
}
public com.google.protobuf.DescriptorProtos.EnumDescriptorProto getDefaultInstanceForType() {
return com.google.protobuf.DescriptorProtos.EnumDescriptorProto.getDefaultInstance();
}
public com.google.protobuf.DescriptorProtos.EnumDescriptorProto build() {
com.google.protobuf.DescriptorProtos.EnumDescriptorProto result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(result);
}
return result;
}
private com.google.protobuf.DescriptorProtos.EnumDescriptorProto buildParsed()
throws com.google.protobuf.InvalidProtocolBufferException {
com.google.protobuf.DescriptorProtos.EnumDescriptorProto result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(
result).asInvalidProtocolBufferException();
}
return result;
}
public com.google.protobuf.DescriptorProtos.EnumDescriptorProto buildPartial() {
com.google.protobuf.DescriptorProtos.EnumDescriptorProto result = new com.google.protobuf.DescriptorProtos.EnumDescriptorProto(this);
int from_bitField0_ = bitField0_;
int to_bitField0_ = 0;
if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
to_bitField0_ |= 0x00000001;
}
result.name_ = name_;
if (valueBuilder_ == null) {
if (((bitField0_ & 0x00000002) == 0x00000002)) {
value_ = java.util.Collections.unmodifiableList(value_);
bitField0_ = (bitField0_ & ~0x00000002);
}
result.value_ = value_;
} else {
result.value_ = valueBuilder_.build();
}
if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
to_bitField0_ |= 0x00000002;
}
if (optionsBuilder_ == null) {
result.options_ = options_;
} else {
result.options_ = optionsBuilder_.build();
}
result.bitField0_ = to_bitField0_;
onBuilt();
return result;
}
public Builder mergeFrom(com.google.protobuf.Message other) {
if (other instanceof com.google.protobuf.DescriptorProtos.EnumDescriptorProto) {
return mergeFrom((com.google.protobuf.DescriptorProtos.EnumDescriptorProto)other);
} else {
super.mergeFrom(other);
return this;
}
}
public Builder mergeFrom(com.google.protobuf.DescriptorProtos.EnumDescriptorProto other) {
if (other == com.google.protobuf.DescriptorProtos.EnumDescriptorProto.getDefaultInstance()) return this;
if (other.hasName()) {
setName(other.getName());
}
if (valueBuilder_ == null) {
if (!other.value_.isEmpty()) {
if (value_.isEmpty()) {
value_ = other.value_;
bitField0_ = (bitField0_ & ~0x00000002);
} else {
ensureValueIsMutable();
value_.addAll(other.value_);
}
onChanged();
}
} else {
if (!other.value_.isEmpty()) {
if (valueBuilder_.isEmpty()) {
valueBuilder_.dispose();
valueBuilder_ = null;
value_ = other.value_;
bitField0_ = (bitField0_ & ~0x00000002);
valueBuilder_ =
com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
getValueFieldBuilder() : null;
} else {
valueBuilder_.addAllMessages(other.value_);
}
}
}
if (other.hasOptions()) {
mergeOptions(other.getOptions());
}
this.mergeUnknownFields(other.getUnknownFields());
return this;
}
public final boolean isInitialized() {
for (int i = 0; i < getValueCount(); i++) {
if (!getValue(i).isInitialized()) {
return false;
}
}
if (hasOptions()) {
if (!getOptions().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(
this.getUnknownFields());
while (true) {
int tag = input.readTag();
switch (tag) {
case 0:
this.setUnknownFields(unknownFields.build());
onChanged();
return this;
default: {
if (!parseUnknownField(input, unknownFields,
extensionRegistry, tag)) {
this.setUnknownFields(unknownFields.build());
onChanged();
return this;
}
break;
}
case 10: {
bitField0_ |= 0x00000001;
name_ = input.readBytes();
break;
}
case 18: {
com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto.Builder subBuilder = com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto.newBuilder();
input.readMessage(subBuilder, extensionRegistry);
addValue(subBuilder.buildPartial());
break;
}
case 26: {
com.google.protobuf.DescriptorProtos.EnumOptions.Builder subBuilder = com.google.protobuf.DescriptorProtos.EnumOptions.newBuilder();
if (hasOptions()) {
subBuilder.mergeFrom(getOptions());
}
input.readMessage(subBuilder, extensionRegistry);
setOptions(subBuilder.buildPartial());
break;
}
}
}
}
private int bitField0_;
// optional string name = 1;
private java.lang.Object name_ = "";
public boolean hasName() {
return ((bitField0_ & 0x00000001) == 0x00000001);
}
public String getName() {
java.lang.Object ref = name_;
if (!(ref instanceof String)) {
String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
name_ = s;
return s;
} else {
return (String) ref;
}
}
public Builder setName(String value) {
if (value == null) {
throw new NullPointerException();
}
bitField0_ |= 0x00000001;
name_ = value;
onChanged();
return this;
}
public Builder clearName() {
bitField0_ = (bitField0_ & ~0x00000001);
name_ = getDefaultInstance().getName();
onChanged();
return this;
}
void setName(com.google.protobuf.ByteString value) {
bitField0_ |= 0x00000001;
name_ = value;
onChanged();
}
// repeated .google.protobuf.EnumValueDescriptorProto value = 2;
private java.util.List<com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto> value_ =
java.util.Collections.emptyList();
private void ensureValueIsMutable() {
if (!((bitField0_ & 0x00000002) == 0x00000002)) {
value_ = new java.util.ArrayList<com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto>(value_);
bitField0_ |= 0x00000002;
}
}
private com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto, com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto.Builder, com.google.protobuf.DescriptorProtos.EnumValueDescriptorProtoOrBuilder> valueBuilder_;
public java.util.List<com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto> getValueList() {
if (valueBuilder_ == null) {
return java.util.Collections.unmodifiableList(value_);
} else {
return valueBuilder_.getMessageList();
}
}
public int getValueCount() {
if (valueBuilder_ == null) {
return value_.size();
} else {
return valueBuilder_.getCount();
}
}
public com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto getValue(int index) {
if (valueBuilder_ == null) {
return value_.get(index);
} else {
return valueBuilder_.getMessage(index);
}
}
public Builder setValue(
int index, com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto value) {
if (valueBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureValueIsMutable();
value_.set(index, value);
onChanged();
} else {
valueBuilder_.setMessage(index, value);
}
return this;
}
public Builder setValue(
int index, com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto.Builder builderForValue) {
if (valueBuilder_ == null) {
ensureValueIsMutable();
value_.set(index, builderForValue.build());
onChanged();
} else {
valueBuilder_.setMessage(index, builderForValue.build());
}
return this;
}
public Builder addValue(com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto value) {
if (valueBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureValueIsMutable();
value_.add(value);
onChanged();
} else {
valueBuilder_.addMessage(value);
}
return this;
}
public Builder addValue(
int index, com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto value) {
if (valueBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureValueIsMutable();
value_.add(index, value);
onChanged();
} else {
valueBuilder_.addMessage(index, value);
}
return this;
}
public Builder addValue(
com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto.Builder builderForValue) {
if (valueBuilder_ == null) {
ensureValueIsMutable();
value_.add(builderForValue.build());
onChanged();
} else {
valueBuilder_.addMessage(builderForValue.build());
}
return this;
}
public Builder addValue(
int index, com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto.Builder builderForValue) {
if (valueBuilder_ == null) {
ensureValueIsMutable();
value_.add(index, builderForValue.build());
onChanged();
} else {
valueBuilder_.addMessage(index, builderForValue.build());
}
return this;
}
public Builder addAllValue(
java.lang.Iterable<? extends com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto> values) {
if (valueBuilder_ == null) {
ensureValueIsMutable();
super.addAll(values, value_);
onChanged();
} else {
valueBuilder_.addAllMessages(values);
}
return this;
}
public Builder clearValue() {
if (valueBuilder_ == null) {
value_ = java.util.Collections.emptyList();
bitField0_ = (bitField0_ & ~0x00000002);
onChanged();
} else {
valueBuilder_.clear();
}
return this;
}
public Builder removeValue(int index) {
if (valueBuilder_ == null) {
ensureValueIsMutable();
value_.remove(index);
onChanged();
} else {
valueBuilder_.remove(index);
}
return this;
}
public com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto.Builder getValueBuilder(
int index) {
return getValueFieldBuilder().getBuilder(index);
}
public com.google.protobuf.DescriptorProtos.EnumValueDescriptorProtoOrBuilder getValueOrBuilder(
int index) {
if (valueBuilder_ == null) {
return value_.get(index); } else {
return valueBuilder_.getMessageOrBuilder(index);
}
}
public java.util.List<? extends com.google.protobuf.DescriptorProtos.EnumValueDescriptorProtoOrBuilder>
getValueOrBuilderList() {
if (valueBuilder_ != null) {
return valueBuilder_.getMessageOrBuilderList();
} else {
return java.util.Collections.unmodifiableList(value_);
}
}
public com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto.Builder addValueBuilder() {
return getValueFieldBuilder().addBuilder(
com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto.getDefaultInstance());
}
public com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto.Builder addValueBuilder(
int index) {
return getValueFieldBuilder().addBuilder(
index, com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto.getDefaultInstance());
}
public java.util.List<com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto.Builder>
getValueBuilderList() {
return getValueFieldBuilder().getBuilderList();
}
private com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto, com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto.Builder, com.google.protobuf.DescriptorProtos.EnumValueDescriptorProtoOrBuilder>
getValueFieldBuilder() {
if (valueBuilder_ == null) {
valueBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto, com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto.Builder, com.google.protobuf.DescriptorProtos.EnumValueDescriptorProtoOrBuilder>(
value_,
((bitField0_ & 0x00000002) == 0x00000002),
getParentForChildren(),
isClean());
value_ = null;
}
return valueBuilder_;
}
// optional .google.protobuf.EnumOptions options = 3;
private com.google.protobuf.DescriptorProtos.EnumOptions options_ = com.google.protobuf.DescriptorProtos.EnumOptions.getDefaultInstance();
private com.google.protobuf.SingleFieldBuilder<
com.google.protobuf.DescriptorProtos.EnumOptions, com.google.protobuf.DescriptorProtos.EnumOptions.Builder, com.google.protobuf.DescriptorProtos.EnumOptionsOrBuilder> optionsBuilder_;
public boolean hasOptions() {
return ((bitField0_ & 0x00000004) == 0x00000004);
}
public com.google.protobuf.DescriptorProtos.EnumOptions getOptions() {
if (optionsBuilder_ == null) {
return options_;
} else {
return optionsBuilder_.getMessage();
}
}
public Builder setOptions(com.google.protobuf.DescriptorProtos.EnumOptions value) {
if (optionsBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
options_ = value;
onChanged();
} else {
optionsBuilder_.setMessage(value);
}
bitField0_ |= 0x00000004;
return this;
}
public Builder setOptions(
com.google.protobuf.DescriptorProtos.EnumOptions.Builder builderForValue) {
if (optionsBuilder_ == null) {
options_ = builderForValue.build();
onChanged();
} else {
optionsBuilder_.setMessage(builderForValue.build());
}
bitField0_ |= 0x00000004;
return this;
}
public Builder mergeOptions(com.google.protobuf.DescriptorProtos.EnumOptions value) {
if (optionsBuilder_ == null) {
if (((bitField0_ & 0x00000004) == 0x00000004) &&
options_ != com.google.protobuf.DescriptorProtos.EnumOptions.getDefaultInstance()) {
options_ =
com.google.protobuf.DescriptorProtos.EnumOptions.newBuilder(options_).mergeFrom(value).buildPartial();
} else {
options_ = value;
}
onChanged();
} else {
optionsBuilder_.mergeFrom(value);
}
bitField0_ |= 0x00000004;
return this;
}
public Builder clearOptions() {
if (optionsBuilder_ == null) {
options_ = com.google.protobuf.DescriptorProtos.EnumOptions.getDefaultInstance();
onChanged();
} else {
optionsBuilder_.clear();
}
bitField0_ = (bitField0_ & ~0x00000004);
return this;
}
public com.google.protobuf.DescriptorProtos.EnumOptions.Builder getOptionsBuilder() {
bitField0_ |= 0x00000004;
onChanged();
return getOptionsFieldBuilder().getBuilder();
}
public com.google.protobuf.DescriptorProtos.EnumOptionsOrBuilder getOptionsOrBuilder() {
if (optionsBuilder_ != null) {
return optionsBuilder_.getMessageOrBuilder();
} else {
return options_;
}
}
private com.google.protobuf.SingleFieldBuilder<
com.google.protobuf.DescriptorProtos.EnumOptions, com.google.protobuf.DescriptorProtos.EnumOptions.Builder, com.google.protobuf.DescriptorProtos.EnumOptionsOrBuilder>
getOptionsFieldBuilder() {
if (optionsBuilder_ == null) {
optionsBuilder_ = new com.google.protobuf.SingleFieldBuilder<
com.google.protobuf.DescriptorProtos.EnumOptions, com.google.protobuf.DescriptorProtos.EnumOptions.Builder, com.google.protobuf.DescriptorProtos.EnumOptionsOrBuilder>(
options_,
getParentForChildren(),
isClean());
options_ = null;
}
return optionsBuilder_;
}
// @@protoc_insertion_point(builder_scope:google.protobuf.EnumDescriptorProto)
}
static {
defaultInstance = new EnumDescriptorProto(true);
defaultInstance.initFields();
}
// @@protoc_insertion_point(class_scope:google.protobuf.EnumDescriptorProto)
}
public interface EnumValueDescriptorProtoOrBuilder
extends com.google.protobuf.MessageOrBuilder {
// optional string name = 1;
boolean hasName();
String getName();
// optional int32 number = 2;
boolean hasNumber();
int getNumber();
// optional .google.protobuf.EnumValueOptions options = 3;
boolean hasOptions();
com.google.protobuf.DescriptorProtos.EnumValueOptions getOptions();
com.google.protobuf.DescriptorProtos.EnumValueOptionsOrBuilder getOptionsOrBuilder();
}
public static final class EnumValueDescriptorProto extends
com.google.protobuf.GeneratedMessage
implements EnumValueDescriptorProtoOrBuilder {
// Use EnumValueDescriptorProto.newBuilder() to construct.
private EnumValueDescriptorProto(Builder builder) {
super(builder);
}
private EnumValueDescriptorProto(boolean noInit) {}
private static final EnumValueDescriptorProto defaultInstance;
public static EnumValueDescriptorProto getDefaultInstance() {
return defaultInstance;
}
public EnumValueDescriptorProto getDefaultInstanceForType() {
return defaultInstance;
}
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_EnumValueDescriptorProto_descriptor;
}
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_EnumValueDescriptorProto_fieldAccessorTable;
}
private int bitField0_;
// optional string name = 1;
public static final int NAME_FIELD_NUMBER = 1;
private java.lang.Object name_;
public boolean hasName() {
return ((bitField0_ & 0x00000001) == 0x00000001);
}
public String getName() {
java.lang.Object ref = name_;
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)) {
name_ = s;
}
return s;
}
}
private com.google.protobuf.ByteString getNameBytes() {
java.lang.Object ref = name_;
if (ref instanceof String) {
com.google.protobuf.ByteString b =
com.google.protobuf.ByteString.copyFromUtf8((String) ref);
name_ = b;
return b;
} else {
return (com.google.protobuf.ByteString) ref;
}
}
// optional int32 number = 2;
public static final int NUMBER_FIELD_NUMBER = 2;
private int number_;
public boolean hasNumber() {
return ((bitField0_ & 0x00000002) == 0x00000002);
}
public int getNumber() {
return number_;
}
// optional .google.protobuf.EnumValueOptions options = 3;
public static final int OPTIONS_FIELD_NUMBER = 3;
private com.google.protobuf.DescriptorProtos.EnumValueOptions options_;
public boolean hasOptions() {
return ((bitField0_ & 0x00000004) == 0x00000004);
}
public com.google.protobuf.DescriptorProtos.EnumValueOptions getOptions() {
return options_;
}
public com.google.protobuf.DescriptorProtos.EnumValueOptionsOrBuilder getOptionsOrBuilder() {
return options_;
}
private void initFields() {
name_ = "";
number_ = 0;
options_ = com.google.protobuf.DescriptorProtos.EnumValueOptions.getDefaultInstance();
}
private byte memoizedIsInitialized = -1;
public final boolean isInitialized() {
byte isInitialized = memoizedIsInitialized;
if (isInitialized != -1) return isInitialized == 1;
if (hasOptions()) {
if (!getOptions().isInitialized()) {
memoizedIsInitialized = 0;
return false;
}
}
memoizedIsInitialized = 1;
return true;
}
public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException {
getSerializedSize();
if (((bitField0_ & 0x00000001) == 0x00000001)) {
output.writeBytes(1, getNameBytes());
}
if (((bitField0_ & 0x00000002) == 0x00000002)) {
output.writeInt32(2, number_);
}
if (((bitField0_ & 0x00000004) == 0x00000004)) {
output.writeMessage(3, options_);
}
getUnknownFields().writeTo(output);
}
private int memoizedSerializedSize = -1;
public int getSerializedSize() {
int size = memoizedSerializedSize;
if (size != -1) return size;
size = 0;
if (((bitField0_ & 0x00000001) == 0x00000001)) {
size += com.google.protobuf.CodedOutputStream
.computeBytesSize(1, getNameBytes());
}
if (((bitField0_ & 0x00000002) == 0x00000002)) {
size += com.google.protobuf.CodedOutputStream
.computeInt32Size(2, number_);
}
if (((bitField0_ & 0x00000004) == 0x00000004)) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(3, options_);
}
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 com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto parseFrom(java.io.InputStream input)
throws java.io.IOException {
return newBuilder().mergeFrom(input).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return newBuilder().mergeFrom(input, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
Builder builder = newBuilder();
if (builder.mergeDelimitedFrom(input)) {
return builder.buildParsed();
} else {
return null;
}
}
public static com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto 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 com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return newBuilder().mergeFrom(input).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto 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(com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto 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 com.google.protobuf.DescriptorProtos.EnumValueDescriptorProtoOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_EnumValueDescriptorProto_descriptor;
}
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_EnumValueDescriptorProto_fieldAccessorTable;
}
// Construct using com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto.newBuilder()
private Builder() {
maybeForceBuilderInitialization();
}
private Builder(BuilderParent parent) {
super(parent);
maybeForceBuilderInitialization();
}
private void maybeForceBuilderInitialization() {
if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
getOptionsFieldBuilder();
}
}
private static Builder create() {
return new Builder();
}
public Builder clear() {
super.clear();
name_ = "";
bitField0_ = (bitField0_ & ~0x00000001);
number_ = 0;
bitField0_ = (bitField0_ & ~0x00000002);
if (optionsBuilder_ == null) {
options_ = com.google.protobuf.DescriptorProtos.EnumValueOptions.getDefaultInstance();
} else {
optionsBuilder_.clear();
}
bitField0_ = (bitField0_ & ~0x00000004);
return this;
}
public Builder clone() {
return create().mergeFrom(buildPartial());
}
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
return com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto.getDescriptor();
}
public com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto getDefaultInstanceForType() {
return com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto.getDefaultInstance();
}
public com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto build() {
com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(result);
}
return result;
}
private com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto buildParsed()
throws com.google.protobuf.InvalidProtocolBufferException {
com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(
result).asInvalidProtocolBufferException();
}
return result;
}
public com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto buildPartial() {
com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto result = new com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto(this);
int from_bitField0_ = bitField0_;
int to_bitField0_ = 0;
if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
to_bitField0_ |= 0x00000001;
}
result.name_ = name_;
if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
to_bitField0_ |= 0x00000002;
}
result.number_ = number_;
if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
to_bitField0_ |= 0x00000004;
}
if (optionsBuilder_ == null) {
result.options_ = options_;
} else {
result.options_ = optionsBuilder_.build();
}
result.bitField0_ = to_bitField0_;
onBuilt();
return result;
}
public Builder mergeFrom(com.google.protobuf.Message other) {
if (other instanceof com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto) {
return mergeFrom((com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto)other);
} else {
super.mergeFrom(other);
return this;
}
}
public Builder mergeFrom(com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto other) {
if (other == com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto.getDefaultInstance()) return this;
if (other.hasName()) {
setName(other.getName());
}
if (other.hasNumber()) {
setNumber(other.getNumber());
}
if (other.hasOptions()) {
mergeOptions(other.getOptions());
}
this.mergeUnknownFields(other.getUnknownFields());
return this;
}
public final boolean isInitialized() {
if (hasOptions()) {
if (!getOptions().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(
this.getUnknownFields());
while (true) {
int tag = input.readTag();
switch (tag) {
case 0:
this.setUnknownFields(unknownFields.build());
onChanged();
return this;
default: {
if (!parseUnknownField(input, unknownFields,
extensionRegistry, tag)) {
this.setUnknownFields(unknownFields.build());
onChanged();
return this;
}
break;
}
case 10: {
bitField0_ |= 0x00000001;
name_ = input.readBytes();
break;
}
case 16: {
bitField0_ |= 0x00000002;
number_ = input.readInt32();
break;
}
case 26: {
com.google.protobuf.DescriptorProtos.EnumValueOptions.Builder subBuilder = com.google.protobuf.DescriptorProtos.EnumValueOptions.newBuilder();
if (hasOptions()) {
subBuilder.mergeFrom(getOptions());
}
input.readMessage(subBuilder, extensionRegistry);
setOptions(subBuilder.buildPartial());
break;
}
}
}
}
private int bitField0_;
// optional string name = 1;
private java.lang.Object name_ = "";
public boolean hasName() {
return ((bitField0_ & 0x00000001) == 0x00000001);
}
public String getName() {
java.lang.Object ref = name_;
if (!(ref instanceof String)) {
String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
name_ = s;
return s;
} else {
return (String) ref;
}
}
public Builder setName(String value) {
if (value == null) {
throw new NullPointerException();
}
bitField0_ |= 0x00000001;
name_ = value;
onChanged();
return this;
}
public Builder clearName() {
bitField0_ = (bitField0_ & ~0x00000001);
name_ = getDefaultInstance().getName();
onChanged();
return this;
}
void setName(com.google.protobuf.ByteString value) {
bitField0_ |= 0x00000001;
name_ = value;
onChanged();
}
// optional int32 number = 2;
private int number_ ;
public boolean hasNumber() {
return ((bitField0_ & 0x00000002) == 0x00000002);
}
public int getNumber() {
return number_;
}
public Builder setNumber(int value) {
bitField0_ |= 0x00000002;
number_ = value;
onChanged();
return this;
}
public Builder clearNumber() {
bitField0_ = (bitField0_ & ~0x00000002);
number_ = 0;
onChanged();
return this;
}
// optional .google.protobuf.EnumValueOptions options = 3;
private com.google.protobuf.DescriptorProtos.EnumValueOptions options_ = com.google.protobuf.DescriptorProtos.EnumValueOptions.getDefaultInstance();
private com.google.protobuf.SingleFieldBuilder<
com.google.protobuf.DescriptorProtos.EnumValueOptions, com.google.protobuf.DescriptorProtos.EnumValueOptions.Builder, com.google.protobuf.DescriptorProtos.EnumValueOptionsOrBuilder> optionsBuilder_;
public boolean hasOptions() {
return ((bitField0_ & 0x00000004) == 0x00000004);
}
public com.google.protobuf.DescriptorProtos.EnumValueOptions getOptions() {
if (optionsBuilder_ == null) {
return options_;
} else {
return optionsBuilder_.getMessage();
}
}
public Builder setOptions(com.google.protobuf.DescriptorProtos.EnumValueOptions value) {
if (optionsBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
options_ = value;
onChanged();
} else {
optionsBuilder_.setMessage(value);
}
bitField0_ |= 0x00000004;
return this;
}
public Builder setOptions(
com.google.protobuf.DescriptorProtos.EnumValueOptions.Builder builderForValue) {
if (optionsBuilder_ == null) {
options_ = builderForValue.build();
onChanged();
} else {
optionsBuilder_.setMessage(builderForValue.build());
}
bitField0_ |= 0x00000004;
return this;
}
public Builder mergeOptions(com.google.protobuf.DescriptorProtos.EnumValueOptions value) {
if (optionsBuilder_ == null) {
if (((bitField0_ & 0x00000004) == 0x00000004) &&
options_ != com.google.protobuf.DescriptorProtos.EnumValueOptions.getDefaultInstance()) {
options_ =
com.google.protobuf.DescriptorProtos.EnumValueOptions.newBuilder(options_).mergeFrom(value).buildPartial();
} else {
options_ = value;
}
onChanged();
} else {
optionsBuilder_.mergeFrom(value);
}
bitField0_ |= 0x00000004;
return this;
}
public Builder clearOptions() {
if (optionsBuilder_ == null) {
options_ = com.google.protobuf.DescriptorProtos.EnumValueOptions.getDefaultInstance();
onChanged();
} else {
optionsBuilder_.clear();
}
bitField0_ = (bitField0_ & ~0x00000004);
return this;
}
public com.google.protobuf.DescriptorProtos.EnumValueOptions.Builder getOptionsBuilder() {
bitField0_ |= 0x00000004;
onChanged();
return getOptionsFieldBuilder().getBuilder();
}
public com.google.protobuf.DescriptorProtos.EnumValueOptionsOrBuilder getOptionsOrBuilder() {
if (optionsBuilder_ != null) {
return optionsBuilder_.getMessageOrBuilder();
} else {
return options_;
}
}
private com.google.protobuf.SingleFieldBuilder<
com.google.protobuf.DescriptorProtos.EnumValueOptions, com.google.protobuf.DescriptorProtos.EnumValueOptions.Builder, com.google.protobuf.DescriptorProtos.EnumValueOptionsOrBuilder>
getOptionsFieldBuilder() {
if (optionsBuilder_ == null) {
optionsBuilder_ = new com.google.protobuf.SingleFieldBuilder<
com.google.protobuf.DescriptorProtos.EnumValueOptions, com.google.protobuf.DescriptorProtos.EnumValueOptions.Builder, com.google.protobuf.DescriptorProtos.EnumValueOptionsOrBuilder>(
options_,
getParentForChildren(),
isClean());
options_ = null;
}
return optionsBuilder_;
}
// @@protoc_insertion_point(builder_scope:google.protobuf.EnumValueDescriptorProto)
}
static {
defaultInstance = new EnumValueDescriptorProto(true);
defaultInstance.initFields();
}
// @@protoc_insertion_point(class_scope:google.protobuf.EnumValueDescriptorProto)
}
public interface ServiceDescriptorProtoOrBuilder
extends com.google.protobuf.MessageOrBuilder {
// optional string name = 1;
boolean hasName();
String getName();
// repeated .google.protobuf.MethodDescriptorProto method = 2;
java.util.List<com.google.protobuf.DescriptorProtos.MethodDescriptorProto>
getMethodList();
com.google.protobuf.DescriptorProtos.MethodDescriptorProto getMethod(int index);
int getMethodCount();
java.util.List<? extends com.google.protobuf.DescriptorProtos.MethodDescriptorProtoOrBuilder>
getMethodOrBuilderList();
com.google.protobuf.DescriptorProtos.MethodDescriptorProtoOrBuilder getMethodOrBuilder(
int index);
// optional .google.protobuf.ServiceOptions options = 3;
boolean hasOptions();
com.google.protobuf.DescriptorProtos.ServiceOptions getOptions();
com.google.protobuf.DescriptorProtos.ServiceOptionsOrBuilder getOptionsOrBuilder();
}
public static final class ServiceDescriptorProto extends
com.google.protobuf.GeneratedMessage
implements ServiceDescriptorProtoOrBuilder {
// Use ServiceDescriptorProto.newBuilder() to construct.
private ServiceDescriptorProto(Builder builder) {
super(builder);
}
private ServiceDescriptorProto(boolean noInit) {}
private static final ServiceDescriptorProto defaultInstance;
public static ServiceDescriptorProto getDefaultInstance() {
return defaultInstance;
}
public ServiceDescriptorProto getDefaultInstanceForType() {
return defaultInstance;
}
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_ServiceDescriptorProto_descriptor;
}
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_ServiceDescriptorProto_fieldAccessorTable;
}
private int bitField0_;
// optional string name = 1;
public static final int NAME_FIELD_NUMBER = 1;
private java.lang.Object name_;
public boolean hasName() {
return ((bitField0_ & 0x00000001) == 0x00000001);
}
public String getName() {
java.lang.Object ref = name_;
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)) {
name_ = s;
}
return s;
}
}
private com.google.protobuf.ByteString getNameBytes() {
java.lang.Object ref = name_;
if (ref instanceof String) {
com.google.protobuf.ByteString b =
com.google.protobuf.ByteString.copyFromUtf8((String) ref);
name_ = b;
return b;
} else {
return (com.google.protobuf.ByteString) ref;
}
}
// repeated .google.protobuf.MethodDescriptorProto method = 2;
public static final int METHOD_FIELD_NUMBER = 2;
private java.util.List<com.google.protobuf.DescriptorProtos.MethodDescriptorProto> method_;
public java.util.List<com.google.protobuf.DescriptorProtos.MethodDescriptorProto> getMethodList() {
return method_;
}
public java.util.List<? extends com.google.protobuf.DescriptorProtos.MethodDescriptorProtoOrBuilder>
getMethodOrBuilderList() {
return method_;
}
public int getMethodCount() {
return method_.size();
}
public com.google.protobuf.DescriptorProtos.MethodDescriptorProto getMethod(int index) {
return method_.get(index);
}
public com.google.protobuf.DescriptorProtos.MethodDescriptorProtoOrBuilder getMethodOrBuilder(
int index) {
return method_.get(index);
}
// optional .google.protobuf.ServiceOptions options = 3;
public static final int OPTIONS_FIELD_NUMBER = 3;
private com.google.protobuf.DescriptorProtos.ServiceOptions options_;
public boolean hasOptions() {
return ((bitField0_ & 0x00000002) == 0x00000002);
}
public com.google.protobuf.DescriptorProtos.ServiceOptions getOptions() {
return options_;
}
public com.google.protobuf.DescriptorProtos.ServiceOptionsOrBuilder getOptionsOrBuilder() {
return options_;
}
private void initFields() {
name_ = "";
method_ = java.util.Collections.emptyList();
options_ = com.google.protobuf.DescriptorProtos.ServiceOptions.getDefaultInstance();
}
private byte memoizedIsInitialized = -1;
public final boolean isInitialized() {
byte isInitialized = memoizedIsInitialized;
if (isInitialized != -1) return isInitialized == 1;
for (int i = 0; i < getMethodCount(); i++) {
if (!getMethod(i).isInitialized()) {
memoizedIsInitialized = 0;
return false;
}
}
if (hasOptions()) {
if (!getOptions().isInitialized()) {
memoizedIsInitialized = 0;
return false;
}
}
memoizedIsInitialized = 1;
return true;
}
public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException {
getSerializedSize();
if (((bitField0_ & 0x00000001) == 0x00000001)) {
output.writeBytes(1, getNameBytes());
}
for (int i = 0; i < method_.size(); i++) {
output.writeMessage(2, method_.get(i));
}
if (((bitField0_ & 0x00000002) == 0x00000002)) {
output.writeMessage(3, options_);
}
getUnknownFields().writeTo(output);
}
private int memoizedSerializedSize = -1;
public int getSerializedSize() {
int size = memoizedSerializedSize;
if (size != -1) return size;
size = 0;
if (((bitField0_ & 0x00000001) == 0x00000001)) {
size += com.google.protobuf.CodedOutputStream
.computeBytesSize(1, getNameBytes());
}
for (int i = 0; i < method_.size(); i++) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(2, method_.get(i));
}
if (((bitField0_ & 0x00000002) == 0x00000002)) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(3, options_);
}
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 com.google.protobuf.DescriptorProtos.ServiceDescriptorProto parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.ServiceDescriptorProto parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.ServiceDescriptorProto parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.ServiceDescriptorProto parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.ServiceDescriptorProto parseFrom(java.io.InputStream input)
throws java.io.IOException {
return newBuilder().mergeFrom(input).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.ServiceDescriptorProto parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return newBuilder().mergeFrom(input, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.ServiceDescriptorProto parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
Builder builder = newBuilder();
if (builder.mergeDelimitedFrom(input)) {
return builder.buildParsed();
} else {
return null;
}
}
public static com.google.protobuf.DescriptorProtos.ServiceDescriptorProto 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 com.google.protobuf.DescriptorProtos.ServiceDescriptorProto parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return newBuilder().mergeFrom(input).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.ServiceDescriptorProto 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(com.google.protobuf.DescriptorProtos.ServiceDescriptorProto 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 com.google.protobuf.DescriptorProtos.ServiceDescriptorProtoOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_ServiceDescriptorProto_descriptor;
}
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_ServiceDescriptorProto_fieldAccessorTable;
}
// Construct using com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.newBuilder()
private Builder() {
maybeForceBuilderInitialization();
}
private Builder(BuilderParent parent) {
super(parent);
maybeForceBuilderInitialization();
}
private void maybeForceBuilderInitialization() {
if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
getMethodFieldBuilder();
getOptionsFieldBuilder();
}
}
private static Builder create() {
return new Builder();
}
public Builder clear() {
super.clear();
name_ = "";
bitField0_ = (bitField0_ & ~0x00000001);
if (methodBuilder_ == null) {
method_ = java.util.Collections.emptyList();
bitField0_ = (bitField0_ & ~0x00000002);
} else {
methodBuilder_.clear();
}
if (optionsBuilder_ == null) {
options_ = com.google.protobuf.DescriptorProtos.ServiceOptions.getDefaultInstance();
} else {
optionsBuilder_.clear();
}
bitField0_ = (bitField0_ & ~0x00000004);
return this;
}
public Builder clone() {
return create().mergeFrom(buildPartial());
}
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
return com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.getDescriptor();
}
public com.google.protobuf.DescriptorProtos.ServiceDescriptorProto getDefaultInstanceForType() {
return com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.getDefaultInstance();
}
public com.google.protobuf.DescriptorProtos.ServiceDescriptorProto build() {
com.google.protobuf.DescriptorProtos.ServiceDescriptorProto result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(result);
}
return result;
}
private com.google.protobuf.DescriptorProtos.ServiceDescriptorProto buildParsed()
throws com.google.protobuf.InvalidProtocolBufferException {
com.google.protobuf.DescriptorProtos.ServiceDescriptorProto result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(
result).asInvalidProtocolBufferException();
}
return result;
}
public com.google.protobuf.DescriptorProtos.ServiceDescriptorProto buildPartial() {
com.google.protobuf.DescriptorProtos.ServiceDescriptorProto result = new com.google.protobuf.DescriptorProtos.ServiceDescriptorProto(this);
int from_bitField0_ = bitField0_;
int to_bitField0_ = 0;
if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
to_bitField0_ |= 0x00000001;
}
result.name_ = name_;
if (methodBuilder_ == null) {
if (((bitField0_ & 0x00000002) == 0x00000002)) {
method_ = java.util.Collections.unmodifiableList(method_);
bitField0_ = (bitField0_ & ~0x00000002);
}
result.method_ = method_;
} else {
result.method_ = methodBuilder_.build();
}
if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
to_bitField0_ |= 0x00000002;
}
if (optionsBuilder_ == null) {
result.options_ = options_;
} else {
result.options_ = optionsBuilder_.build();
}
result.bitField0_ = to_bitField0_;
onBuilt();
return result;
}
public Builder mergeFrom(com.google.protobuf.Message other) {
if (other instanceof com.google.protobuf.DescriptorProtos.ServiceDescriptorProto) {
return mergeFrom((com.google.protobuf.DescriptorProtos.ServiceDescriptorProto)other);
} else {
super.mergeFrom(other);
return this;
}
}
public Builder mergeFrom(com.google.protobuf.DescriptorProtos.ServiceDescriptorProto other) {
if (other == com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.getDefaultInstance()) return this;
if (other.hasName()) {
setName(other.getName());
}
if (methodBuilder_ == null) {
if (!other.method_.isEmpty()) {
if (method_.isEmpty()) {
method_ = other.method_;
bitField0_ = (bitField0_ & ~0x00000002);
} else {
ensureMethodIsMutable();
method_.addAll(other.method_);
}
onChanged();
}
} else {
if (!other.method_.isEmpty()) {
if (methodBuilder_.isEmpty()) {
methodBuilder_.dispose();
methodBuilder_ = null;
method_ = other.method_;
bitField0_ = (bitField0_ & ~0x00000002);
methodBuilder_ =
com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
getMethodFieldBuilder() : null;
} else {
methodBuilder_.addAllMessages(other.method_);
}
}
}
if (other.hasOptions()) {
mergeOptions(other.getOptions());
}
this.mergeUnknownFields(other.getUnknownFields());
return this;
}
public final boolean isInitialized() {
for (int i = 0; i < getMethodCount(); i++) {
if (!getMethod(i).isInitialized()) {
return false;
}
}
if (hasOptions()) {
if (!getOptions().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(
this.getUnknownFields());
while (true) {
int tag = input.readTag();
switch (tag) {
case 0:
this.setUnknownFields(unknownFields.build());
onChanged();
return this;
default: {
if (!parseUnknownField(input, unknownFields,
extensionRegistry, tag)) {
this.setUnknownFields(unknownFields.build());
onChanged();
return this;
}
break;
}
case 10: {
bitField0_ |= 0x00000001;
name_ = input.readBytes();
break;
}
case 18: {
com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder subBuilder = com.google.protobuf.DescriptorProtos.MethodDescriptorProto.newBuilder();
input.readMessage(subBuilder, extensionRegistry);
addMethod(subBuilder.buildPartial());
break;
}
case 26: {
com.google.protobuf.DescriptorProtos.ServiceOptions.Builder subBuilder = com.google.protobuf.DescriptorProtos.ServiceOptions.newBuilder();
if (hasOptions()) {
subBuilder.mergeFrom(getOptions());
}
input.readMessage(subBuilder, extensionRegistry);
setOptions(subBuilder.buildPartial());
break;
}
}
}
}
private int bitField0_;
// optional string name = 1;
private java.lang.Object name_ = "";
public boolean hasName() {
return ((bitField0_ & 0x00000001) == 0x00000001);
}
public String getName() {
java.lang.Object ref = name_;
if (!(ref instanceof String)) {
String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
name_ = s;
return s;
} else {
return (String) ref;
}
}
public Builder setName(String value) {
if (value == null) {
throw new NullPointerException();
}
bitField0_ |= 0x00000001;
name_ = value;
onChanged();
return this;
}
public Builder clearName() {
bitField0_ = (bitField0_ & ~0x00000001);
name_ = getDefaultInstance().getName();
onChanged();
return this;
}
void setName(com.google.protobuf.ByteString value) {
bitField0_ |= 0x00000001;
name_ = value;
onChanged();
}
// repeated .google.protobuf.MethodDescriptorProto method = 2;
private java.util.List<com.google.protobuf.DescriptorProtos.MethodDescriptorProto> method_ =
java.util.Collections.emptyList();
private void ensureMethodIsMutable() {
if (!((bitField0_ & 0x00000002) == 0x00000002)) {
method_ = new java.util.ArrayList<com.google.protobuf.DescriptorProtos.MethodDescriptorProto>(method_);
bitField0_ |= 0x00000002;
}
}
private com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.MethodDescriptorProto, com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder, com.google.protobuf.DescriptorProtos.MethodDescriptorProtoOrBuilder> methodBuilder_;
public java.util.List<com.google.protobuf.DescriptorProtos.MethodDescriptorProto> getMethodList() {
if (methodBuilder_ == null) {
return java.util.Collections.unmodifiableList(method_);
} else {
return methodBuilder_.getMessageList();
}
}
public int getMethodCount() {
if (methodBuilder_ == null) {
return method_.size();
} else {
return methodBuilder_.getCount();
}
}
public com.google.protobuf.DescriptorProtos.MethodDescriptorProto getMethod(int index) {
if (methodBuilder_ == null) {
return method_.get(index);
} else {
return methodBuilder_.getMessage(index);
}
}
public Builder setMethod(
int index, com.google.protobuf.DescriptorProtos.MethodDescriptorProto value) {
if (methodBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureMethodIsMutable();
method_.set(index, value);
onChanged();
} else {
methodBuilder_.setMessage(index, value);
}
return this;
}
public Builder setMethod(
int index, com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder builderForValue) {
if (methodBuilder_ == null) {
ensureMethodIsMutable();
method_.set(index, builderForValue.build());
onChanged();
} else {
methodBuilder_.setMessage(index, builderForValue.build());
}
return this;
}
public Builder addMethod(com.google.protobuf.DescriptorProtos.MethodDescriptorProto value) {
if (methodBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureMethodIsMutable();
method_.add(value);
onChanged();
} else {
methodBuilder_.addMessage(value);
}
return this;
}
public Builder addMethod(
int index, com.google.protobuf.DescriptorProtos.MethodDescriptorProto value) {
if (methodBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureMethodIsMutable();
method_.add(index, value);
onChanged();
} else {
methodBuilder_.addMessage(index, value);
}
return this;
}
public Builder addMethod(
com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder builderForValue) {
if (methodBuilder_ == null) {
ensureMethodIsMutable();
method_.add(builderForValue.build());
onChanged();
} else {
methodBuilder_.addMessage(builderForValue.build());
}
return this;
}
public Builder addMethod(
int index, com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder builderForValue) {
if (methodBuilder_ == null) {
ensureMethodIsMutable();
method_.add(index, builderForValue.build());
onChanged();
} else {
methodBuilder_.addMessage(index, builderForValue.build());
}
return this;
}
public Builder addAllMethod(
java.lang.Iterable<? extends com.google.protobuf.DescriptorProtos.MethodDescriptorProto> values) {
if (methodBuilder_ == null) {
ensureMethodIsMutable();
super.addAll(values, method_);
onChanged();
} else {
methodBuilder_.addAllMessages(values);
}
return this;
}
public Builder clearMethod() {
if (methodBuilder_ == null) {
method_ = java.util.Collections.emptyList();
bitField0_ = (bitField0_ & ~0x00000002);
onChanged();
} else {
methodBuilder_.clear();
}
return this;
}
public Builder removeMethod(int index) {
if (methodBuilder_ == null) {
ensureMethodIsMutable();
method_.remove(index);
onChanged();
} else {
methodBuilder_.remove(index);
}
return this;
}
public com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder getMethodBuilder(
int index) {
return getMethodFieldBuilder().getBuilder(index);
}
public com.google.protobuf.DescriptorProtos.MethodDescriptorProtoOrBuilder getMethodOrBuilder(
int index) {
if (methodBuilder_ == null) {
return method_.get(index); } else {
return methodBuilder_.getMessageOrBuilder(index);
}
}
public java.util.List<? extends com.google.protobuf.DescriptorProtos.MethodDescriptorProtoOrBuilder>
getMethodOrBuilderList() {
if (methodBuilder_ != null) {
return methodBuilder_.getMessageOrBuilderList();
} else {
return java.util.Collections.unmodifiableList(method_);
}
}
public com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder addMethodBuilder() {
return getMethodFieldBuilder().addBuilder(
com.google.protobuf.DescriptorProtos.MethodDescriptorProto.getDefaultInstance());
}
public com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder addMethodBuilder(
int index) {
return getMethodFieldBuilder().addBuilder(
index, com.google.protobuf.DescriptorProtos.MethodDescriptorProto.getDefaultInstance());
}
public java.util.List<com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder>
getMethodBuilderList() {
return getMethodFieldBuilder().getBuilderList();
}
private com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.MethodDescriptorProto, com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder, com.google.protobuf.DescriptorProtos.MethodDescriptorProtoOrBuilder>
getMethodFieldBuilder() {
if (methodBuilder_ == null) {
methodBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.MethodDescriptorProto, com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder, com.google.protobuf.DescriptorProtos.MethodDescriptorProtoOrBuilder>(
method_,
((bitField0_ & 0x00000002) == 0x00000002),
getParentForChildren(),
isClean());
method_ = null;
}
return methodBuilder_;
}
// optional .google.protobuf.ServiceOptions options = 3;
private com.google.protobuf.DescriptorProtos.ServiceOptions options_ = com.google.protobuf.DescriptorProtos.ServiceOptions.getDefaultInstance();
private com.google.protobuf.SingleFieldBuilder<
com.google.protobuf.DescriptorProtos.ServiceOptions, com.google.protobuf.DescriptorProtos.ServiceOptions.Builder, com.google.protobuf.DescriptorProtos.ServiceOptionsOrBuilder> optionsBuilder_;
public boolean hasOptions() {
return ((bitField0_ & 0x00000004) == 0x00000004);
}
public com.google.protobuf.DescriptorProtos.ServiceOptions getOptions() {
if (optionsBuilder_ == null) {
return options_;
} else {
return optionsBuilder_.getMessage();
}
}
public Builder setOptions(com.google.protobuf.DescriptorProtos.ServiceOptions value) {
if (optionsBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
options_ = value;
onChanged();
} else {
optionsBuilder_.setMessage(value);
}
bitField0_ |= 0x00000004;
return this;
}
public Builder setOptions(
com.google.protobuf.DescriptorProtos.ServiceOptions.Builder builderForValue) {
if (optionsBuilder_ == null) {
options_ = builderForValue.build();
onChanged();
} else {
optionsBuilder_.setMessage(builderForValue.build());
}
bitField0_ |= 0x00000004;
return this;
}
public Builder mergeOptions(com.google.protobuf.DescriptorProtos.ServiceOptions value) {
if (optionsBuilder_ == null) {
if (((bitField0_ & 0x00000004) == 0x00000004) &&
options_ != com.google.protobuf.DescriptorProtos.ServiceOptions.getDefaultInstance()) {
options_ =
com.google.protobuf.DescriptorProtos.ServiceOptions.newBuilder(options_).mergeFrom(value).buildPartial();
} else {
options_ = value;
}
onChanged();
} else {
optionsBuilder_.mergeFrom(value);
}
bitField0_ |= 0x00000004;
return this;
}
public Builder clearOptions() {
if (optionsBuilder_ == null) {
options_ = com.google.protobuf.DescriptorProtos.ServiceOptions.getDefaultInstance();
onChanged();
} else {
optionsBuilder_.clear();
}
bitField0_ = (bitField0_ & ~0x00000004);
return this;
}
public com.google.protobuf.DescriptorProtos.ServiceOptions.Builder getOptionsBuilder() {
bitField0_ |= 0x00000004;
onChanged();
return getOptionsFieldBuilder().getBuilder();
}
public com.google.protobuf.DescriptorProtos.ServiceOptionsOrBuilder getOptionsOrBuilder() {
if (optionsBuilder_ != null) {
return optionsBuilder_.getMessageOrBuilder();
} else {
return options_;
}
}
private com.google.protobuf.SingleFieldBuilder<
com.google.protobuf.DescriptorProtos.ServiceOptions, com.google.protobuf.DescriptorProtos.ServiceOptions.Builder, com.google.protobuf.DescriptorProtos.ServiceOptionsOrBuilder>
getOptionsFieldBuilder() {
if (optionsBuilder_ == null) {
optionsBuilder_ = new com.google.protobuf.SingleFieldBuilder<
com.google.protobuf.DescriptorProtos.ServiceOptions, com.google.protobuf.DescriptorProtos.ServiceOptions.Builder, com.google.protobuf.DescriptorProtos.ServiceOptionsOrBuilder>(
options_,
getParentForChildren(),
isClean());
options_ = null;
}
return optionsBuilder_;
}
// @@protoc_insertion_point(builder_scope:google.protobuf.ServiceDescriptorProto)
}
static {
defaultInstance = new ServiceDescriptorProto(true);
defaultInstance.initFields();
}
// @@protoc_insertion_point(class_scope:google.protobuf.ServiceDescriptorProto)
}
public interface MethodDescriptorProtoOrBuilder
extends com.google.protobuf.MessageOrBuilder {
// optional string name = 1;
boolean hasName();
String getName();
// optional string input_type = 2;
boolean hasInputType();
String getInputType();
// optional string output_type = 3;
boolean hasOutputType();
String getOutputType();
// optional .google.protobuf.MethodOptions options = 4;
boolean hasOptions();
com.google.protobuf.DescriptorProtos.MethodOptions getOptions();
com.google.protobuf.DescriptorProtos.MethodOptionsOrBuilder getOptionsOrBuilder();
}
public static final class MethodDescriptorProto extends
com.google.protobuf.GeneratedMessage
implements MethodDescriptorProtoOrBuilder {
// Use MethodDescriptorProto.newBuilder() to construct.
private MethodDescriptorProto(Builder builder) {
super(builder);
}
private MethodDescriptorProto(boolean noInit) {}
private static final MethodDescriptorProto defaultInstance;
public static MethodDescriptorProto getDefaultInstance() {
return defaultInstance;
}
public MethodDescriptorProto getDefaultInstanceForType() {
return defaultInstance;
}
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_MethodDescriptorProto_descriptor;
}
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_MethodDescriptorProto_fieldAccessorTable;
}
private int bitField0_;
// optional string name = 1;
public static final int NAME_FIELD_NUMBER = 1;
private java.lang.Object name_;
public boolean hasName() {
return ((bitField0_ & 0x00000001) == 0x00000001);
}
public String getName() {
java.lang.Object ref = name_;
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)) {
name_ = s;
}
return s;
}
}
private com.google.protobuf.ByteString getNameBytes() {
java.lang.Object ref = name_;
if (ref instanceof String) {
com.google.protobuf.ByteString b =
com.google.protobuf.ByteString.copyFromUtf8((String) ref);
name_ = b;
return b;
} else {
return (com.google.protobuf.ByteString) ref;
}
}
// optional string input_type = 2;
public static final int INPUT_TYPE_FIELD_NUMBER = 2;
private java.lang.Object inputType_;
public boolean hasInputType() {
return ((bitField0_ & 0x00000002) == 0x00000002);
}
public String getInputType() {
java.lang.Object ref = inputType_;
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)) {
inputType_ = s;
}
return s;
}
}
private com.google.protobuf.ByteString getInputTypeBytes() {
java.lang.Object ref = inputType_;
if (ref instanceof String) {
com.google.protobuf.ByteString b =
com.google.protobuf.ByteString.copyFromUtf8((String) ref);
inputType_ = b;
return b;
} else {
return (com.google.protobuf.ByteString) ref;
}
}
// optional string output_type = 3;
public static final int OUTPUT_TYPE_FIELD_NUMBER = 3;
private java.lang.Object outputType_;
public boolean hasOutputType() {
return ((bitField0_ & 0x00000004) == 0x00000004);
}
public String getOutputType() {
java.lang.Object ref = outputType_;
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)) {
outputType_ = s;
}
return s;
}
}
private com.google.protobuf.ByteString getOutputTypeBytes() {
java.lang.Object ref = outputType_;
if (ref instanceof String) {
com.google.protobuf.ByteString b =
com.google.protobuf.ByteString.copyFromUtf8((String) ref);
outputType_ = b;
return b;
} else {
return (com.google.protobuf.ByteString) ref;
}
}
// optional .google.protobuf.MethodOptions options = 4;
public static final int OPTIONS_FIELD_NUMBER = 4;
private com.google.protobuf.DescriptorProtos.MethodOptions options_;
public boolean hasOptions() {
return ((bitField0_ & 0x00000008) == 0x00000008);
}
public com.google.protobuf.DescriptorProtos.MethodOptions getOptions() {
return options_;
}
public com.google.protobuf.DescriptorProtos.MethodOptionsOrBuilder getOptionsOrBuilder() {
return options_;
}
private void initFields() {
name_ = "";
inputType_ = "";
outputType_ = "";
options_ = com.google.protobuf.DescriptorProtos.MethodOptions.getDefaultInstance();
}
private byte memoizedIsInitialized = -1;
public final boolean isInitialized() {
byte isInitialized = memoizedIsInitialized;
if (isInitialized != -1) return isInitialized == 1;
if (hasOptions()) {
if (!getOptions().isInitialized()) {
memoizedIsInitialized = 0;
return false;
}
}
memoizedIsInitialized = 1;
return true;
}
public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException {
getSerializedSize();
if (((bitField0_ & 0x00000001) == 0x00000001)) {
output.writeBytes(1, getNameBytes());
}
if (((bitField0_ & 0x00000002) == 0x00000002)) {
output.writeBytes(2, getInputTypeBytes());
}
if (((bitField0_ & 0x00000004) == 0x00000004)) {
output.writeBytes(3, getOutputTypeBytes());
}
if (((bitField0_ & 0x00000008) == 0x00000008)) {
output.writeMessage(4, options_);
}
getUnknownFields().writeTo(output);
}
private int memoizedSerializedSize = -1;
public int getSerializedSize() {
int size = memoizedSerializedSize;
if (size != -1) return size;
size = 0;
if (((bitField0_ & 0x00000001) == 0x00000001)) {
size += com.google.protobuf.CodedOutputStream
.computeBytesSize(1, getNameBytes());
}
if (((bitField0_ & 0x00000002) == 0x00000002)) {
size += com.google.protobuf.CodedOutputStream
.computeBytesSize(2, getInputTypeBytes());
}
if (((bitField0_ & 0x00000004) == 0x00000004)) {
size += com.google.protobuf.CodedOutputStream
.computeBytesSize(3, getOutputTypeBytes());
}
if (((bitField0_ & 0x00000008) == 0x00000008)) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(4, options_);
}
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 com.google.protobuf.DescriptorProtos.MethodDescriptorProto parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.MethodDescriptorProto parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.MethodDescriptorProto parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.MethodDescriptorProto parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.MethodDescriptorProto parseFrom(java.io.InputStream input)
throws java.io.IOException {
return newBuilder().mergeFrom(input).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.MethodDescriptorProto parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return newBuilder().mergeFrom(input, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.MethodDescriptorProto parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
Builder builder = newBuilder();
if (builder.mergeDelimitedFrom(input)) {
return builder.buildParsed();
} else {
return null;
}
}
public static com.google.protobuf.DescriptorProtos.MethodDescriptorProto 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 com.google.protobuf.DescriptorProtos.MethodDescriptorProto parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return newBuilder().mergeFrom(input).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.MethodDescriptorProto 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(com.google.protobuf.DescriptorProtos.MethodDescriptorProto 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 com.google.protobuf.DescriptorProtos.MethodDescriptorProtoOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_MethodDescriptorProto_descriptor;
}
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_MethodDescriptorProto_fieldAccessorTable;
}
// Construct using com.google.protobuf.DescriptorProtos.MethodDescriptorProto.newBuilder()
private Builder() {
maybeForceBuilderInitialization();
}
private Builder(BuilderParent parent) {
super(parent);
maybeForceBuilderInitialization();
}
private void maybeForceBuilderInitialization() {
if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
getOptionsFieldBuilder();
}
}
private static Builder create() {
return new Builder();
}
public Builder clear() {
super.clear();
name_ = "";
bitField0_ = (bitField0_ & ~0x00000001);
inputType_ = "";
bitField0_ = (bitField0_ & ~0x00000002);
outputType_ = "";
bitField0_ = (bitField0_ & ~0x00000004);
if (optionsBuilder_ == null) {
options_ = com.google.protobuf.DescriptorProtos.MethodOptions.getDefaultInstance();
} else {
optionsBuilder_.clear();
}
bitField0_ = (bitField0_ & ~0x00000008);
return this;
}
public Builder clone() {
return create().mergeFrom(buildPartial());
}
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
return com.google.protobuf.DescriptorProtos.MethodDescriptorProto.getDescriptor();
}
public com.google.protobuf.DescriptorProtos.MethodDescriptorProto getDefaultInstanceForType() {
return com.google.protobuf.DescriptorProtos.MethodDescriptorProto.getDefaultInstance();
}
public com.google.protobuf.DescriptorProtos.MethodDescriptorProto build() {
com.google.protobuf.DescriptorProtos.MethodDescriptorProto result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(result);
}
return result;
}
private com.google.protobuf.DescriptorProtos.MethodDescriptorProto buildParsed()
throws com.google.protobuf.InvalidProtocolBufferException {
com.google.protobuf.DescriptorProtos.MethodDescriptorProto result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(
result).asInvalidProtocolBufferException();
}
return result;
}
public com.google.protobuf.DescriptorProtos.MethodDescriptorProto buildPartial() {
com.google.protobuf.DescriptorProtos.MethodDescriptorProto result = new com.google.protobuf.DescriptorProtos.MethodDescriptorProto(this);
int from_bitField0_ = bitField0_;
int to_bitField0_ = 0;
if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
to_bitField0_ |= 0x00000001;
}
result.name_ = name_;
if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
to_bitField0_ |= 0x00000002;
}
result.inputType_ = inputType_;
if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
to_bitField0_ |= 0x00000004;
}
result.outputType_ = outputType_;
if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
to_bitField0_ |= 0x00000008;
}
if (optionsBuilder_ == null) {
result.options_ = options_;
} else {
result.options_ = optionsBuilder_.build();
}
result.bitField0_ = to_bitField0_;
onBuilt();
return result;
}
public Builder mergeFrom(com.google.protobuf.Message other) {
if (other instanceof com.google.protobuf.DescriptorProtos.MethodDescriptorProto) {
return mergeFrom((com.google.protobuf.DescriptorProtos.MethodDescriptorProto)other);
} else {
super.mergeFrom(other);
return this;
}
}
public Builder mergeFrom(com.google.protobuf.DescriptorProtos.MethodDescriptorProto other) {
if (other == com.google.protobuf.DescriptorProtos.MethodDescriptorProto.getDefaultInstance()) return this;
if (other.hasName()) {
setName(other.getName());
}
if (other.hasInputType()) {
setInputType(other.getInputType());
}
if (other.hasOutputType()) {
setOutputType(other.getOutputType());
}
if (other.hasOptions()) {
mergeOptions(other.getOptions());
}
this.mergeUnknownFields(other.getUnknownFields());
return this;
}
public final boolean isInitialized() {
if (hasOptions()) {
if (!getOptions().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(
this.getUnknownFields());
while (true) {
int tag = input.readTag();
switch (tag) {
case 0:
this.setUnknownFields(unknownFields.build());
onChanged();
return this;
default: {
if (!parseUnknownField(input, unknownFields,
extensionRegistry, tag)) {
this.setUnknownFields(unknownFields.build());
onChanged();
return this;
}
break;
}
case 10: {
bitField0_ |= 0x00000001;
name_ = input.readBytes();
break;
}
case 18: {
bitField0_ |= 0x00000002;
inputType_ = input.readBytes();
break;
}
case 26: {
bitField0_ |= 0x00000004;
outputType_ = input.readBytes();
break;
}
case 34: {
com.google.protobuf.DescriptorProtos.MethodOptions.Builder subBuilder = com.google.protobuf.DescriptorProtos.MethodOptions.newBuilder();
if (hasOptions()) {
subBuilder.mergeFrom(getOptions());
}
input.readMessage(subBuilder, extensionRegistry);
setOptions(subBuilder.buildPartial());
break;
}
}
}
}
private int bitField0_;
// optional string name = 1;
private java.lang.Object name_ = "";
public boolean hasName() {
return ((bitField0_ & 0x00000001) == 0x00000001);
}
public String getName() {
java.lang.Object ref = name_;
if (!(ref instanceof String)) {
String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
name_ = s;
return s;
} else {
return (String) ref;
}
}
public Builder setName(String value) {
if (value == null) {
throw new NullPointerException();
}
bitField0_ |= 0x00000001;
name_ = value;
onChanged();
return this;
}
public Builder clearName() {
bitField0_ = (bitField0_ & ~0x00000001);
name_ = getDefaultInstance().getName();
onChanged();
return this;
}
void setName(com.google.protobuf.ByteString value) {
bitField0_ |= 0x00000001;
name_ = value;
onChanged();
}
// optional string input_type = 2;
private java.lang.Object inputType_ = "";
public boolean hasInputType() {
return ((bitField0_ & 0x00000002) == 0x00000002);
}
public String getInputType() {
java.lang.Object ref = inputType_;
if (!(ref instanceof String)) {
String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
inputType_ = s;
return s;
} else {
return (String) ref;
}
}
public Builder setInputType(String value) {
if (value == null) {
throw new NullPointerException();
}
bitField0_ |= 0x00000002;
inputType_ = value;
onChanged();
return this;
}
public Builder clearInputType() {
bitField0_ = (bitField0_ & ~0x00000002);
inputType_ = getDefaultInstance().getInputType();
onChanged();
return this;
}
void setInputType(com.google.protobuf.ByteString value) {
bitField0_ |= 0x00000002;
inputType_ = value;
onChanged();
}
// optional string output_type = 3;
private java.lang.Object outputType_ = "";
public boolean hasOutputType() {
return ((bitField0_ & 0x00000004) == 0x00000004);
}
public String getOutputType() {
java.lang.Object ref = outputType_;
if (!(ref instanceof String)) {
String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
outputType_ = s;
return s;
} else {
return (String) ref;
}
}
public Builder setOutputType(String value) {
if (value == null) {
throw new NullPointerException();
}
bitField0_ |= 0x00000004;
outputType_ = value;
onChanged();
return this;
}
public Builder clearOutputType() {
bitField0_ = (bitField0_ & ~0x00000004);
outputType_ = getDefaultInstance().getOutputType();
onChanged();
return this;
}
void setOutputType(com.google.protobuf.ByteString value) {
bitField0_ |= 0x00000004;
outputType_ = value;
onChanged();
}
// optional .google.protobuf.MethodOptions options = 4;
private com.google.protobuf.DescriptorProtos.MethodOptions options_ = com.google.protobuf.DescriptorProtos.MethodOptions.getDefaultInstance();
private com.google.protobuf.SingleFieldBuilder<
com.google.protobuf.DescriptorProtos.MethodOptions, com.google.protobuf.DescriptorProtos.MethodOptions.Builder, com.google.protobuf.DescriptorProtos.MethodOptionsOrBuilder> optionsBuilder_;
public boolean hasOptions() {
return ((bitField0_ & 0x00000008) == 0x00000008);
}
public com.google.protobuf.DescriptorProtos.MethodOptions getOptions() {
if (optionsBuilder_ == null) {
return options_;
} else {
return optionsBuilder_.getMessage();
}
}
public Builder setOptions(com.google.protobuf.DescriptorProtos.MethodOptions value) {
if (optionsBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
options_ = value;
onChanged();
} else {
optionsBuilder_.setMessage(value);
}
bitField0_ |= 0x00000008;
return this;
}
public Builder setOptions(
com.google.protobuf.DescriptorProtos.MethodOptions.Builder builderForValue) {
if (optionsBuilder_ == null) {
options_ = builderForValue.build();
onChanged();
} else {
optionsBuilder_.setMessage(builderForValue.build());
}
bitField0_ |= 0x00000008;
return this;
}
public Builder mergeOptions(com.google.protobuf.DescriptorProtos.MethodOptions value) {
if (optionsBuilder_ == null) {
if (((bitField0_ & 0x00000008) == 0x00000008) &&
options_ != com.google.protobuf.DescriptorProtos.MethodOptions.getDefaultInstance()) {
options_ =
com.google.protobuf.DescriptorProtos.MethodOptions.newBuilder(options_).mergeFrom(value).buildPartial();
} else {
options_ = value;
}
onChanged();
} else {
optionsBuilder_.mergeFrom(value);
}
bitField0_ |= 0x00000008;
return this;
}
public Builder clearOptions() {
if (optionsBuilder_ == null) {
options_ = com.google.protobuf.DescriptorProtos.MethodOptions.getDefaultInstance();
onChanged();
} else {
optionsBuilder_.clear();
}
bitField0_ = (bitField0_ & ~0x00000008);
return this;
}
public com.google.protobuf.DescriptorProtos.MethodOptions.Builder getOptionsBuilder() {
bitField0_ |= 0x00000008;
onChanged();
return getOptionsFieldBuilder().getBuilder();
}
public com.google.protobuf.DescriptorProtos.MethodOptionsOrBuilder getOptionsOrBuilder() {
if (optionsBuilder_ != null) {
return optionsBuilder_.getMessageOrBuilder();
} else {
return options_;
}
}
private com.google.protobuf.SingleFieldBuilder<
com.google.protobuf.DescriptorProtos.MethodOptions, com.google.protobuf.DescriptorProtos.MethodOptions.Builder, com.google.protobuf.DescriptorProtos.MethodOptionsOrBuilder>
getOptionsFieldBuilder() {
if (optionsBuilder_ == null) {
optionsBuilder_ = new com.google.protobuf.SingleFieldBuilder<
com.google.protobuf.DescriptorProtos.MethodOptions, com.google.protobuf.DescriptorProtos.MethodOptions.Builder, com.google.protobuf.DescriptorProtos.MethodOptionsOrBuilder>(
options_,
getParentForChildren(),
isClean());
options_ = null;
}
return optionsBuilder_;
}
// @@protoc_insertion_point(builder_scope:google.protobuf.MethodDescriptorProto)
}
static {
defaultInstance = new MethodDescriptorProto(true);
defaultInstance.initFields();
}
// @@protoc_insertion_point(class_scope:google.protobuf.MethodDescriptorProto)
}
public interface FileOptionsOrBuilder extends
com.google.protobuf.GeneratedMessage.
ExtendableMessageOrBuilder<FileOptions> {
// optional string java_package = 1;
boolean hasJavaPackage();
String getJavaPackage();
// optional string java_outer_classname = 8;
boolean hasJavaOuterClassname();
String getJavaOuterClassname();
// optional bool java_multiple_files = 10 [default = false];
boolean hasJavaMultipleFiles();
boolean getJavaMultipleFiles();
// optional bool java_generate_equals_and_hash = 20 [default = false];
boolean hasJavaGenerateEqualsAndHash();
boolean getJavaGenerateEqualsAndHash();
// optional .google.protobuf.FileOptions.OptimizeMode optimize_for = 9 [default = SPEED];
boolean hasOptimizeFor();
com.google.protobuf.DescriptorProtos.FileOptions.OptimizeMode getOptimizeFor();
// optional bool cc_generic_services = 16 [default = false];
boolean hasCcGenericServices();
boolean getCcGenericServices();
// optional bool java_generic_services = 17 [default = false];
boolean hasJavaGenericServices();
boolean getJavaGenericServices();
// optional bool py_generic_services = 18 [default = false];
boolean hasPyGenericServices();
boolean getPyGenericServices();
// repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
java.util.List<com.google.protobuf.DescriptorProtos.UninterpretedOption>
getUninterpretedOptionList();
com.google.protobuf.DescriptorProtos.UninterpretedOption getUninterpretedOption(int index);
int getUninterpretedOptionCount();
java.util.List<? extends com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder>
getUninterpretedOptionOrBuilderList();
com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder getUninterpretedOptionOrBuilder(
int index);
}
public static final class FileOptions extends
com.google.protobuf.GeneratedMessage.ExtendableMessage<
FileOptions> implements FileOptionsOrBuilder {
// Use FileOptions.newBuilder() to construct.
private FileOptions(Builder builder) {
super(builder);
}
private FileOptions(boolean noInit) {}
private static final FileOptions defaultInstance;
public static FileOptions getDefaultInstance() {
return defaultInstance;
}
public FileOptions getDefaultInstanceForType() {
return defaultInstance;
}
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_FileOptions_descriptor;
}
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_FileOptions_fieldAccessorTable;
}
public enum OptimizeMode
implements com.google.protobuf.ProtocolMessageEnum {
SPEED(0, 1),
CODE_SIZE(1, 2),
LITE_RUNTIME(2, 3),
;
public static final int SPEED_VALUE = 1;
public static final int CODE_SIZE_VALUE = 2;
public static final int LITE_RUNTIME_VALUE = 3;
public final int getNumber() { return value; }
public static OptimizeMode valueOf(int value) {
switch (value) {
case 1: return SPEED;
case 2: return CODE_SIZE;
case 3: return LITE_RUNTIME;
default: return null;
}
}
public static com.google.protobuf.Internal.EnumLiteMap<OptimizeMode>
internalGetValueMap() {
return internalValueMap;
}
private static com.google.protobuf.Internal.EnumLiteMap<OptimizeMode>
internalValueMap =
new com.google.protobuf.Internal.EnumLiteMap<OptimizeMode>() {
public OptimizeMode findValueByNumber(int number) {
return OptimizeMode.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 com.google.protobuf.DescriptorProtos.FileOptions.getDescriptor().getEnumTypes().get(0);
}
private static final OptimizeMode[] VALUES = {
SPEED, CODE_SIZE, LITE_RUNTIME,
};
public static OptimizeMode 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 OptimizeMode(int index, int value) {
this.index = index;
this.value = value;
}
// @@protoc_insertion_point(enum_scope:google.protobuf.FileOptions.OptimizeMode)
}
private int bitField0_;
// optional string java_package = 1;
public static final int JAVA_PACKAGE_FIELD_NUMBER = 1;
private java.lang.Object javaPackage_;
public boolean hasJavaPackage() {
return ((bitField0_ & 0x00000001) == 0x00000001);
}
public String getJavaPackage() {
java.lang.Object ref = javaPackage_;
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)) {
javaPackage_ = s;
}
return s;
}
}
private com.google.protobuf.ByteString getJavaPackageBytes() {
java.lang.Object ref = javaPackage_;
if (ref instanceof String) {
com.google.protobuf.ByteString b =
com.google.protobuf.ByteString.copyFromUtf8((String) ref);
javaPackage_ = b;
return b;
} else {
return (com.google.protobuf.ByteString) ref;
}
}
// optional string java_outer_classname = 8;
public static final int JAVA_OUTER_CLASSNAME_FIELD_NUMBER = 8;
private java.lang.Object javaOuterClassname_;
public boolean hasJavaOuterClassname() {
return ((bitField0_ & 0x00000002) == 0x00000002);
}
public String getJavaOuterClassname() {
java.lang.Object ref = javaOuterClassname_;
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)) {
javaOuterClassname_ = s;
}
return s;
}
}
private com.google.protobuf.ByteString getJavaOuterClassnameBytes() {
java.lang.Object ref = javaOuterClassname_;
if (ref instanceof String) {
com.google.protobuf.ByteString b =
com.google.protobuf.ByteString.copyFromUtf8((String) ref);
javaOuterClassname_ = b;
return b;
} else {
return (com.google.protobuf.ByteString) ref;
}
}
// optional bool java_multiple_files = 10 [default = false];
public static final int JAVA_MULTIPLE_FILES_FIELD_NUMBER = 10;
private boolean javaMultipleFiles_;
public boolean hasJavaMultipleFiles() {
return ((bitField0_ & 0x00000004) == 0x00000004);
}
public boolean getJavaMultipleFiles() {
return javaMultipleFiles_;
}
// optional bool java_generate_equals_and_hash = 20 [default = false];
public static final int JAVA_GENERATE_EQUALS_AND_HASH_FIELD_NUMBER = 20;
private boolean javaGenerateEqualsAndHash_;
public boolean hasJavaGenerateEqualsAndHash() {
return ((bitField0_ & 0x00000008) == 0x00000008);
}
public boolean getJavaGenerateEqualsAndHash() {
return javaGenerateEqualsAndHash_;
}
// optional .google.protobuf.FileOptions.OptimizeMode optimize_for = 9 [default = SPEED];
public static final int OPTIMIZE_FOR_FIELD_NUMBER = 9;
private com.google.protobuf.DescriptorProtos.FileOptions.OptimizeMode optimizeFor_;
public boolean hasOptimizeFor() {
return ((bitField0_ & 0x00000010) == 0x00000010);
}
public com.google.protobuf.DescriptorProtos.FileOptions.OptimizeMode getOptimizeFor() {
return optimizeFor_;
}
// optional bool cc_generic_services = 16 [default = false];
public static final int CC_GENERIC_SERVICES_FIELD_NUMBER = 16;
private boolean ccGenericServices_;
public boolean hasCcGenericServices() {
return ((bitField0_ & 0x00000020) == 0x00000020);
}
public boolean getCcGenericServices() {
return ccGenericServices_;
}
// optional bool java_generic_services = 17 [default = false];
public static final int JAVA_GENERIC_SERVICES_FIELD_NUMBER = 17;
private boolean javaGenericServices_;
public boolean hasJavaGenericServices() {
return ((bitField0_ & 0x00000040) == 0x00000040);
}
public boolean getJavaGenericServices() {
return javaGenericServices_;
}
// optional bool py_generic_services = 18 [default = false];
public static final int PY_GENERIC_SERVICES_FIELD_NUMBER = 18;
private boolean pyGenericServices_;
public boolean hasPyGenericServices() {
return ((bitField0_ & 0x00000080) == 0x00000080);
}
public boolean getPyGenericServices() {
return pyGenericServices_;
}
// repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
public static final int UNINTERPRETED_OPTION_FIELD_NUMBER = 999;
private java.util.List<com.google.protobuf.DescriptorProtos.UninterpretedOption> uninterpretedOption_;
public java.util.List<com.google.protobuf.DescriptorProtos.UninterpretedOption> getUninterpretedOptionList() {
return uninterpretedOption_;
}
public java.util.List<? extends com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder>
getUninterpretedOptionOrBuilderList() {
return uninterpretedOption_;
}
public int getUninterpretedOptionCount() {
return uninterpretedOption_.size();
}
public com.google.protobuf.DescriptorProtos.UninterpretedOption getUninterpretedOption(int index) {
return uninterpretedOption_.get(index);
}
public com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder getUninterpretedOptionOrBuilder(
int index) {
return uninterpretedOption_.get(index);
}
private void initFields() {
javaPackage_ = "";
javaOuterClassname_ = "";
javaMultipleFiles_ = false;
javaGenerateEqualsAndHash_ = false;
optimizeFor_ = com.google.protobuf.DescriptorProtos.FileOptions.OptimizeMode.SPEED;
ccGenericServices_ = false;
javaGenericServices_ = false;
pyGenericServices_ = false;
uninterpretedOption_ = 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 < getUninterpretedOptionCount(); i++) {
if (!getUninterpretedOption(i).isInitialized()) {
memoizedIsInitialized = 0;
return false;
}
}
if (!extensionsAreInitialized()) {
memoizedIsInitialized = 0;
return false;
}
memoizedIsInitialized = 1;
return true;
}
public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException {
getSerializedSize();
com.google.protobuf.GeneratedMessage
.ExtendableMessage<com.google.protobuf.DescriptorProtos.FileOptions>.ExtensionWriter extensionWriter =
newExtensionWriter();
if (((bitField0_ & 0x00000001) == 0x00000001)) {
output.writeBytes(1, getJavaPackageBytes());
}
if (((bitField0_ & 0x00000002) == 0x00000002)) {
output.writeBytes(8, getJavaOuterClassnameBytes());
}
if (((bitField0_ & 0x00000010) == 0x00000010)) {
output.writeEnum(9, optimizeFor_.getNumber());
}
if (((bitField0_ & 0x00000004) == 0x00000004)) {
output.writeBool(10, javaMultipleFiles_);
}
if (((bitField0_ & 0x00000020) == 0x00000020)) {
output.writeBool(16, ccGenericServices_);
}
if (((bitField0_ & 0x00000040) == 0x00000040)) {
output.writeBool(17, javaGenericServices_);
}
if (((bitField0_ & 0x00000080) == 0x00000080)) {
output.writeBool(18, pyGenericServices_);
}
if (((bitField0_ & 0x00000008) == 0x00000008)) {
output.writeBool(20, javaGenerateEqualsAndHash_);
}
for (int i = 0; i < uninterpretedOption_.size(); i++) {
output.writeMessage(999, uninterpretedOption_.get(i));
}
extensionWriter.writeUntil(536870912, output);
getUnknownFields().writeTo(output);
}
private int memoizedSerializedSize = -1;
public int getSerializedSize() {
int size = memoizedSerializedSize;
if (size != -1) return size;
size = 0;
if (((bitField0_ & 0x00000001) == 0x00000001)) {
size += com.google.protobuf.CodedOutputStream
.computeBytesSize(1, getJavaPackageBytes());
}
if (((bitField0_ & 0x00000002) == 0x00000002)) {
size += com.google.protobuf.CodedOutputStream
.computeBytesSize(8, getJavaOuterClassnameBytes());
}
if (((bitField0_ & 0x00000010) == 0x00000010)) {
size += com.google.protobuf.CodedOutputStream
.computeEnumSize(9, optimizeFor_.getNumber());
}
if (((bitField0_ & 0x00000004) == 0x00000004)) {
size += com.google.protobuf.CodedOutputStream
.computeBoolSize(10, javaMultipleFiles_);
}
if (((bitField0_ & 0x00000020) == 0x00000020)) {
size += com.google.protobuf.CodedOutputStream
.computeBoolSize(16, ccGenericServices_);
}
if (((bitField0_ & 0x00000040) == 0x00000040)) {
size += com.google.protobuf.CodedOutputStream
.computeBoolSize(17, javaGenericServices_);
}
if (((bitField0_ & 0x00000080) == 0x00000080)) {
size += com.google.protobuf.CodedOutputStream
.computeBoolSize(18, pyGenericServices_);
}
if (((bitField0_ & 0x00000008) == 0x00000008)) {
size += com.google.protobuf.CodedOutputStream
.computeBoolSize(20, javaGenerateEqualsAndHash_);
}
for (int i = 0; i < uninterpretedOption_.size(); i++) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(999, uninterpretedOption_.get(i));
}
size += extensionsSerializedSize();
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 com.google.protobuf.DescriptorProtos.FileOptions parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.FileOptions parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.FileOptions parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.FileOptions parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.FileOptions parseFrom(java.io.InputStream input)
throws java.io.IOException {
return newBuilder().mergeFrom(input).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.FileOptions parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return newBuilder().mergeFrom(input, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.FileOptions parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
Builder builder = newBuilder();
if (builder.mergeDelimitedFrom(input)) {
return builder.buildParsed();
} else {
return null;
}
}
public static com.google.protobuf.DescriptorProtos.FileOptions 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 com.google.protobuf.DescriptorProtos.FileOptions parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return newBuilder().mergeFrom(input).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.FileOptions 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(com.google.protobuf.DescriptorProtos.FileOptions 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.ExtendableBuilder<
com.google.protobuf.DescriptorProtos.FileOptions, Builder> implements com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_FileOptions_descriptor;
}
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_FileOptions_fieldAccessorTable;
}
// Construct using com.google.protobuf.DescriptorProtos.FileOptions.newBuilder()
private Builder() {
maybeForceBuilderInitialization();
}
private Builder(BuilderParent parent) {
super(parent);
maybeForceBuilderInitialization();
}
private void maybeForceBuilderInitialization() {
if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
getUninterpretedOptionFieldBuilder();
}
}
private static Builder create() {
return new Builder();
}
public Builder clear() {
super.clear();
javaPackage_ = "";
bitField0_ = (bitField0_ & ~0x00000001);
javaOuterClassname_ = "";
bitField0_ = (bitField0_ & ~0x00000002);
javaMultipleFiles_ = false;
bitField0_ = (bitField0_ & ~0x00000004);
javaGenerateEqualsAndHash_ = false;
bitField0_ = (bitField0_ & ~0x00000008);
optimizeFor_ = com.google.protobuf.DescriptorProtos.FileOptions.OptimizeMode.SPEED;
bitField0_ = (bitField0_ & ~0x00000010);
ccGenericServices_ = false;
bitField0_ = (bitField0_ & ~0x00000020);
javaGenericServices_ = false;
bitField0_ = (bitField0_ & ~0x00000040);
pyGenericServices_ = false;
bitField0_ = (bitField0_ & ~0x00000080);
if (uninterpretedOptionBuilder_ == null) {
uninterpretedOption_ = java.util.Collections.emptyList();
bitField0_ = (bitField0_ & ~0x00000100);
} else {
uninterpretedOptionBuilder_.clear();
}
return this;
}
public Builder clone() {
return create().mergeFrom(buildPartial());
}
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
return com.google.protobuf.DescriptorProtos.FileOptions.getDescriptor();
}
public com.google.protobuf.DescriptorProtos.FileOptions getDefaultInstanceForType() {
return com.google.protobuf.DescriptorProtos.FileOptions.getDefaultInstance();
}
public com.google.protobuf.DescriptorProtos.FileOptions build() {
com.google.protobuf.DescriptorProtos.FileOptions result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(result);
}
return result;
}
private com.google.protobuf.DescriptorProtos.FileOptions buildParsed()
throws com.google.protobuf.InvalidProtocolBufferException {
com.google.protobuf.DescriptorProtos.FileOptions result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(
result).asInvalidProtocolBufferException();
}
return result;
}
public com.google.protobuf.DescriptorProtos.FileOptions buildPartial() {
com.google.protobuf.DescriptorProtos.FileOptions result = new com.google.protobuf.DescriptorProtos.FileOptions(this);
int from_bitField0_ = bitField0_;
int to_bitField0_ = 0;
if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
to_bitField0_ |= 0x00000001;
}
result.javaPackage_ = javaPackage_;
if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
to_bitField0_ |= 0x00000002;
}
result.javaOuterClassname_ = javaOuterClassname_;
if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
to_bitField0_ |= 0x00000004;
}
result.javaMultipleFiles_ = javaMultipleFiles_;
if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
to_bitField0_ |= 0x00000008;
}
result.javaGenerateEqualsAndHash_ = javaGenerateEqualsAndHash_;
if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
to_bitField0_ |= 0x00000010;
}
result.optimizeFor_ = optimizeFor_;
if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
to_bitField0_ |= 0x00000020;
}
result.ccGenericServices_ = ccGenericServices_;
if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
to_bitField0_ |= 0x00000040;
}
result.javaGenericServices_ = javaGenericServices_;
if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
to_bitField0_ |= 0x00000080;
}
result.pyGenericServices_ = pyGenericServices_;
if (uninterpretedOptionBuilder_ == null) {
if (((bitField0_ & 0x00000100) == 0x00000100)) {
uninterpretedOption_ = java.util.Collections.unmodifiableList(uninterpretedOption_);
bitField0_ = (bitField0_ & ~0x00000100);
}
result.uninterpretedOption_ = uninterpretedOption_;
} else {
result.uninterpretedOption_ = uninterpretedOptionBuilder_.build();
}
result.bitField0_ = to_bitField0_;
onBuilt();
return result;
}
public Builder mergeFrom(com.google.protobuf.Message other) {
if (other instanceof com.google.protobuf.DescriptorProtos.FileOptions) {
return mergeFrom((com.google.protobuf.DescriptorProtos.FileOptions)other);
} else {
super.mergeFrom(other);
return this;
}
}
public Builder mergeFrom(com.google.protobuf.DescriptorProtos.FileOptions other) {
if (other == com.google.protobuf.DescriptorProtos.FileOptions.getDefaultInstance()) return this;
if (other.hasJavaPackage()) {
setJavaPackage(other.getJavaPackage());
}
if (other.hasJavaOuterClassname()) {
setJavaOuterClassname(other.getJavaOuterClassname());
}
if (other.hasJavaMultipleFiles()) {
setJavaMultipleFiles(other.getJavaMultipleFiles());
}
if (other.hasJavaGenerateEqualsAndHash()) {
setJavaGenerateEqualsAndHash(other.getJavaGenerateEqualsAndHash());
}
if (other.hasOptimizeFor()) {
setOptimizeFor(other.getOptimizeFor());
}
if (other.hasCcGenericServices()) {
setCcGenericServices(other.getCcGenericServices());
}
if (other.hasJavaGenericServices()) {
setJavaGenericServices(other.getJavaGenericServices());
}
if (other.hasPyGenericServices()) {
setPyGenericServices(other.getPyGenericServices());
}
if (uninterpretedOptionBuilder_ == null) {
if (!other.uninterpretedOption_.isEmpty()) {
if (uninterpretedOption_.isEmpty()) {
uninterpretedOption_ = other.uninterpretedOption_;
bitField0_ = (bitField0_ & ~0x00000100);
} else {
ensureUninterpretedOptionIsMutable();
uninterpretedOption_.addAll(other.uninterpretedOption_);
}
onChanged();
}
} else {
if (!other.uninterpretedOption_.isEmpty()) {
if (uninterpretedOptionBuilder_.isEmpty()) {
uninterpretedOptionBuilder_.dispose();
uninterpretedOptionBuilder_ = null;
uninterpretedOption_ = other.uninterpretedOption_;
bitField0_ = (bitField0_ & ~0x00000100);
uninterpretedOptionBuilder_ =
com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
getUninterpretedOptionFieldBuilder() : null;
} else {
uninterpretedOptionBuilder_.addAllMessages(other.uninterpretedOption_);
}
}
}
this.mergeExtensionFields(other);
this.mergeUnknownFields(other.getUnknownFields());
return this;
}
public final boolean isInitialized() {
for (int i = 0; i < getUninterpretedOptionCount(); i++) {
if (!getUninterpretedOption(i).isInitialized()) {
return false;
}
}
if (!extensionsAreInitialized()) {
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(
this.getUnknownFields());
while (true) {
int tag = input.readTag();
switch (tag) {
case 0:
this.setUnknownFields(unknownFields.build());
onChanged();
return this;
default: {
if (!parseUnknownField(input, unknownFields,
extensionRegistry, tag)) {
this.setUnknownFields(unknownFields.build());
onChanged();
return this;
}
break;
}
case 10: {
bitField0_ |= 0x00000001;
javaPackage_ = input.readBytes();
break;
}
case 66: {
bitField0_ |= 0x00000002;
javaOuterClassname_ = input.readBytes();
break;
}
case 72: {
int rawValue = input.readEnum();
com.google.protobuf.DescriptorProtos.FileOptions.OptimizeMode value = com.google.protobuf.DescriptorProtos.FileOptions.OptimizeMode.valueOf(rawValue);
if (value == null) {
unknownFields.mergeVarintField(9, rawValue);
} else {
bitField0_ |= 0x00000010;
optimizeFor_ = value;
}
break;
}
case 80: {
bitField0_ |= 0x00000004;
javaMultipleFiles_ = input.readBool();
break;
}
case 128: {
bitField0_ |= 0x00000020;
ccGenericServices_ = input.readBool();
break;
}
case 136: {
bitField0_ |= 0x00000040;
javaGenericServices_ = input.readBool();
break;
}
case 144: {
bitField0_ |= 0x00000080;
pyGenericServices_ = input.readBool();
break;
}
case 160: {
bitField0_ |= 0x00000008;
javaGenerateEqualsAndHash_ = input.readBool();
break;
}
case 7994: {
com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder subBuilder = com.google.protobuf.DescriptorProtos.UninterpretedOption.newBuilder();
input.readMessage(subBuilder, extensionRegistry);
addUninterpretedOption(subBuilder.buildPartial());
break;
}
}
}
}
private int bitField0_;
// optional string java_package = 1;
private java.lang.Object javaPackage_ = "";
public boolean hasJavaPackage() {
return ((bitField0_ & 0x00000001) == 0x00000001);
}
public String getJavaPackage() {
java.lang.Object ref = javaPackage_;
if (!(ref instanceof String)) {
String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
javaPackage_ = s;
return s;
} else {
return (String) ref;
}
}
public Builder setJavaPackage(String value) {
if (value == null) {
throw new NullPointerException();
}
bitField0_ |= 0x00000001;
javaPackage_ = value;
onChanged();
return this;
}
public Builder clearJavaPackage() {
bitField0_ = (bitField0_ & ~0x00000001);
javaPackage_ = getDefaultInstance().getJavaPackage();
onChanged();
return this;
}
void setJavaPackage(com.google.protobuf.ByteString value) {
bitField0_ |= 0x00000001;
javaPackage_ = value;
onChanged();
}
// optional string java_outer_classname = 8;
private java.lang.Object javaOuterClassname_ = "";
public boolean hasJavaOuterClassname() {
return ((bitField0_ & 0x00000002) == 0x00000002);
}
public String getJavaOuterClassname() {
java.lang.Object ref = javaOuterClassname_;
if (!(ref instanceof String)) {
String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
javaOuterClassname_ = s;
return s;
} else {
return (String) ref;
}
}
public Builder setJavaOuterClassname(String value) {
if (value == null) {
throw new NullPointerException();
}
bitField0_ |= 0x00000002;
javaOuterClassname_ = value;
onChanged();
return this;
}
public Builder clearJavaOuterClassname() {
bitField0_ = (bitField0_ & ~0x00000002);
javaOuterClassname_ = getDefaultInstance().getJavaOuterClassname();
onChanged();
return this;
}
void setJavaOuterClassname(com.google.protobuf.ByteString value) {
bitField0_ |= 0x00000002;
javaOuterClassname_ = value;
onChanged();
}
// optional bool java_multiple_files = 10 [default = false];
private boolean javaMultipleFiles_ ;
public boolean hasJavaMultipleFiles() {
return ((bitField0_ & 0x00000004) == 0x00000004);
}
public boolean getJavaMultipleFiles() {
return javaMultipleFiles_;
}
public Builder setJavaMultipleFiles(boolean value) {
bitField0_ |= 0x00000004;
javaMultipleFiles_ = value;
onChanged();
return this;
}
public Builder clearJavaMultipleFiles() {
bitField0_ = (bitField0_ & ~0x00000004);
javaMultipleFiles_ = false;
onChanged();
return this;
}
// optional bool java_generate_equals_and_hash = 20 [default = false];
private boolean javaGenerateEqualsAndHash_ ;
public boolean hasJavaGenerateEqualsAndHash() {
return ((bitField0_ & 0x00000008) == 0x00000008);
}
public boolean getJavaGenerateEqualsAndHash() {
return javaGenerateEqualsAndHash_;
}
public Builder setJavaGenerateEqualsAndHash(boolean value) {
bitField0_ |= 0x00000008;
javaGenerateEqualsAndHash_ = value;
onChanged();
return this;
}
public Builder clearJavaGenerateEqualsAndHash() {
bitField0_ = (bitField0_ & ~0x00000008);
javaGenerateEqualsAndHash_ = false;
onChanged();
return this;
}
// optional .google.protobuf.FileOptions.OptimizeMode optimize_for = 9 [default = SPEED];
private com.google.protobuf.DescriptorProtos.FileOptions.OptimizeMode optimizeFor_ = com.google.protobuf.DescriptorProtos.FileOptions.OptimizeMode.SPEED;
public boolean hasOptimizeFor() {
return ((bitField0_ & 0x00000010) == 0x00000010);
}
public com.google.protobuf.DescriptorProtos.FileOptions.OptimizeMode getOptimizeFor() {
return optimizeFor_;
}
public Builder setOptimizeFor(com.google.protobuf.DescriptorProtos.FileOptions.OptimizeMode value) {
if (value == null) {
throw new NullPointerException();
}
bitField0_ |= 0x00000010;
optimizeFor_ = value;
onChanged();
return this;
}
public Builder clearOptimizeFor() {
bitField0_ = (bitField0_ & ~0x00000010);
optimizeFor_ = com.google.protobuf.DescriptorProtos.FileOptions.OptimizeMode.SPEED;
onChanged();
return this;
}
// optional bool cc_generic_services = 16 [default = false];
private boolean ccGenericServices_ ;
public boolean hasCcGenericServices() {
return ((bitField0_ & 0x00000020) == 0x00000020);
}
public boolean getCcGenericServices() {
return ccGenericServices_;
}
public Builder setCcGenericServices(boolean value) {
bitField0_ |= 0x00000020;
ccGenericServices_ = value;
onChanged();
return this;
}
public Builder clearCcGenericServices() {
bitField0_ = (bitField0_ & ~0x00000020);
ccGenericServices_ = false;
onChanged();
return this;
}
// optional bool java_generic_services = 17 [default = false];
private boolean javaGenericServices_ ;
public boolean hasJavaGenericServices() {
return ((bitField0_ & 0x00000040) == 0x00000040);
}
public boolean getJavaGenericServices() {
return javaGenericServices_;
}
public Builder setJavaGenericServices(boolean value) {
bitField0_ |= 0x00000040;
javaGenericServices_ = value;
onChanged();
return this;
}
public Builder clearJavaGenericServices() {
bitField0_ = (bitField0_ & ~0x00000040);
javaGenericServices_ = false;
onChanged();
return this;
}
// optional bool py_generic_services = 18 [default = false];
private boolean pyGenericServices_ ;
public boolean hasPyGenericServices() {
return ((bitField0_ & 0x00000080) == 0x00000080);
}
public boolean getPyGenericServices() {
return pyGenericServices_;
}
public Builder setPyGenericServices(boolean value) {
bitField0_ |= 0x00000080;
pyGenericServices_ = value;
onChanged();
return this;
}
public Builder clearPyGenericServices() {
bitField0_ = (bitField0_ & ~0x00000080);
pyGenericServices_ = false;
onChanged();
return this;
}
// repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
private java.util.List<com.google.protobuf.DescriptorProtos.UninterpretedOption> uninterpretedOption_ =
java.util.Collections.emptyList();
private void ensureUninterpretedOptionIsMutable() {
if (!((bitField0_ & 0x00000100) == 0x00000100)) {
uninterpretedOption_ = new java.util.ArrayList<com.google.protobuf.DescriptorProtos.UninterpretedOption>(uninterpretedOption_);
bitField0_ |= 0x00000100;
}
}
private com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.UninterpretedOption, com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder, com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder> uninterpretedOptionBuilder_;
public java.util.List<com.google.protobuf.DescriptorProtos.UninterpretedOption> getUninterpretedOptionList() {
if (uninterpretedOptionBuilder_ == null) {
return java.util.Collections.unmodifiableList(uninterpretedOption_);
} else {
return uninterpretedOptionBuilder_.getMessageList();
}
}
public int getUninterpretedOptionCount() {
if (uninterpretedOptionBuilder_ == null) {
return uninterpretedOption_.size();
} else {
return uninterpretedOptionBuilder_.getCount();
}
}
public com.google.protobuf.DescriptorProtos.UninterpretedOption getUninterpretedOption(int index) {
if (uninterpretedOptionBuilder_ == null) {
return uninterpretedOption_.get(index);
} else {
return uninterpretedOptionBuilder_.getMessage(index);
}
}
public Builder setUninterpretedOption(
int index, com.google.protobuf.DescriptorProtos.UninterpretedOption value) {
if (uninterpretedOptionBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureUninterpretedOptionIsMutable();
uninterpretedOption_.set(index, value);
onChanged();
} else {
uninterpretedOptionBuilder_.setMessage(index, value);
}
return this;
}
public Builder setUninterpretedOption(
int index, com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder builderForValue) {
if (uninterpretedOptionBuilder_ == null) {
ensureUninterpretedOptionIsMutable();
uninterpretedOption_.set(index, builderForValue.build());
onChanged();
} else {
uninterpretedOptionBuilder_.setMessage(index, builderForValue.build());
}
return this;
}
public Builder addUninterpretedOption(com.google.protobuf.DescriptorProtos.UninterpretedOption value) {
if (uninterpretedOptionBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureUninterpretedOptionIsMutable();
uninterpretedOption_.add(value);
onChanged();
} else {
uninterpretedOptionBuilder_.addMessage(value);
}
return this;
}
public Builder addUninterpretedOption(
int index, com.google.protobuf.DescriptorProtos.UninterpretedOption value) {
if (uninterpretedOptionBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureUninterpretedOptionIsMutable();
uninterpretedOption_.add(index, value);
onChanged();
} else {
uninterpretedOptionBuilder_.addMessage(index, value);
}
return this;
}
public Builder addUninterpretedOption(
com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder builderForValue) {
if (uninterpretedOptionBuilder_ == null) {
ensureUninterpretedOptionIsMutable();
uninterpretedOption_.add(builderForValue.build());
onChanged();
} else {
uninterpretedOptionBuilder_.addMessage(builderForValue.build());
}
return this;
}
public Builder addUninterpretedOption(
int index, com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder builderForValue) {
if (uninterpretedOptionBuilder_ == null) {
ensureUninterpretedOptionIsMutable();
uninterpretedOption_.add(index, builderForValue.build());
onChanged();
} else {
uninterpretedOptionBuilder_.addMessage(index, builderForValue.build());
}
return this;
}
public Builder addAllUninterpretedOption(
java.lang.Iterable<? extends com.google.protobuf.DescriptorProtos.UninterpretedOption> values) {
if (uninterpretedOptionBuilder_ == null) {
ensureUninterpretedOptionIsMutable();
super.addAll(values, uninterpretedOption_);
onChanged();
} else {
uninterpretedOptionBuilder_.addAllMessages(values);
}
return this;
}
public Builder clearUninterpretedOption() {
if (uninterpretedOptionBuilder_ == null) {
uninterpretedOption_ = java.util.Collections.emptyList();
bitField0_ = (bitField0_ & ~0x00000100);
onChanged();
} else {
uninterpretedOptionBuilder_.clear();
}
return this;
}
public Builder removeUninterpretedOption(int index) {
if (uninterpretedOptionBuilder_ == null) {
ensureUninterpretedOptionIsMutable();
uninterpretedOption_.remove(index);
onChanged();
} else {
uninterpretedOptionBuilder_.remove(index);
}
return this;
}
public com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder getUninterpretedOptionBuilder(
int index) {
return getUninterpretedOptionFieldBuilder().getBuilder(index);
}
public com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder getUninterpretedOptionOrBuilder(
int index) {
if (uninterpretedOptionBuilder_ == null) {
return uninterpretedOption_.get(index); } else {
return uninterpretedOptionBuilder_.getMessageOrBuilder(index);
}
}
public java.util.List<? extends com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder>
getUninterpretedOptionOrBuilderList() {
if (uninterpretedOptionBuilder_ != null) {
return uninterpretedOptionBuilder_.getMessageOrBuilderList();
} else {
return java.util.Collections.unmodifiableList(uninterpretedOption_);
}
}
public com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder addUninterpretedOptionBuilder() {
return getUninterpretedOptionFieldBuilder().addBuilder(
com.google.protobuf.DescriptorProtos.UninterpretedOption.getDefaultInstance());
}
public com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder addUninterpretedOptionBuilder(
int index) {
return getUninterpretedOptionFieldBuilder().addBuilder(
index, com.google.protobuf.DescriptorProtos.UninterpretedOption.getDefaultInstance());
}
public java.util.List<com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder>
getUninterpretedOptionBuilderList() {
return getUninterpretedOptionFieldBuilder().getBuilderList();
}
private com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.UninterpretedOption, com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder, com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder>
getUninterpretedOptionFieldBuilder() {
if (uninterpretedOptionBuilder_ == null) {
uninterpretedOptionBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.UninterpretedOption, com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder, com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder>(
uninterpretedOption_,
((bitField0_ & 0x00000100) == 0x00000100),
getParentForChildren(),
isClean());
uninterpretedOption_ = null;
}
return uninterpretedOptionBuilder_;
}
// @@protoc_insertion_point(builder_scope:google.protobuf.FileOptions)
}
static {
defaultInstance = new FileOptions(true);
defaultInstance.initFields();
}
// @@protoc_insertion_point(class_scope:google.protobuf.FileOptions)
}
public interface MessageOptionsOrBuilder extends
com.google.protobuf.GeneratedMessage.
ExtendableMessageOrBuilder<MessageOptions> {
// optional bool message_set_wire_format = 1 [default = false];
boolean hasMessageSetWireFormat();
boolean getMessageSetWireFormat();
// optional bool no_standard_descriptor_accessor = 2 [default = false];
boolean hasNoStandardDescriptorAccessor();
boolean getNoStandardDescriptorAccessor();
// repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
java.util.List<com.google.protobuf.DescriptorProtos.UninterpretedOption>
getUninterpretedOptionList();
com.google.protobuf.DescriptorProtos.UninterpretedOption getUninterpretedOption(int index);
int getUninterpretedOptionCount();
java.util.List<? extends com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder>
getUninterpretedOptionOrBuilderList();
com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder getUninterpretedOptionOrBuilder(
int index);
}
public static final class MessageOptions extends
com.google.protobuf.GeneratedMessage.ExtendableMessage<
MessageOptions> implements MessageOptionsOrBuilder {
// Use MessageOptions.newBuilder() to construct.
private MessageOptions(Builder builder) {
super(builder);
}
private MessageOptions(boolean noInit) {}
private static final MessageOptions defaultInstance;
public static MessageOptions getDefaultInstance() {
return defaultInstance;
}
public MessageOptions getDefaultInstanceForType() {
return defaultInstance;
}
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_MessageOptions_descriptor;
}
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_MessageOptions_fieldAccessorTable;
}
private int bitField0_;
// optional bool message_set_wire_format = 1 [default = false];
public static final int MESSAGE_SET_WIRE_FORMAT_FIELD_NUMBER = 1;
private boolean messageSetWireFormat_;
public boolean hasMessageSetWireFormat() {
return ((bitField0_ & 0x00000001) == 0x00000001);
}
public boolean getMessageSetWireFormat() {
return messageSetWireFormat_;
}
// optional bool no_standard_descriptor_accessor = 2 [default = false];
public static final int NO_STANDARD_DESCRIPTOR_ACCESSOR_FIELD_NUMBER = 2;
private boolean noStandardDescriptorAccessor_;
public boolean hasNoStandardDescriptorAccessor() {
return ((bitField0_ & 0x00000002) == 0x00000002);
}
public boolean getNoStandardDescriptorAccessor() {
return noStandardDescriptorAccessor_;
}
// repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
public static final int UNINTERPRETED_OPTION_FIELD_NUMBER = 999;
private java.util.List<com.google.protobuf.DescriptorProtos.UninterpretedOption> uninterpretedOption_;
public java.util.List<com.google.protobuf.DescriptorProtos.UninterpretedOption> getUninterpretedOptionList() {
return uninterpretedOption_;
}
public java.util.List<? extends com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder>
getUninterpretedOptionOrBuilderList() {
return uninterpretedOption_;
}
public int getUninterpretedOptionCount() {
return uninterpretedOption_.size();
}
public com.google.protobuf.DescriptorProtos.UninterpretedOption getUninterpretedOption(int index) {
return uninterpretedOption_.get(index);
}
public com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder getUninterpretedOptionOrBuilder(
int index) {
return uninterpretedOption_.get(index);
}
private void initFields() {
messageSetWireFormat_ = false;
noStandardDescriptorAccessor_ = false;
uninterpretedOption_ = 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 < getUninterpretedOptionCount(); i++) {
if (!getUninterpretedOption(i).isInitialized()) {
memoizedIsInitialized = 0;
return false;
}
}
if (!extensionsAreInitialized()) {
memoizedIsInitialized = 0;
return false;
}
memoizedIsInitialized = 1;
return true;
}
public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException {
getSerializedSize();
com.google.protobuf.GeneratedMessage
.ExtendableMessage<com.google.protobuf.DescriptorProtos.MessageOptions>.ExtensionWriter extensionWriter =
newExtensionWriter();
if (((bitField0_ & 0x00000001) == 0x00000001)) {
output.writeBool(1, messageSetWireFormat_);
}
if (((bitField0_ & 0x00000002) == 0x00000002)) {
output.writeBool(2, noStandardDescriptorAccessor_);
}
for (int i = 0; i < uninterpretedOption_.size(); i++) {
output.writeMessage(999, uninterpretedOption_.get(i));
}
extensionWriter.writeUntil(536870912, output);
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
.computeBoolSize(1, messageSetWireFormat_);
}
if (((bitField0_ & 0x00000002) == 0x00000002)) {
size += com.google.protobuf.CodedOutputStream
.computeBoolSize(2, noStandardDescriptorAccessor_);
}
for (int i = 0; i < uninterpretedOption_.size(); i++) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(999, uninterpretedOption_.get(i));
}
size += extensionsSerializedSize();
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 com.google.protobuf.DescriptorProtos.MessageOptions parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.MessageOptions parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.MessageOptions parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.MessageOptions parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.MessageOptions parseFrom(java.io.InputStream input)
throws java.io.IOException {
return newBuilder().mergeFrom(input).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.MessageOptions parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return newBuilder().mergeFrom(input, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.MessageOptions parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
Builder builder = newBuilder();
if (builder.mergeDelimitedFrom(input)) {
return builder.buildParsed();
} else {
return null;
}
}
public static com.google.protobuf.DescriptorProtos.MessageOptions 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 com.google.protobuf.DescriptorProtos.MessageOptions parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return newBuilder().mergeFrom(input).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.MessageOptions 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(com.google.protobuf.DescriptorProtos.MessageOptions 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.ExtendableBuilder<
com.google.protobuf.DescriptorProtos.MessageOptions, Builder> implements com.google.protobuf.DescriptorProtos.MessageOptionsOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_MessageOptions_descriptor;
}
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_MessageOptions_fieldAccessorTable;
}
// Construct using com.google.protobuf.DescriptorProtos.MessageOptions.newBuilder()
private Builder() {
maybeForceBuilderInitialization();
}
private Builder(BuilderParent parent) {
super(parent);
maybeForceBuilderInitialization();
}
private void maybeForceBuilderInitialization() {
if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
getUninterpretedOptionFieldBuilder();
}
}
private static Builder create() {
return new Builder();
}
public Builder clear() {
super.clear();
messageSetWireFormat_ = false;
bitField0_ = (bitField0_ & ~0x00000001);
noStandardDescriptorAccessor_ = false;
bitField0_ = (bitField0_ & ~0x00000002);
if (uninterpretedOptionBuilder_ == null) {
uninterpretedOption_ = java.util.Collections.emptyList();
bitField0_ = (bitField0_ & ~0x00000004);
} else {
uninterpretedOptionBuilder_.clear();
}
return this;
}
public Builder clone() {
return create().mergeFrom(buildPartial());
}
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
return com.google.protobuf.DescriptorProtos.MessageOptions.getDescriptor();
}
public com.google.protobuf.DescriptorProtos.MessageOptions getDefaultInstanceForType() {
return com.google.protobuf.DescriptorProtos.MessageOptions.getDefaultInstance();
}
public com.google.protobuf.DescriptorProtos.MessageOptions build() {
com.google.protobuf.DescriptorProtos.MessageOptions result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(result);
}
return result;
}
private com.google.protobuf.DescriptorProtos.MessageOptions buildParsed()
throws com.google.protobuf.InvalidProtocolBufferException {
com.google.protobuf.DescriptorProtos.MessageOptions result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(
result).asInvalidProtocolBufferException();
}
return result;
}
public com.google.protobuf.DescriptorProtos.MessageOptions buildPartial() {
com.google.protobuf.DescriptorProtos.MessageOptions result = new com.google.protobuf.DescriptorProtos.MessageOptions(this);
int from_bitField0_ = bitField0_;
int to_bitField0_ = 0;
if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
to_bitField0_ |= 0x00000001;
}
result.messageSetWireFormat_ = messageSetWireFormat_;
if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
to_bitField0_ |= 0x00000002;
}
result.noStandardDescriptorAccessor_ = noStandardDescriptorAccessor_;
if (uninterpretedOptionBuilder_ == null) {
if (((bitField0_ & 0x00000004) == 0x00000004)) {
uninterpretedOption_ = java.util.Collections.unmodifiableList(uninterpretedOption_);
bitField0_ = (bitField0_ & ~0x00000004);
}
result.uninterpretedOption_ = uninterpretedOption_;
} else {
result.uninterpretedOption_ = uninterpretedOptionBuilder_.build();
}
result.bitField0_ = to_bitField0_;
onBuilt();
return result;
}
public Builder mergeFrom(com.google.protobuf.Message other) {
if (other instanceof com.google.protobuf.DescriptorProtos.MessageOptions) {
return mergeFrom((com.google.protobuf.DescriptorProtos.MessageOptions)other);
} else {
super.mergeFrom(other);
return this;
}
}
public Builder mergeFrom(com.google.protobuf.DescriptorProtos.MessageOptions other) {
if (other == com.google.protobuf.DescriptorProtos.MessageOptions.getDefaultInstance()) return this;
if (other.hasMessageSetWireFormat()) {
setMessageSetWireFormat(other.getMessageSetWireFormat());
}
if (other.hasNoStandardDescriptorAccessor()) {
setNoStandardDescriptorAccessor(other.getNoStandardDescriptorAccessor());
}
if (uninterpretedOptionBuilder_ == null) {
if (!other.uninterpretedOption_.isEmpty()) {
if (uninterpretedOption_.isEmpty()) {
uninterpretedOption_ = other.uninterpretedOption_;
bitField0_ = (bitField0_ & ~0x00000004);
} else {
ensureUninterpretedOptionIsMutable();
uninterpretedOption_.addAll(other.uninterpretedOption_);
}
onChanged();
}
} else {
if (!other.uninterpretedOption_.isEmpty()) {
if (uninterpretedOptionBuilder_.isEmpty()) {
uninterpretedOptionBuilder_.dispose();
uninterpretedOptionBuilder_ = null;
uninterpretedOption_ = other.uninterpretedOption_;
bitField0_ = (bitField0_ & ~0x00000004);
uninterpretedOptionBuilder_ =
com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
getUninterpretedOptionFieldBuilder() : null;
} else {
uninterpretedOptionBuilder_.addAllMessages(other.uninterpretedOption_);
}
}
}
this.mergeExtensionFields(other);
this.mergeUnknownFields(other.getUnknownFields());
return this;
}
public final boolean isInitialized() {
for (int i = 0; i < getUninterpretedOptionCount(); i++) {
if (!getUninterpretedOption(i).isInitialized()) {
return false;
}
}
if (!extensionsAreInitialized()) {
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(
this.getUnknownFields());
while (true) {
int tag = input.readTag();
switch (tag) {
case 0:
this.setUnknownFields(unknownFields.build());
onChanged();
return this;
default: {
if (!parseUnknownField(input, unknownFields,
extensionRegistry, tag)) {
this.setUnknownFields(unknownFields.build());
onChanged();
return this;
}
break;
}
case 8: {
bitField0_ |= 0x00000001;
messageSetWireFormat_ = input.readBool();
break;
}
case 16: {
bitField0_ |= 0x00000002;
noStandardDescriptorAccessor_ = input.readBool();
break;
}
case 7994: {
com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder subBuilder = com.google.protobuf.DescriptorProtos.UninterpretedOption.newBuilder();
input.readMessage(subBuilder, extensionRegistry);
addUninterpretedOption(subBuilder.buildPartial());
break;
}
}
}
}
private int bitField0_;
// optional bool message_set_wire_format = 1 [default = false];
private boolean messageSetWireFormat_ ;
public boolean hasMessageSetWireFormat() {
return ((bitField0_ & 0x00000001) == 0x00000001);
}
public boolean getMessageSetWireFormat() {
return messageSetWireFormat_;
}
public Builder setMessageSetWireFormat(boolean value) {
bitField0_ |= 0x00000001;
messageSetWireFormat_ = value;
onChanged();
return this;
}
public Builder clearMessageSetWireFormat() {
bitField0_ = (bitField0_ & ~0x00000001);
messageSetWireFormat_ = false;
onChanged();
return this;
}
// optional bool no_standard_descriptor_accessor = 2 [default = false];
private boolean noStandardDescriptorAccessor_ ;
public boolean hasNoStandardDescriptorAccessor() {
return ((bitField0_ & 0x00000002) == 0x00000002);
}
public boolean getNoStandardDescriptorAccessor() {
return noStandardDescriptorAccessor_;
}
public Builder setNoStandardDescriptorAccessor(boolean value) {
bitField0_ |= 0x00000002;
noStandardDescriptorAccessor_ = value;
onChanged();
return this;
}
public Builder clearNoStandardDescriptorAccessor() {
bitField0_ = (bitField0_ & ~0x00000002);
noStandardDescriptorAccessor_ = false;
onChanged();
return this;
}
// repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
private java.util.List<com.google.protobuf.DescriptorProtos.UninterpretedOption> uninterpretedOption_ =
java.util.Collections.emptyList();
private void ensureUninterpretedOptionIsMutable() {
if (!((bitField0_ & 0x00000004) == 0x00000004)) {
uninterpretedOption_ = new java.util.ArrayList<com.google.protobuf.DescriptorProtos.UninterpretedOption>(uninterpretedOption_);
bitField0_ |= 0x00000004;
}
}
private com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.UninterpretedOption, com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder, com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder> uninterpretedOptionBuilder_;
public java.util.List<com.google.protobuf.DescriptorProtos.UninterpretedOption> getUninterpretedOptionList() {
if (uninterpretedOptionBuilder_ == null) {
return java.util.Collections.unmodifiableList(uninterpretedOption_);
} else {
return uninterpretedOptionBuilder_.getMessageList();
}
}
public int getUninterpretedOptionCount() {
if (uninterpretedOptionBuilder_ == null) {
return uninterpretedOption_.size();
} else {
return uninterpretedOptionBuilder_.getCount();
}
}
public com.google.protobuf.DescriptorProtos.UninterpretedOption getUninterpretedOption(int index) {
if (uninterpretedOptionBuilder_ == null) {
return uninterpretedOption_.get(index);
} else {
return uninterpretedOptionBuilder_.getMessage(index);
}
}
public Builder setUninterpretedOption(
int index, com.google.protobuf.DescriptorProtos.UninterpretedOption value) {
if (uninterpretedOptionBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureUninterpretedOptionIsMutable();
uninterpretedOption_.set(index, value);
onChanged();
} else {
uninterpretedOptionBuilder_.setMessage(index, value);
}
return this;
}
public Builder setUninterpretedOption(
int index, com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder builderForValue) {
if (uninterpretedOptionBuilder_ == null) {
ensureUninterpretedOptionIsMutable();
uninterpretedOption_.set(index, builderForValue.build());
onChanged();
} else {
uninterpretedOptionBuilder_.setMessage(index, builderForValue.build());
}
return this;
}
public Builder addUninterpretedOption(com.google.protobuf.DescriptorProtos.UninterpretedOption value) {
if (uninterpretedOptionBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureUninterpretedOptionIsMutable();
uninterpretedOption_.add(value);
onChanged();
} else {
uninterpretedOptionBuilder_.addMessage(value);
}
return this;
}
public Builder addUninterpretedOption(
int index, com.google.protobuf.DescriptorProtos.UninterpretedOption value) {
if (uninterpretedOptionBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureUninterpretedOptionIsMutable();
uninterpretedOption_.add(index, value);
onChanged();
} else {
uninterpretedOptionBuilder_.addMessage(index, value);
}
return this;
}
public Builder addUninterpretedOption(
com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder builderForValue) {
if (uninterpretedOptionBuilder_ == null) {
ensureUninterpretedOptionIsMutable();
uninterpretedOption_.add(builderForValue.build());
onChanged();
} else {
uninterpretedOptionBuilder_.addMessage(builderForValue.build());
}
return this;
}
public Builder addUninterpretedOption(
int index, com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder builderForValue) {
if (uninterpretedOptionBuilder_ == null) {
ensureUninterpretedOptionIsMutable();
uninterpretedOption_.add(index, builderForValue.build());
onChanged();
} else {
uninterpretedOptionBuilder_.addMessage(index, builderForValue.build());
}
return this;
}
public Builder addAllUninterpretedOption(
java.lang.Iterable<? extends com.google.protobuf.DescriptorProtos.UninterpretedOption> values) {
if (uninterpretedOptionBuilder_ == null) {
ensureUninterpretedOptionIsMutable();
super.addAll(values, uninterpretedOption_);
onChanged();
} else {
uninterpretedOptionBuilder_.addAllMessages(values);
}
return this;
}
public Builder clearUninterpretedOption() {
if (uninterpretedOptionBuilder_ == null) {
uninterpretedOption_ = java.util.Collections.emptyList();
bitField0_ = (bitField0_ & ~0x00000004);
onChanged();
} else {
uninterpretedOptionBuilder_.clear();
}
return this;
}
public Builder removeUninterpretedOption(int index) {
if (uninterpretedOptionBuilder_ == null) {
ensureUninterpretedOptionIsMutable();
uninterpretedOption_.remove(index);
onChanged();
} else {
uninterpretedOptionBuilder_.remove(index);
}
return this;
}
public com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder getUninterpretedOptionBuilder(
int index) {
return getUninterpretedOptionFieldBuilder().getBuilder(index);
}
public com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder getUninterpretedOptionOrBuilder(
int index) {
if (uninterpretedOptionBuilder_ == null) {
return uninterpretedOption_.get(index); } else {
return uninterpretedOptionBuilder_.getMessageOrBuilder(index);
}
}
public java.util.List<? extends com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder>
getUninterpretedOptionOrBuilderList() {
if (uninterpretedOptionBuilder_ != null) {
return uninterpretedOptionBuilder_.getMessageOrBuilderList();
} else {
return java.util.Collections.unmodifiableList(uninterpretedOption_);
}
}
public com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder addUninterpretedOptionBuilder() {
return getUninterpretedOptionFieldBuilder().addBuilder(
com.google.protobuf.DescriptorProtos.UninterpretedOption.getDefaultInstance());
}
public com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder addUninterpretedOptionBuilder(
int index) {
return getUninterpretedOptionFieldBuilder().addBuilder(
index, com.google.protobuf.DescriptorProtos.UninterpretedOption.getDefaultInstance());
}
public java.util.List<com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder>
getUninterpretedOptionBuilderList() {
return getUninterpretedOptionFieldBuilder().getBuilderList();
}
private com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.UninterpretedOption, com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder, com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder>
getUninterpretedOptionFieldBuilder() {
if (uninterpretedOptionBuilder_ == null) {
uninterpretedOptionBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.UninterpretedOption, com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder, com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder>(
uninterpretedOption_,
((bitField0_ & 0x00000004) == 0x00000004),
getParentForChildren(),
isClean());
uninterpretedOption_ = null;
}
return uninterpretedOptionBuilder_;
}
// @@protoc_insertion_point(builder_scope:google.protobuf.MessageOptions)
}
static {
defaultInstance = new MessageOptions(true);
defaultInstance.initFields();
}
// @@protoc_insertion_point(class_scope:google.protobuf.MessageOptions)
}
public interface FieldOptionsOrBuilder extends
com.google.protobuf.GeneratedMessage.
ExtendableMessageOrBuilder<FieldOptions> {
// optional .google.protobuf.FieldOptions.CType ctype = 1 [default = STRING];
boolean hasCtype();
com.google.protobuf.DescriptorProtos.FieldOptions.CType getCtype();
// optional bool packed = 2;
boolean hasPacked();
boolean getPacked();
// optional bool deprecated = 3 [default = false];
boolean hasDeprecated();
boolean getDeprecated();
// optional string experimental_map_key = 9;
boolean hasExperimentalMapKey();
String getExperimentalMapKey();
// repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
java.util.List<com.google.protobuf.DescriptorProtos.UninterpretedOption>
getUninterpretedOptionList();
com.google.protobuf.DescriptorProtos.UninterpretedOption getUninterpretedOption(int index);
int getUninterpretedOptionCount();
java.util.List<? extends com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder>
getUninterpretedOptionOrBuilderList();
com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder getUninterpretedOptionOrBuilder(
int index);
}
public static final class FieldOptions extends
com.google.protobuf.GeneratedMessage.ExtendableMessage<
FieldOptions> implements FieldOptionsOrBuilder {
// Use FieldOptions.newBuilder() to construct.
private FieldOptions(Builder builder) {
super(builder);
}
private FieldOptions(boolean noInit) {}
private static final FieldOptions defaultInstance;
public static FieldOptions getDefaultInstance() {
return defaultInstance;
}
public FieldOptions getDefaultInstanceForType() {
return defaultInstance;
}
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_FieldOptions_descriptor;
}
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_FieldOptions_fieldAccessorTable;
}
public enum CType
implements com.google.protobuf.ProtocolMessageEnum {
STRING(0, 0),
CORD(1, 1),
STRING_PIECE(2, 2),
;
public static final int STRING_VALUE = 0;
public static final int CORD_VALUE = 1;
public static final int STRING_PIECE_VALUE = 2;
public final int getNumber() { return value; }
public static CType valueOf(int value) {
switch (value) {
case 0: return STRING;
case 1: return CORD;
case 2: return STRING_PIECE;
default: return null;
}
}
public static com.google.protobuf.Internal.EnumLiteMap<CType>
internalGetValueMap() {
return internalValueMap;
}
private static com.google.protobuf.Internal.EnumLiteMap<CType>
internalValueMap =
new com.google.protobuf.Internal.EnumLiteMap<CType>() {
public CType findValueByNumber(int number) {
return CType.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 com.google.protobuf.DescriptorProtos.FieldOptions.getDescriptor().getEnumTypes().get(0);
}
private static final CType[] VALUES = {
STRING, CORD, STRING_PIECE,
};
public static CType 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 CType(int index, int value) {
this.index = index;
this.value = value;
}
// @@protoc_insertion_point(enum_scope:google.protobuf.FieldOptions.CType)
}
private int bitField0_;
// optional .google.protobuf.FieldOptions.CType ctype = 1 [default = STRING];
public static final int CTYPE_FIELD_NUMBER = 1;
private com.google.protobuf.DescriptorProtos.FieldOptions.CType ctype_;
public boolean hasCtype() {
return ((bitField0_ & 0x00000001) == 0x00000001);
}
public com.google.protobuf.DescriptorProtos.FieldOptions.CType getCtype() {
return ctype_;
}
// optional bool packed = 2;
public static final int PACKED_FIELD_NUMBER = 2;
private boolean packed_;
public boolean hasPacked() {
return ((bitField0_ & 0x00000002) == 0x00000002);
}
public boolean getPacked() {
return packed_;
}
// optional bool deprecated = 3 [default = false];
public static final int DEPRECATED_FIELD_NUMBER = 3;
private boolean deprecated_;
public boolean hasDeprecated() {
return ((bitField0_ & 0x00000004) == 0x00000004);
}
public boolean getDeprecated() {
return deprecated_;
}
// optional string experimental_map_key = 9;
public static final int EXPERIMENTAL_MAP_KEY_FIELD_NUMBER = 9;
private java.lang.Object experimentalMapKey_;
public boolean hasExperimentalMapKey() {
return ((bitField0_ & 0x00000008) == 0x00000008);
}
public String getExperimentalMapKey() {
java.lang.Object ref = experimentalMapKey_;
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)) {
experimentalMapKey_ = s;
}
return s;
}
}
private com.google.protobuf.ByteString getExperimentalMapKeyBytes() {
java.lang.Object ref = experimentalMapKey_;
if (ref instanceof String) {
com.google.protobuf.ByteString b =
com.google.protobuf.ByteString.copyFromUtf8((String) ref);
experimentalMapKey_ = b;
return b;
} else {
return (com.google.protobuf.ByteString) ref;
}
}
// repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
public static final int UNINTERPRETED_OPTION_FIELD_NUMBER = 999;
private java.util.List<com.google.protobuf.DescriptorProtos.UninterpretedOption> uninterpretedOption_;
public java.util.List<com.google.protobuf.DescriptorProtos.UninterpretedOption> getUninterpretedOptionList() {
return uninterpretedOption_;
}
public java.util.List<? extends com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder>
getUninterpretedOptionOrBuilderList() {
return uninterpretedOption_;
}
public int getUninterpretedOptionCount() {
return uninterpretedOption_.size();
}
public com.google.protobuf.DescriptorProtos.UninterpretedOption getUninterpretedOption(int index) {
return uninterpretedOption_.get(index);
}
public com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder getUninterpretedOptionOrBuilder(
int index) {
return uninterpretedOption_.get(index);
}
private void initFields() {
ctype_ = com.google.protobuf.DescriptorProtos.FieldOptions.CType.STRING;
packed_ = false;
deprecated_ = false;
experimentalMapKey_ = "";
uninterpretedOption_ = 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 < getUninterpretedOptionCount(); i++) {
if (!getUninterpretedOption(i).isInitialized()) {
memoizedIsInitialized = 0;
return false;
}
}
if (!extensionsAreInitialized()) {
memoizedIsInitialized = 0;
return false;
}
memoizedIsInitialized = 1;
return true;
}
public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException {
getSerializedSize();
com.google.protobuf.GeneratedMessage
.ExtendableMessage<com.google.protobuf.DescriptorProtos.FieldOptions>.ExtensionWriter extensionWriter =
newExtensionWriter();
if (((bitField0_ & 0x00000001) == 0x00000001)) {
output.writeEnum(1, ctype_.getNumber());
}
if (((bitField0_ & 0x00000002) == 0x00000002)) {
output.writeBool(2, packed_);
}
if (((bitField0_ & 0x00000004) == 0x00000004)) {
output.writeBool(3, deprecated_);
}
if (((bitField0_ & 0x00000008) == 0x00000008)) {
output.writeBytes(9, getExperimentalMapKeyBytes());
}
for (int i = 0; i < uninterpretedOption_.size(); i++) {
output.writeMessage(999, uninterpretedOption_.get(i));
}
extensionWriter.writeUntil(536870912, output);
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, ctype_.getNumber());
}
if (((bitField0_ & 0x00000002) == 0x00000002)) {
size += com.google.protobuf.CodedOutputStream
.computeBoolSize(2, packed_);
}
if (((bitField0_ & 0x00000004) == 0x00000004)) {
size += com.google.protobuf.CodedOutputStream
.computeBoolSize(3, deprecated_);
}
if (((bitField0_ & 0x00000008) == 0x00000008)) {
size += com.google.protobuf.CodedOutputStream
.computeBytesSize(9, getExperimentalMapKeyBytes());
}
for (int i = 0; i < uninterpretedOption_.size(); i++) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(999, uninterpretedOption_.get(i));
}
size += extensionsSerializedSize();
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 com.google.protobuf.DescriptorProtos.FieldOptions parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.FieldOptions parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.FieldOptions parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.FieldOptions parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.FieldOptions parseFrom(java.io.InputStream input)
throws java.io.IOException {
return newBuilder().mergeFrom(input).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.FieldOptions parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return newBuilder().mergeFrom(input, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.FieldOptions parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
Builder builder = newBuilder();
if (builder.mergeDelimitedFrom(input)) {
return builder.buildParsed();
} else {
return null;
}
}
public static com.google.protobuf.DescriptorProtos.FieldOptions 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 com.google.protobuf.DescriptorProtos.FieldOptions parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return newBuilder().mergeFrom(input).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.FieldOptions 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(com.google.protobuf.DescriptorProtos.FieldOptions 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.ExtendableBuilder<
com.google.protobuf.DescriptorProtos.FieldOptions, Builder> implements com.google.protobuf.DescriptorProtos.FieldOptionsOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_FieldOptions_descriptor;
}
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_FieldOptions_fieldAccessorTable;
}
// Construct using com.google.protobuf.DescriptorProtos.FieldOptions.newBuilder()
private Builder() {
maybeForceBuilderInitialization();
}
private Builder(BuilderParent parent) {
super(parent);
maybeForceBuilderInitialization();
}
private void maybeForceBuilderInitialization() {
if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
getUninterpretedOptionFieldBuilder();
}
}
private static Builder create() {
return new Builder();
}
public Builder clear() {
super.clear();
ctype_ = com.google.protobuf.DescriptorProtos.FieldOptions.CType.STRING;
bitField0_ = (bitField0_ & ~0x00000001);
packed_ = false;
bitField0_ = (bitField0_ & ~0x00000002);
deprecated_ = false;
bitField0_ = (bitField0_ & ~0x00000004);
experimentalMapKey_ = "";
bitField0_ = (bitField0_ & ~0x00000008);
if (uninterpretedOptionBuilder_ == null) {
uninterpretedOption_ = java.util.Collections.emptyList();
bitField0_ = (bitField0_ & ~0x00000010);
} else {
uninterpretedOptionBuilder_.clear();
}
return this;
}
public Builder clone() {
return create().mergeFrom(buildPartial());
}
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
return com.google.protobuf.DescriptorProtos.FieldOptions.getDescriptor();
}
public com.google.protobuf.DescriptorProtos.FieldOptions getDefaultInstanceForType() {
return com.google.protobuf.DescriptorProtos.FieldOptions.getDefaultInstance();
}
public com.google.protobuf.DescriptorProtos.FieldOptions build() {
com.google.protobuf.DescriptorProtos.FieldOptions result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(result);
}
return result;
}
private com.google.protobuf.DescriptorProtos.FieldOptions buildParsed()
throws com.google.protobuf.InvalidProtocolBufferException {
com.google.protobuf.DescriptorProtos.FieldOptions result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(
result).asInvalidProtocolBufferException();
}
return result;
}
public com.google.protobuf.DescriptorProtos.FieldOptions buildPartial() {
com.google.protobuf.DescriptorProtos.FieldOptions result = new com.google.protobuf.DescriptorProtos.FieldOptions(this);
int from_bitField0_ = bitField0_;
int to_bitField0_ = 0;
if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
to_bitField0_ |= 0x00000001;
}
result.ctype_ = ctype_;
if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
to_bitField0_ |= 0x00000002;
}
result.packed_ = packed_;
if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
to_bitField0_ |= 0x00000004;
}
result.deprecated_ = deprecated_;
if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
to_bitField0_ |= 0x00000008;
}
result.experimentalMapKey_ = experimentalMapKey_;
if (uninterpretedOptionBuilder_ == null) {
if (((bitField0_ & 0x00000010) == 0x00000010)) {
uninterpretedOption_ = java.util.Collections.unmodifiableList(uninterpretedOption_);
bitField0_ = (bitField0_ & ~0x00000010);
}
result.uninterpretedOption_ = uninterpretedOption_;
} else {
result.uninterpretedOption_ = uninterpretedOptionBuilder_.build();
}
result.bitField0_ = to_bitField0_;
onBuilt();
return result;
}
public Builder mergeFrom(com.google.protobuf.Message other) {
if (other instanceof com.google.protobuf.DescriptorProtos.FieldOptions) {
return mergeFrom((com.google.protobuf.DescriptorProtos.FieldOptions)other);
} else {
super.mergeFrom(other);
return this;
}
}
public Builder mergeFrom(com.google.protobuf.DescriptorProtos.FieldOptions other) {
if (other == com.google.protobuf.DescriptorProtos.FieldOptions.getDefaultInstance()) return this;
if (other.hasCtype()) {
setCtype(other.getCtype());
}
if (other.hasPacked()) {
setPacked(other.getPacked());
}
if (other.hasDeprecated()) {
setDeprecated(other.getDeprecated());
}
if (other.hasExperimentalMapKey()) {
setExperimentalMapKey(other.getExperimentalMapKey());
}
if (uninterpretedOptionBuilder_ == null) {
if (!other.uninterpretedOption_.isEmpty()) {
if (uninterpretedOption_.isEmpty()) {
uninterpretedOption_ = other.uninterpretedOption_;
bitField0_ = (bitField0_ & ~0x00000010);
} else {
ensureUninterpretedOptionIsMutable();
uninterpretedOption_.addAll(other.uninterpretedOption_);
}
onChanged();
}
} else {
if (!other.uninterpretedOption_.isEmpty()) {
if (uninterpretedOptionBuilder_.isEmpty()) {
uninterpretedOptionBuilder_.dispose();
uninterpretedOptionBuilder_ = null;
uninterpretedOption_ = other.uninterpretedOption_;
bitField0_ = (bitField0_ & ~0x00000010);
uninterpretedOptionBuilder_ =
com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
getUninterpretedOptionFieldBuilder() : null;
} else {
uninterpretedOptionBuilder_.addAllMessages(other.uninterpretedOption_);
}
}
}
this.mergeExtensionFields(other);
this.mergeUnknownFields(other.getUnknownFields());
return this;
}
public final boolean isInitialized() {
for (int i = 0; i < getUninterpretedOptionCount(); i++) {
if (!getUninterpretedOption(i).isInitialized()) {
return false;
}
}
if (!extensionsAreInitialized()) {
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(
this.getUnknownFields());
while (true) {
int tag = input.readTag();
switch (tag) {
case 0:
this.setUnknownFields(unknownFields.build());
onChanged();
return this;
default: {
if (!parseUnknownField(input, unknownFields,
extensionRegistry, tag)) {
this.setUnknownFields(unknownFields.build());
onChanged();
return this;
}
break;
}
case 8: {
int rawValue = input.readEnum();
com.google.protobuf.DescriptorProtos.FieldOptions.CType value = com.google.protobuf.DescriptorProtos.FieldOptions.CType.valueOf(rawValue);
if (value == null) {
unknownFields.mergeVarintField(1, rawValue);
} else {
bitField0_ |= 0x00000001;
ctype_ = value;
}
break;
}
case 16: {
bitField0_ |= 0x00000002;
packed_ = input.readBool();
break;
}
case 24: {
bitField0_ |= 0x00000004;
deprecated_ = input.readBool();
break;
}
case 74: {
bitField0_ |= 0x00000008;
experimentalMapKey_ = input.readBytes();
break;
}
case 7994: {
com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder subBuilder = com.google.protobuf.DescriptorProtos.UninterpretedOption.newBuilder();
input.readMessage(subBuilder, extensionRegistry);
addUninterpretedOption(subBuilder.buildPartial());
break;
}
}
}
}
private int bitField0_;
// optional .google.protobuf.FieldOptions.CType ctype = 1 [default = STRING];
private com.google.protobuf.DescriptorProtos.FieldOptions.CType ctype_ = com.google.protobuf.DescriptorProtos.FieldOptions.CType.STRING;
public boolean hasCtype() {
return ((bitField0_ & 0x00000001) == 0x00000001);
}
public com.google.protobuf.DescriptorProtos.FieldOptions.CType getCtype() {
return ctype_;
}
public Builder setCtype(com.google.protobuf.DescriptorProtos.FieldOptions.CType value) {
if (value == null) {
throw new NullPointerException();
}
bitField0_ |= 0x00000001;
ctype_ = value;
onChanged();
return this;
}
public Builder clearCtype() {
bitField0_ = (bitField0_ & ~0x00000001);
ctype_ = com.google.protobuf.DescriptorProtos.FieldOptions.CType.STRING;
onChanged();
return this;
}
// optional bool packed = 2;
private boolean packed_ ;
public boolean hasPacked() {
return ((bitField0_ & 0x00000002) == 0x00000002);
}
public boolean getPacked() {
return packed_;
}
public Builder setPacked(boolean value) {
bitField0_ |= 0x00000002;
packed_ = value;
onChanged();
return this;
}
public Builder clearPacked() {
bitField0_ = (bitField0_ & ~0x00000002);
packed_ = false;
onChanged();
return this;
}
// optional bool deprecated = 3 [default = false];
private boolean deprecated_ ;
public boolean hasDeprecated() {
return ((bitField0_ & 0x00000004) == 0x00000004);
}
public boolean getDeprecated() {
return deprecated_;
}
public Builder setDeprecated(boolean value) {
bitField0_ |= 0x00000004;
deprecated_ = value;
onChanged();
return this;
}
public Builder clearDeprecated() {
bitField0_ = (bitField0_ & ~0x00000004);
deprecated_ = false;
onChanged();
return this;
}
// optional string experimental_map_key = 9;
private java.lang.Object experimentalMapKey_ = "";
public boolean hasExperimentalMapKey() {
return ((bitField0_ & 0x00000008) == 0x00000008);
}
public String getExperimentalMapKey() {
java.lang.Object ref = experimentalMapKey_;
if (!(ref instanceof String)) {
String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
experimentalMapKey_ = s;
return s;
} else {
return (String) ref;
}
}
public Builder setExperimentalMapKey(String value) {
if (value == null) {
throw new NullPointerException();
}
bitField0_ |= 0x00000008;
experimentalMapKey_ = value;
onChanged();
return this;
}
public Builder clearExperimentalMapKey() {
bitField0_ = (bitField0_ & ~0x00000008);
experimentalMapKey_ = getDefaultInstance().getExperimentalMapKey();
onChanged();
return this;
}
void setExperimentalMapKey(com.google.protobuf.ByteString value) {
bitField0_ |= 0x00000008;
experimentalMapKey_ = value;
onChanged();
}
// repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
private java.util.List<com.google.protobuf.DescriptorProtos.UninterpretedOption> uninterpretedOption_ =
java.util.Collections.emptyList();
private void ensureUninterpretedOptionIsMutable() {
if (!((bitField0_ & 0x00000010) == 0x00000010)) {
uninterpretedOption_ = new java.util.ArrayList<com.google.protobuf.DescriptorProtos.UninterpretedOption>(uninterpretedOption_);
bitField0_ |= 0x00000010;
}
}
private com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.UninterpretedOption, com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder, com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder> uninterpretedOptionBuilder_;
public java.util.List<com.google.protobuf.DescriptorProtos.UninterpretedOption> getUninterpretedOptionList() {
if (uninterpretedOptionBuilder_ == null) {
return java.util.Collections.unmodifiableList(uninterpretedOption_);
} else {
return uninterpretedOptionBuilder_.getMessageList();
}
}
public int getUninterpretedOptionCount() {
if (uninterpretedOptionBuilder_ == null) {
return uninterpretedOption_.size();
} else {
return uninterpretedOptionBuilder_.getCount();
}
}
public com.google.protobuf.DescriptorProtos.UninterpretedOption getUninterpretedOption(int index) {
if (uninterpretedOptionBuilder_ == null) {
return uninterpretedOption_.get(index);
} else {
return uninterpretedOptionBuilder_.getMessage(index);
}
}
public Builder setUninterpretedOption(
int index, com.google.protobuf.DescriptorProtos.UninterpretedOption value) {
if (uninterpretedOptionBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureUninterpretedOptionIsMutable();
uninterpretedOption_.set(index, value);
onChanged();
} else {
uninterpretedOptionBuilder_.setMessage(index, value);
}
return this;
}
public Builder setUninterpretedOption(
int index, com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder builderForValue) {
if (uninterpretedOptionBuilder_ == null) {
ensureUninterpretedOptionIsMutable();
uninterpretedOption_.set(index, builderForValue.build());
onChanged();
} else {
uninterpretedOptionBuilder_.setMessage(index, builderForValue.build());
}
return this;
}
public Builder addUninterpretedOption(com.google.protobuf.DescriptorProtos.UninterpretedOption value) {
if (uninterpretedOptionBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureUninterpretedOptionIsMutable();
uninterpretedOption_.add(value);
onChanged();
} else {
uninterpretedOptionBuilder_.addMessage(value);
}
return this;
}
public Builder addUninterpretedOption(
int index, com.google.protobuf.DescriptorProtos.UninterpretedOption value) {
if (uninterpretedOptionBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureUninterpretedOptionIsMutable();
uninterpretedOption_.add(index, value);
onChanged();
} else {
uninterpretedOptionBuilder_.addMessage(index, value);
}
return this;
}
public Builder addUninterpretedOption(
com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder builderForValue) {
if (uninterpretedOptionBuilder_ == null) {
ensureUninterpretedOptionIsMutable();
uninterpretedOption_.add(builderForValue.build());
onChanged();
} else {
uninterpretedOptionBuilder_.addMessage(builderForValue.build());
}
return this;
}
public Builder addUninterpretedOption(
int index, com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder builderForValue) {
if (uninterpretedOptionBuilder_ == null) {
ensureUninterpretedOptionIsMutable();
uninterpretedOption_.add(index, builderForValue.build());
onChanged();
} else {
uninterpretedOptionBuilder_.addMessage(index, builderForValue.build());
}
return this;
}
public Builder addAllUninterpretedOption(
java.lang.Iterable<? extends com.google.protobuf.DescriptorProtos.UninterpretedOption> values) {
if (uninterpretedOptionBuilder_ == null) {
ensureUninterpretedOptionIsMutable();
super.addAll(values, uninterpretedOption_);
onChanged();
} else {
uninterpretedOptionBuilder_.addAllMessages(values);
}
return this;
}
public Builder clearUninterpretedOption() {
if (uninterpretedOptionBuilder_ == null) {
uninterpretedOption_ = java.util.Collections.emptyList();
bitField0_ = (bitField0_ & ~0x00000010);
onChanged();
} else {
uninterpretedOptionBuilder_.clear();
}
return this;
}
public Builder removeUninterpretedOption(int index) {
if (uninterpretedOptionBuilder_ == null) {
ensureUninterpretedOptionIsMutable();
uninterpretedOption_.remove(index);
onChanged();
} else {
uninterpretedOptionBuilder_.remove(index);
}
return this;
}
public com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder getUninterpretedOptionBuilder(
int index) {
return getUninterpretedOptionFieldBuilder().getBuilder(index);
}
public com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder getUninterpretedOptionOrBuilder(
int index) {
if (uninterpretedOptionBuilder_ == null) {
return uninterpretedOption_.get(index); } else {
return uninterpretedOptionBuilder_.getMessageOrBuilder(index);
}
}
public java.util.List<? extends com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder>
getUninterpretedOptionOrBuilderList() {
if (uninterpretedOptionBuilder_ != null) {
return uninterpretedOptionBuilder_.getMessageOrBuilderList();
} else {
return java.util.Collections.unmodifiableList(uninterpretedOption_);
}
}
public com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder addUninterpretedOptionBuilder() {
return getUninterpretedOptionFieldBuilder().addBuilder(
com.google.protobuf.DescriptorProtos.UninterpretedOption.getDefaultInstance());
}
public com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder addUninterpretedOptionBuilder(
int index) {
return getUninterpretedOptionFieldBuilder().addBuilder(
index, com.google.protobuf.DescriptorProtos.UninterpretedOption.getDefaultInstance());
}
public java.util.List<com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder>
getUninterpretedOptionBuilderList() {
return getUninterpretedOptionFieldBuilder().getBuilderList();
}
private com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.UninterpretedOption, com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder, com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder>
getUninterpretedOptionFieldBuilder() {
if (uninterpretedOptionBuilder_ == null) {
uninterpretedOptionBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.UninterpretedOption, com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder, com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder>(
uninterpretedOption_,
((bitField0_ & 0x00000010) == 0x00000010),
getParentForChildren(),
isClean());
uninterpretedOption_ = null;
}
return uninterpretedOptionBuilder_;
}
// @@protoc_insertion_point(builder_scope:google.protobuf.FieldOptions)
}
static {
defaultInstance = new FieldOptions(true);
defaultInstance.initFields();
}
// @@protoc_insertion_point(class_scope:google.protobuf.FieldOptions)
}
public interface EnumOptionsOrBuilder extends
com.google.protobuf.GeneratedMessage.
ExtendableMessageOrBuilder<EnumOptions> {
// repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
java.util.List<com.google.protobuf.DescriptorProtos.UninterpretedOption>
getUninterpretedOptionList();
com.google.protobuf.DescriptorProtos.UninterpretedOption getUninterpretedOption(int index);
int getUninterpretedOptionCount();
java.util.List<? extends com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder>
getUninterpretedOptionOrBuilderList();
com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder getUninterpretedOptionOrBuilder(
int index);
}
public static final class EnumOptions extends
com.google.protobuf.GeneratedMessage.ExtendableMessage<
EnumOptions> implements EnumOptionsOrBuilder {
// Use EnumOptions.newBuilder() to construct.
private EnumOptions(Builder builder) {
super(builder);
}
private EnumOptions(boolean noInit) {}
private static final EnumOptions defaultInstance;
public static EnumOptions getDefaultInstance() {
return defaultInstance;
}
public EnumOptions getDefaultInstanceForType() {
return defaultInstance;
}
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_EnumOptions_descriptor;
}
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_EnumOptions_fieldAccessorTable;
}
// repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
public static final int UNINTERPRETED_OPTION_FIELD_NUMBER = 999;
private java.util.List<com.google.protobuf.DescriptorProtos.UninterpretedOption> uninterpretedOption_;
public java.util.List<com.google.protobuf.DescriptorProtos.UninterpretedOption> getUninterpretedOptionList() {
return uninterpretedOption_;
}
public java.util.List<? extends com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder>
getUninterpretedOptionOrBuilderList() {
return uninterpretedOption_;
}
public int getUninterpretedOptionCount() {
return uninterpretedOption_.size();
}
public com.google.protobuf.DescriptorProtos.UninterpretedOption getUninterpretedOption(int index) {
return uninterpretedOption_.get(index);
}
public com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder getUninterpretedOptionOrBuilder(
int index) {
return uninterpretedOption_.get(index);
}
private void initFields() {
uninterpretedOption_ = 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 < getUninterpretedOptionCount(); i++) {
if (!getUninterpretedOption(i).isInitialized()) {
memoizedIsInitialized = 0;
return false;
}
}
if (!extensionsAreInitialized()) {
memoizedIsInitialized = 0;
return false;
}
memoizedIsInitialized = 1;
return true;
}
public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException {
getSerializedSize();
com.google.protobuf.GeneratedMessage
.ExtendableMessage<com.google.protobuf.DescriptorProtos.EnumOptions>.ExtensionWriter extensionWriter =
newExtensionWriter();
for (int i = 0; i < uninterpretedOption_.size(); i++) {
output.writeMessage(999, uninterpretedOption_.get(i));
}
extensionWriter.writeUntil(536870912, output);
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 < uninterpretedOption_.size(); i++) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(999, uninterpretedOption_.get(i));
}
size += extensionsSerializedSize();
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 com.google.protobuf.DescriptorProtos.EnumOptions parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.EnumOptions parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.EnumOptions parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.EnumOptions parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.EnumOptions parseFrom(java.io.InputStream input)
throws java.io.IOException {
return newBuilder().mergeFrom(input).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.EnumOptions parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return newBuilder().mergeFrom(input, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.EnumOptions parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
Builder builder = newBuilder();
if (builder.mergeDelimitedFrom(input)) {
return builder.buildParsed();
} else {
return null;
}
}
public static com.google.protobuf.DescriptorProtos.EnumOptions 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 com.google.protobuf.DescriptorProtos.EnumOptions parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return newBuilder().mergeFrom(input).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.EnumOptions 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(com.google.protobuf.DescriptorProtos.EnumOptions 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.ExtendableBuilder<
com.google.protobuf.DescriptorProtos.EnumOptions, Builder> implements com.google.protobuf.DescriptorProtos.EnumOptionsOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_EnumOptions_descriptor;
}
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_EnumOptions_fieldAccessorTable;
}
// Construct using com.google.protobuf.DescriptorProtos.EnumOptions.newBuilder()
private Builder() {
maybeForceBuilderInitialization();
}
private Builder(BuilderParent parent) {
super(parent);
maybeForceBuilderInitialization();
}
private void maybeForceBuilderInitialization() {
if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
getUninterpretedOptionFieldBuilder();
}
}
private static Builder create() {
return new Builder();
}
public Builder clear() {
super.clear();
if (uninterpretedOptionBuilder_ == null) {
uninterpretedOption_ = java.util.Collections.emptyList();
bitField0_ = (bitField0_ & ~0x00000001);
} else {
uninterpretedOptionBuilder_.clear();
}
return this;
}
public Builder clone() {
return create().mergeFrom(buildPartial());
}
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
return com.google.protobuf.DescriptorProtos.EnumOptions.getDescriptor();
}
public com.google.protobuf.DescriptorProtos.EnumOptions getDefaultInstanceForType() {
return com.google.protobuf.DescriptorProtos.EnumOptions.getDefaultInstance();
}
public com.google.protobuf.DescriptorProtos.EnumOptions build() {
com.google.protobuf.DescriptorProtos.EnumOptions result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(result);
}
return result;
}
private com.google.protobuf.DescriptorProtos.EnumOptions buildParsed()
throws com.google.protobuf.InvalidProtocolBufferException {
com.google.protobuf.DescriptorProtos.EnumOptions result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(
result).asInvalidProtocolBufferException();
}
return result;
}
public com.google.protobuf.DescriptorProtos.EnumOptions buildPartial() {
com.google.protobuf.DescriptorProtos.EnumOptions result = new com.google.protobuf.DescriptorProtos.EnumOptions(this);
int from_bitField0_ = bitField0_;
if (uninterpretedOptionBuilder_ == null) {
if (((bitField0_ & 0x00000001) == 0x00000001)) {
uninterpretedOption_ = java.util.Collections.unmodifiableList(uninterpretedOption_);
bitField0_ = (bitField0_ & ~0x00000001);
}
result.uninterpretedOption_ = uninterpretedOption_;
} else {
result.uninterpretedOption_ = uninterpretedOptionBuilder_.build();
}
onBuilt();
return result;
}
public Builder mergeFrom(com.google.protobuf.Message other) {
if (other instanceof com.google.protobuf.DescriptorProtos.EnumOptions) {
return mergeFrom((com.google.protobuf.DescriptorProtos.EnumOptions)other);
} else {
super.mergeFrom(other);
return this;
}
}
public Builder mergeFrom(com.google.protobuf.DescriptorProtos.EnumOptions other) {
if (other == com.google.protobuf.DescriptorProtos.EnumOptions.getDefaultInstance()) return this;
if (uninterpretedOptionBuilder_ == null) {
if (!other.uninterpretedOption_.isEmpty()) {
if (uninterpretedOption_.isEmpty()) {
uninterpretedOption_ = other.uninterpretedOption_;
bitField0_ = (bitField0_ & ~0x00000001);
} else {
ensureUninterpretedOptionIsMutable();
uninterpretedOption_.addAll(other.uninterpretedOption_);
}
onChanged();
}
} else {
if (!other.uninterpretedOption_.isEmpty()) {
if (uninterpretedOptionBuilder_.isEmpty()) {
uninterpretedOptionBuilder_.dispose();
uninterpretedOptionBuilder_ = null;
uninterpretedOption_ = other.uninterpretedOption_;
bitField0_ = (bitField0_ & ~0x00000001);
uninterpretedOptionBuilder_ =
com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
getUninterpretedOptionFieldBuilder() : null;
} else {
uninterpretedOptionBuilder_.addAllMessages(other.uninterpretedOption_);
}
}
}
this.mergeExtensionFields(other);
this.mergeUnknownFields(other.getUnknownFields());
return this;
}
public final boolean isInitialized() {
for (int i = 0; i < getUninterpretedOptionCount(); i++) {
if (!getUninterpretedOption(i).isInitialized()) {
return false;
}
}
if (!extensionsAreInitialized()) {
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(
this.getUnknownFields());
while (true) {
int tag = input.readTag();
switch (tag) {
case 0:
this.setUnknownFields(unknownFields.build());
onChanged();
return this;
default: {
if (!parseUnknownField(input, unknownFields,
extensionRegistry, tag)) {
this.setUnknownFields(unknownFields.build());
onChanged();
return this;
}
break;
}
case 7994: {
com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder subBuilder = com.google.protobuf.DescriptorProtos.UninterpretedOption.newBuilder();
input.readMessage(subBuilder, extensionRegistry);
addUninterpretedOption(subBuilder.buildPartial());
break;
}
}
}
}
private int bitField0_;
// repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
private java.util.List<com.google.protobuf.DescriptorProtos.UninterpretedOption> uninterpretedOption_ =
java.util.Collections.emptyList();
private void ensureUninterpretedOptionIsMutable() {
if (!((bitField0_ & 0x00000001) == 0x00000001)) {
uninterpretedOption_ = new java.util.ArrayList<com.google.protobuf.DescriptorProtos.UninterpretedOption>(uninterpretedOption_);
bitField0_ |= 0x00000001;
}
}
private com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.UninterpretedOption, com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder, com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder> uninterpretedOptionBuilder_;
public java.util.List<com.google.protobuf.DescriptorProtos.UninterpretedOption> getUninterpretedOptionList() {
if (uninterpretedOptionBuilder_ == null) {
return java.util.Collections.unmodifiableList(uninterpretedOption_);
} else {
return uninterpretedOptionBuilder_.getMessageList();
}
}
public int getUninterpretedOptionCount() {
if (uninterpretedOptionBuilder_ == null) {
return uninterpretedOption_.size();
} else {
return uninterpretedOptionBuilder_.getCount();
}
}
public com.google.protobuf.DescriptorProtos.UninterpretedOption getUninterpretedOption(int index) {
if (uninterpretedOptionBuilder_ == null) {
return uninterpretedOption_.get(index);
} else {
return uninterpretedOptionBuilder_.getMessage(index);
}
}
public Builder setUninterpretedOption(
int index, com.google.protobuf.DescriptorProtos.UninterpretedOption value) {
if (uninterpretedOptionBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureUninterpretedOptionIsMutable();
uninterpretedOption_.set(index, value);
onChanged();
} else {
uninterpretedOptionBuilder_.setMessage(index, value);
}
return this;
}
public Builder setUninterpretedOption(
int index, com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder builderForValue) {
if (uninterpretedOptionBuilder_ == null) {
ensureUninterpretedOptionIsMutable();
uninterpretedOption_.set(index, builderForValue.build());
onChanged();
} else {
uninterpretedOptionBuilder_.setMessage(index, builderForValue.build());
}
return this;
}
public Builder addUninterpretedOption(com.google.protobuf.DescriptorProtos.UninterpretedOption value) {
if (uninterpretedOptionBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureUninterpretedOptionIsMutable();
uninterpretedOption_.add(value);
onChanged();
} else {
uninterpretedOptionBuilder_.addMessage(value);
}
return this;
}
public Builder addUninterpretedOption(
int index, com.google.protobuf.DescriptorProtos.UninterpretedOption value) {
if (uninterpretedOptionBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureUninterpretedOptionIsMutable();
uninterpretedOption_.add(index, value);
onChanged();
} else {
uninterpretedOptionBuilder_.addMessage(index, value);
}
return this;
}
public Builder addUninterpretedOption(
com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder builderForValue) {
if (uninterpretedOptionBuilder_ == null) {
ensureUninterpretedOptionIsMutable();
uninterpretedOption_.add(builderForValue.build());
onChanged();
} else {
uninterpretedOptionBuilder_.addMessage(builderForValue.build());
}
return this;
}
public Builder addUninterpretedOption(
int index, com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder builderForValue) {
if (uninterpretedOptionBuilder_ == null) {
ensureUninterpretedOptionIsMutable();
uninterpretedOption_.add(index, builderForValue.build());
onChanged();
} else {
uninterpretedOptionBuilder_.addMessage(index, builderForValue.build());
}
return this;
}
public Builder addAllUninterpretedOption(
java.lang.Iterable<? extends com.google.protobuf.DescriptorProtos.UninterpretedOption> values) {
if (uninterpretedOptionBuilder_ == null) {
ensureUninterpretedOptionIsMutable();
super.addAll(values, uninterpretedOption_);
onChanged();
} else {
uninterpretedOptionBuilder_.addAllMessages(values);
}
return this;
}
public Builder clearUninterpretedOption() {
if (uninterpretedOptionBuilder_ == null) {
uninterpretedOption_ = java.util.Collections.emptyList();
bitField0_ = (bitField0_ & ~0x00000001);
onChanged();
} else {
uninterpretedOptionBuilder_.clear();
}
return this;
}
public Builder removeUninterpretedOption(int index) {
if (uninterpretedOptionBuilder_ == null) {
ensureUninterpretedOptionIsMutable();
uninterpretedOption_.remove(index);
onChanged();
} else {
uninterpretedOptionBuilder_.remove(index);
}
return this;
}
public com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder getUninterpretedOptionBuilder(
int index) {
return getUninterpretedOptionFieldBuilder().getBuilder(index);
}
public com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder getUninterpretedOptionOrBuilder(
int index) {
if (uninterpretedOptionBuilder_ == null) {
return uninterpretedOption_.get(index); } else {
return uninterpretedOptionBuilder_.getMessageOrBuilder(index);
}
}
public java.util.List<? extends com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder>
getUninterpretedOptionOrBuilderList() {
if (uninterpretedOptionBuilder_ != null) {
return uninterpretedOptionBuilder_.getMessageOrBuilderList();
} else {
return java.util.Collections.unmodifiableList(uninterpretedOption_);
}
}
public com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder addUninterpretedOptionBuilder() {
return getUninterpretedOptionFieldBuilder().addBuilder(
com.google.protobuf.DescriptorProtos.UninterpretedOption.getDefaultInstance());
}
public com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder addUninterpretedOptionBuilder(
int index) {
return getUninterpretedOptionFieldBuilder().addBuilder(
index, com.google.protobuf.DescriptorProtos.UninterpretedOption.getDefaultInstance());
}
public java.util.List<com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder>
getUninterpretedOptionBuilderList() {
return getUninterpretedOptionFieldBuilder().getBuilderList();
}
private com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.UninterpretedOption, com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder, com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder>
getUninterpretedOptionFieldBuilder() {
if (uninterpretedOptionBuilder_ == null) {
uninterpretedOptionBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.UninterpretedOption, com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder, com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder>(
uninterpretedOption_,
((bitField0_ & 0x00000001) == 0x00000001),
getParentForChildren(),
isClean());
uninterpretedOption_ = null;
}
return uninterpretedOptionBuilder_;
}
// @@protoc_insertion_point(builder_scope:google.protobuf.EnumOptions)
}
static {
defaultInstance = new EnumOptions(true);
defaultInstance.initFields();
}
// @@protoc_insertion_point(class_scope:google.protobuf.EnumOptions)
}
public interface EnumValueOptionsOrBuilder extends
com.google.protobuf.GeneratedMessage.
ExtendableMessageOrBuilder<EnumValueOptions> {
// repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
java.util.List<com.google.protobuf.DescriptorProtos.UninterpretedOption>
getUninterpretedOptionList();
com.google.protobuf.DescriptorProtos.UninterpretedOption getUninterpretedOption(int index);
int getUninterpretedOptionCount();
java.util.List<? extends com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder>
getUninterpretedOptionOrBuilderList();
com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder getUninterpretedOptionOrBuilder(
int index);
}
public static final class EnumValueOptions extends
com.google.protobuf.GeneratedMessage.ExtendableMessage<
EnumValueOptions> implements EnumValueOptionsOrBuilder {
// Use EnumValueOptions.newBuilder() to construct.
private EnumValueOptions(Builder builder) {
super(builder);
}
private EnumValueOptions(boolean noInit) {}
private static final EnumValueOptions defaultInstance;
public static EnumValueOptions getDefaultInstance() {
return defaultInstance;
}
public EnumValueOptions getDefaultInstanceForType() {
return defaultInstance;
}
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_EnumValueOptions_descriptor;
}
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_EnumValueOptions_fieldAccessorTable;
}
// repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
public static final int UNINTERPRETED_OPTION_FIELD_NUMBER = 999;
private java.util.List<com.google.protobuf.DescriptorProtos.UninterpretedOption> uninterpretedOption_;
public java.util.List<com.google.protobuf.DescriptorProtos.UninterpretedOption> getUninterpretedOptionList() {
return uninterpretedOption_;
}
public java.util.List<? extends com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder>
getUninterpretedOptionOrBuilderList() {
return uninterpretedOption_;
}
public int getUninterpretedOptionCount() {
return uninterpretedOption_.size();
}
public com.google.protobuf.DescriptorProtos.UninterpretedOption getUninterpretedOption(int index) {
return uninterpretedOption_.get(index);
}
public com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder getUninterpretedOptionOrBuilder(
int index) {
return uninterpretedOption_.get(index);
}
private void initFields() {
uninterpretedOption_ = 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 < getUninterpretedOptionCount(); i++) {
if (!getUninterpretedOption(i).isInitialized()) {
memoizedIsInitialized = 0;
return false;
}
}
if (!extensionsAreInitialized()) {
memoizedIsInitialized = 0;
return false;
}
memoizedIsInitialized = 1;
return true;
}
public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException {
getSerializedSize();
com.google.protobuf.GeneratedMessage
.ExtendableMessage<com.google.protobuf.DescriptorProtos.EnumValueOptions>.ExtensionWriter extensionWriter =
newExtensionWriter();
for (int i = 0; i < uninterpretedOption_.size(); i++) {
output.writeMessage(999, uninterpretedOption_.get(i));
}
extensionWriter.writeUntil(536870912, output);
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 < uninterpretedOption_.size(); i++) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(999, uninterpretedOption_.get(i));
}
size += extensionsSerializedSize();
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 com.google.protobuf.DescriptorProtos.EnumValueOptions parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.EnumValueOptions parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.EnumValueOptions parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.EnumValueOptions parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.EnumValueOptions parseFrom(java.io.InputStream input)
throws java.io.IOException {
return newBuilder().mergeFrom(input).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.EnumValueOptions parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return newBuilder().mergeFrom(input, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.EnumValueOptions parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
Builder builder = newBuilder();
if (builder.mergeDelimitedFrom(input)) {
return builder.buildParsed();
} else {
return null;
}
}
public static com.google.protobuf.DescriptorProtos.EnumValueOptions 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 com.google.protobuf.DescriptorProtos.EnumValueOptions parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return newBuilder().mergeFrom(input).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.EnumValueOptions 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(com.google.protobuf.DescriptorProtos.EnumValueOptions 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.ExtendableBuilder<
com.google.protobuf.DescriptorProtos.EnumValueOptions, Builder> implements com.google.protobuf.DescriptorProtos.EnumValueOptionsOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_EnumValueOptions_descriptor;
}
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_EnumValueOptions_fieldAccessorTable;
}
// Construct using com.google.protobuf.DescriptorProtos.EnumValueOptions.newBuilder()
private Builder() {
maybeForceBuilderInitialization();
}
private Builder(BuilderParent parent) {
super(parent);
maybeForceBuilderInitialization();
}
private void maybeForceBuilderInitialization() {
if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
getUninterpretedOptionFieldBuilder();
}
}
private static Builder create() {
return new Builder();
}
public Builder clear() {
super.clear();
if (uninterpretedOptionBuilder_ == null) {
uninterpretedOption_ = java.util.Collections.emptyList();
bitField0_ = (bitField0_ & ~0x00000001);
} else {
uninterpretedOptionBuilder_.clear();
}
return this;
}
public Builder clone() {
return create().mergeFrom(buildPartial());
}
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
return com.google.protobuf.DescriptorProtos.EnumValueOptions.getDescriptor();
}
public com.google.protobuf.DescriptorProtos.EnumValueOptions getDefaultInstanceForType() {
return com.google.protobuf.DescriptorProtos.EnumValueOptions.getDefaultInstance();
}
public com.google.protobuf.DescriptorProtos.EnumValueOptions build() {
com.google.protobuf.DescriptorProtos.EnumValueOptions result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(result);
}
return result;
}
private com.google.protobuf.DescriptorProtos.EnumValueOptions buildParsed()
throws com.google.protobuf.InvalidProtocolBufferException {
com.google.protobuf.DescriptorProtos.EnumValueOptions result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(
result).asInvalidProtocolBufferException();
}
return result;
}
public com.google.protobuf.DescriptorProtos.EnumValueOptions buildPartial() {
com.google.protobuf.DescriptorProtos.EnumValueOptions result = new com.google.protobuf.DescriptorProtos.EnumValueOptions(this);
int from_bitField0_ = bitField0_;
if (uninterpretedOptionBuilder_ == null) {
if (((bitField0_ & 0x00000001) == 0x00000001)) {
uninterpretedOption_ = java.util.Collections.unmodifiableList(uninterpretedOption_);
bitField0_ = (bitField0_ & ~0x00000001);
}
result.uninterpretedOption_ = uninterpretedOption_;
} else {
result.uninterpretedOption_ = uninterpretedOptionBuilder_.build();
}
onBuilt();
return result;
}
public Builder mergeFrom(com.google.protobuf.Message other) {
if (other instanceof com.google.protobuf.DescriptorProtos.EnumValueOptions) {
return mergeFrom((com.google.protobuf.DescriptorProtos.EnumValueOptions)other);
} else {
super.mergeFrom(other);
return this;
}
}
public Builder mergeFrom(com.google.protobuf.DescriptorProtos.EnumValueOptions other) {
if (other == com.google.protobuf.DescriptorProtos.EnumValueOptions.getDefaultInstance()) return this;
if (uninterpretedOptionBuilder_ == null) {
if (!other.uninterpretedOption_.isEmpty()) {
if (uninterpretedOption_.isEmpty()) {
uninterpretedOption_ = other.uninterpretedOption_;
bitField0_ = (bitField0_ & ~0x00000001);
} else {
ensureUninterpretedOptionIsMutable();
uninterpretedOption_.addAll(other.uninterpretedOption_);
}
onChanged();
}
} else {
if (!other.uninterpretedOption_.isEmpty()) {
if (uninterpretedOptionBuilder_.isEmpty()) {
uninterpretedOptionBuilder_.dispose();
uninterpretedOptionBuilder_ = null;
uninterpretedOption_ = other.uninterpretedOption_;
bitField0_ = (bitField0_ & ~0x00000001);
uninterpretedOptionBuilder_ =
com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
getUninterpretedOptionFieldBuilder() : null;
} else {
uninterpretedOptionBuilder_.addAllMessages(other.uninterpretedOption_);
}
}
}
this.mergeExtensionFields(other);
this.mergeUnknownFields(other.getUnknownFields());
return this;
}
public final boolean isInitialized() {
for (int i = 0; i < getUninterpretedOptionCount(); i++) {
if (!getUninterpretedOption(i).isInitialized()) {
return false;
}
}
if (!extensionsAreInitialized()) {
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(
this.getUnknownFields());
while (true) {
int tag = input.readTag();
switch (tag) {
case 0:
this.setUnknownFields(unknownFields.build());
onChanged();
return this;
default: {
if (!parseUnknownField(input, unknownFields,
extensionRegistry, tag)) {
this.setUnknownFields(unknownFields.build());
onChanged();
return this;
}
break;
}
case 7994: {
com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder subBuilder = com.google.protobuf.DescriptorProtos.UninterpretedOption.newBuilder();
input.readMessage(subBuilder, extensionRegistry);
addUninterpretedOption(subBuilder.buildPartial());
break;
}
}
}
}
private int bitField0_;
// repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
private java.util.List<com.google.protobuf.DescriptorProtos.UninterpretedOption> uninterpretedOption_ =
java.util.Collections.emptyList();
private void ensureUninterpretedOptionIsMutable() {
if (!((bitField0_ & 0x00000001) == 0x00000001)) {
uninterpretedOption_ = new java.util.ArrayList<com.google.protobuf.DescriptorProtos.UninterpretedOption>(uninterpretedOption_);
bitField0_ |= 0x00000001;
}
}
private com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.UninterpretedOption, com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder, com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder> uninterpretedOptionBuilder_;
public java.util.List<com.google.protobuf.DescriptorProtos.UninterpretedOption> getUninterpretedOptionList() {
if (uninterpretedOptionBuilder_ == null) {
return java.util.Collections.unmodifiableList(uninterpretedOption_);
} else {
return uninterpretedOptionBuilder_.getMessageList();
}
}
public int getUninterpretedOptionCount() {
if (uninterpretedOptionBuilder_ == null) {
return uninterpretedOption_.size();
} else {
return uninterpretedOptionBuilder_.getCount();
}
}
public com.google.protobuf.DescriptorProtos.UninterpretedOption getUninterpretedOption(int index) {
if (uninterpretedOptionBuilder_ == null) {
return uninterpretedOption_.get(index);
} else {
return uninterpretedOptionBuilder_.getMessage(index);
}
}
public Builder setUninterpretedOption(
int index, com.google.protobuf.DescriptorProtos.UninterpretedOption value) {
if (uninterpretedOptionBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureUninterpretedOptionIsMutable();
uninterpretedOption_.set(index, value);
onChanged();
} else {
uninterpretedOptionBuilder_.setMessage(index, value);
}
return this;
}
public Builder setUninterpretedOption(
int index, com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder builderForValue) {
if (uninterpretedOptionBuilder_ == null) {
ensureUninterpretedOptionIsMutable();
uninterpretedOption_.set(index, builderForValue.build());
onChanged();
} else {
uninterpretedOptionBuilder_.setMessage(index, builderForValue.build());
}
return this;
}
public Builder addUninterpretedOption(com.google.protobuf.DescriptorProtos.UninterpretedOption value) {
if (uninterpretedOptionBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureUninterpretedOptionIsMutable();
uninterpretedOption_.add(value);
onChanged();
} else {
uninterpretedOptionBuilder_.addMessage(value);
}
return this;
}
public Builder addUninterpretedOption(
int index, com.google.protobuf.DescriptorProtos.UninterpretedOption value) {
if (uninterpretedOptionBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureUninterpretedOptionIsMutable();
uninterpretedOption_.add(index, value);
onChanged();
} else {
uninterpretedOptionBuilder_.addMessage(index, value);
}
return this;
}
public Builder addUninterpretedOption(
com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder builderForValue) {
if (uninterpretedOptionBuilder_ == null) {
ensureUninterpretedOptionIsMutable();
uninterpretedOption_.add(builderForValue.build());
onChanged();
} else {
uninterpretedOptionBuilder_.addMessage(builderForValue.build());
}
return this;
}
public Builder addUninterpretedOption(
int index, com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder builderForValue) {
if (uninterpretedOptionBuilder_ == null) {
ensureUninterpretedOptionIsMutable();
uninterpretedOption_.add(index, builderForValue.build());
onChanged();
} else {
uninterpretedOptionBuilder_.addMessage(index, builderForValue.build());
}
return this;
}
public Builder addAllUninterpretedOption(
java.lang.Iterable<? extends com.google.protobuf.DescriptorProtos.UninterpretedOption> values) {
if (uninterpretedOptionBuilder_ == null) {
ensureUninterpretedOptionIsMutable();
super.addAll(values, uninterpretedOption_);
onChanged();
} else {
uninterpretedOptionBuilder_.addAllMessages(values);
}
return this;
}
public Builder clearUninterpretedOption() {
if (uninterpretedOptionBuilder_ == null) {
uninterpretedOption_ = java.util.Collections.emptyList();
bitField0_ = (bitField0_ & ~0x00000001);
onChanged();
} else {
uninterpretedOptionBuilder_.clear();
}
return this;
}
public Builder removeUninterpretedOption(int index) {
if (uninterpretedOptionBuilder_ == null) {
ensureUninterpretedOptionIsMutable();
uninterpretedOption_.remove(index);
onChanged();
} else {
uninterpretedOptionBuilder_.remove(index);
}
return this;
}
public com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder getUninterpretedOptionBuilder(
int index) {
return getUninterpretedOptionFieldBuilder().getBuilder(index);
}
public com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder getUninterpretedOptionOrBuilder(
int index) {
if (uninterpretedOptionBuilder_ == null) {
return uninterpretedOption_.get(index); } else {
return uninterpretedOptionBuilder_.getMessageOrBuilder(index);
}
}
public java.util.List<? extends com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder>
getUninterpretedOptionOrBuilderList() {
if (uninterpretedOptionBuilder_ != null) {
return uninterpretedOptionBuilder_.getMessageOrBuilderList();
} else {
return java.util.Collections.unmodifiableList(uninterpretedOption_);
}
}
public com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder addUninterpretedOptionBuilder() {
return getUninterpretedOptionFieldBuilder().addBuilder(
com.google.protobuf.DescriptorProtos.UninterpretedOption.getDefaultInstance());
}
public com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder addUninterpretedOptionBuilder(
int index) {
return getUninterpretedOptionFieldBuilder().addBuilder(
index, com.google.protobuf.DescriptorProtos.UninterpretedOption.getDefaultInstance());
}
public java.util.List<com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder>
getUninterpretedOptionBuilderList() {
return getUninterpretedOptionFieldBuilder().getBuilderList();
}
private com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.UninterpretedOption, com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder, com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder>
getUninterpretedOptionFieldBuilder() {
if (uninterpretedOptionBuilder_ == null) {
uninterpretedOptionBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.UninterpretedOption, com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder, com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder>(
uninterpretedOption_,
((bitField0_ & 0x00000001) == 0x00000001),
getParentForChildren(),
isClean());
uninterpretedOption_ = null;
}
return uninterpretedOptionBuilder_;
}
// @@protoc_insertion_point(builder_scope:google.protobuf.EnumValueOptions)
}
static {
defaultInstance = new EnumValueOptions(true);
defaultInstance.initFields();
}
// @@protoc_insertion_point(class_scope:google.protobuf.EnumValueOptions)
}
public interface ServiceOptionsOrBuilder extends
com.google.protobuf.GeneratedMessage.
ExtendableMessageOrBuilder<ServiceOptions> {
// repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
java.util.List<com.google.protobuf.DescriptorProtos.UninterpretedOption>
getUninterpretedOptionList();
com.google.protobuf.DescriptorProtos.UninterpretedOption getUninterpretedOption(int index);
int getUninterpretedOptionCount();
java.util.List<? extends com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder>
getUninterpretedOptionOrBuilderList();
com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder getUninterpretedOptionOrBuilder(
int index);
}
public static final class ServiceOptions extends
com.google.protobuf.GeneratedMessage.ExtendableMessage<
ServiceOptions> implements ServiceOptionsOrBuilder {
// Use ServiceOptions.newBuilder() to construct.
private ServiceOptions(Builder builder) {
super(builder);
}
private ServiceOptions(boolean noInit) {}
private static final ServiceOptions defaultInstance;
public static ServiceOptions getDefaultInstance() {
return defaultInstance;
}
public ServiceOptions getDefaultInstanceForType() {
return defaultInstance;
}
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_ServiceOptions_descriptor;
}
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_ServiceOptions_fieldAccessorTable;
}
// repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
public static final int UNINTERPRETED_OPTION_FIELD_NUMBER = 999;
private java.util.List<com.google.protobuf.DescriptorProtos.UninterpretedOption> uninterpretedOption_;
public java.util.List<com.google.protobuf.DescriptorProtos.UninterpretedOption> getUninterpretedOptionList() {
return uninterpretedOption_;
}
public java.util.List<? extends com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder>
getUninterpretedOptionOrBuilderList() {
return uninterpretedOption_;
}
public int getUninterpretedOptionCount() {
return uninterpretedOption_.size();
}
public com.google.protobuf.DescriptorProtos.UninterpretedOption getUninterpretedOption(int index) {
return uninterpretedOption_.get(index);
}
public com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder getUninterpretedOptionOrBuilder(
int index) {
return uninterpretedOption_.get(index);
}
private void initFields() {
uninterpretedOption_ = 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 < getUninterpretedOptionCount(); i++) {
if (!getUninterpretedOption(i).isInitialized()) {
memoizedIsInitialized = 0;
return false;
}
}
if (!extensionsAreInitialized()) {
memoizedIsInitialized = 0;
return false;
}
memoizedIsInitialized = 1;
return true;
}
public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException {
getSerializedSize();
com.google.protobuf.GeneratedMessage
.ExtendableMessage<com.google.protobuf.DescriptorProtos.ServiceOptions>.ExtensionWriter extensionWriter =
newExtensionWriter();
for (int i = 0; i < uninterpretedOption_.size(); i++) {
output.writeMessage(999, uninterpretedOption_.get(i));
}
extensionWriter.writeUntil(536870912, output);
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 < uninterpretedOption_.size(); i++) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(999, uninterpretedOption_.get(i));
}
size += extensionsSerializedSize();
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 com.google.protobuf.DescriptorProtos.ServiceOptions parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.ServiceOptions parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.ServiceOptions parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.ServiceOptions parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.ServiceOptions parseFrom(java.io.InputStream input)
throws java.io.IOException {
return newBuilder().mergeFrom(input).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.ServiceOptions parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return newBuilder().mergeFrom(input, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.ServiceOptions parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
Builder builder = newBuilder();
if (builder.mergeDelimitedFrom(input)) {
return builder.buildParsed();
} else {
return null;
}
}
public static com.google.protobuf.DescriptorProtos.ServiceOptions 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 com.google.protobuf.DescriptorProtos.ServiceOptions parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return newBuilder().mergeFrom(input).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.ServiceOptions 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(com.google.protobuf.DescriptorProtos.ServiceOptions 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.ExtendableBuilder<
com.google.protobuf.DescriptorProtos.ServiceOptions, Builder> implements com.google.protobuf.DescriptorProtos.ServiceOptionsOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_ServiceOptions_descriptor;
}
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_ServiceOptions_fieldAccessorTable;
}
// Construct using com.google.protobuf.DescriptorProtos.ServiceOptions.newBuilder()
private Builder() {
maybeForceBuilderInitialization();
}
private Builder(BuilderParent parent) {
super(parent);
maybeForceBuilderInitialization();
}
private void maybeForceBuilderInitialization() {
if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
getUninterpretedOptionFieldBuilder();
}
}
private static Builder create() {
return new Builder();
}
public Builder clear() {
super.clear();
if (uninterpretedOptionBuilder_ == null) {
uninterpretedOption_ = java.util.Collections.emptyList();
bitField0_ = (bitField0_ & ~0x00000001);
} else {
uninterpretedOptionBuilder_.clear();
}
return this;
}
public Builder clone() {
return create().mergeFrom(buildPartial());
}
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
return com.google.protobuf.DescriptorProtos.ServiceOptions.getDescriptor();
}
public com.google.protobuf.DescriptorProtos.ServiceOptions getDefaultInstanceForType() {
return com.google.protobuf.DescriptorProtos.ServiceOptions.getDefaultInstance();
}
public com.google.protobuf.DescriptorProtos.ServiceOptions build() {
com.google.protobuf.DescriptorProtos.ServiceOptions result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(result);
}
return result;
}
private com.google.protobuf.DescriptorProtos.ServiceOptions buildParsed()
throws com.google.protobuf.InvalidProtocolBufferException {
com.google.protobuf.DescriptorProtos.ServiceOptions result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(
result).asInvalidProtocolBufferException();
}
return result;
}
public com.google.protobuf.DescriptorProtos.ServiceOptions buildPartial() {
com.google.protobuf.DescriptorProtos.ServiceOptions result = new com.google.protobuf.DescriptorProtos.ServiceOptions(this);
int from_bitField0_ = bitField0_;
if (uninterpretedOptionBuilder_ == null) {
if (((bitField0_ & 0x00000001) == 0x00000001)) {
uninterpretedOption_ = java.util.Collections.unmodifiableList(uninterpretedOption_);
bitField0_ = (bitField0_ & ~0x00000001);
}
result.uninterpretedOption_ = uninterpretedOption_;
} else {
result.uninterpretedOption_ = uninterpretedOptionBuilder_.build();
}
onBuilt();
return result;
}
public Builder mergeFrom(com.google.protobuf.Message other) {
if (other instanceof com.google.protobuf.DescriptorProtos.ServiceOptions) {
return mergeFrom((com.google.protobuf.DescriptorProtos.ServiceOptions)other);
} else {
super.mergeFrom(other);
return this;
}
}
public Builder mergeFrom(com.google.protobuf.DescriptorProtos.ServiceOptions other) {
if (other == com.google.protobuf.DescriptorProtos.ServiceOptions.getDefaultInstance()) return this;
if (uninterpretedOptionBuilder_ == null) {
if (!other.uninterpretedOption_.isEmpty()) {
if (uninterpretedOption_.isEmpty()) {
uninterpretedOption_ = other.uninterpretedOption_;
bitField0_ = (bitField0_ & ~0x00000001);
} else {
ensureUninterpretedOptionIsMutable();
uninterpretedOption_.addAll(other.uninterpretedOption_);
}
onChanged();
}
} else {
if (!other.uninterpretedOption_.isEmpty()) {
if (uninterpretedOptionBuilder_.isEmpty()) {
uninterpretedOptionBuilder_.dispose();
uninterpretedOptionBuilder_ = null;
uninterpretedOption_ = other.uninterpretedOption_;
bitField0_ = (bitField0_ & ~0x00000001);
uninterpretedOptionBuilder_ =
com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
getUninterpretedOptionFieldBuilder() : null;
} else {
uninterpretedOptionBuilder_.addAllMessages(other.uninterpretedOption_);
}
}
}
this.mergeExtensionFields(other);
this.mergeUnknownFields(other.getUnknownFields());
return this;
}
public final boolean isInitialized() {
for (int i = 0; i < getUninterpretedOptionCount(); i++) {
if (!getUninterpretedOption(i).isInitialized()) {
return false;
}
}
if (!extensionsAreInitialized()) {
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(
this.getUnknownFields());
while (true) {
int tag = input.readTag();
switch (tag) {
case 0:
this.setUnknownFields(unknownFields.build());
onChanged();
return this;
default: {
if (!parseUnknownField(input, unknownFields,
extensionRegistry, tag)) {
this.setUnknownFields(unknownFields.build());
onChanged();
return this;
}
break;
}
case 7994: {
com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder subBuilder = com.google.protobuf.DescriptorProtos.UninterpretedOption.newBuilder();
input.readMessage(subBuilder, extensionRegistry);
addUninterpretedOption(subBuilder.buildPartial());
break;
}
}
}
}
private int bitField0_;
// repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
private java.util.List<com.google.protobuf.DescriptorProtos.UninterpretedOption> uninterpretedOption_ =
java.util.Collections.emptyList();
private void ensureUninterpretedOptionIsMutable() {
if (!((bitField0_ & 0x00000001) == 0x00000001)) {
uninterpretedOption_ = new java.util.ArrayList<com.google.protobuf.DescriptorProtos.UninterpretedOption>(uninterpretedOption_);
bitField0_ |= 0x00000001;
}
}
private com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.UninterpretedOption, com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder, com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder> uninterpretedOptionBuilder_;
public java.util.List<com.google.protobuf.DescriptorProtos.UninterpretedOption> getUninterpretedOptionList() {
if (uninterpretedOptionBuilder_ == null) {
return java.util.Collections.unmodifiableList(uninterpretedOption_);
} else {
return uninterpretedOptionBuilder_.getMessageList();
}
}
public int getUninterpretedOptionCount() {
if (uninterpretedOptionBuilder_ == null) {
return uninterpretedOption_.size();
} else {
return uninterpretedOptionBuilder_.getCount();
}
}
public com.google.protobuf.DescriptorProtos.UninterpretedOption getUninterpretedOption(int index) {
if (uninterpretedOptionBuilder_ == null) {
return uninterpretedOption_.get(index);
} else {
return uninterpretedOptionBuilder_.getMessage(index);
}
}
public Builder setUninterpretedOption(
int index, com.google.protobuf.DescriptorProtos.UninterpretedOption value) {
if (uninterpretedOptionBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureUninterpretedOptionIsMutable();
uninterpretedOption_.set(index, value);
onChanged();
} else {
uninterpretedOptionBuilder_.setMessage(index, value);
}
return this;
}
public Builder setUninterpretedOption(
int index, com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder builderForValue) {
if (uninterpretedOptionBuilder_ == null) {
ensureUninterpretedOptionIsMutable();
uninterpretedOption_.set(index, builderForValue.build());
onChanged();
} else {
uninterpretedOptionBuilder_.setMessage(index, builderForValue.build());
}
return this;
}
public Builder addUninterpretedOption(com.google.protobuf.DescriptorProtos.UninterpretedOption value) {
if (uninterpretedOptionBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureUninterpretedOptionIsMutable();
uninterpretedOption_.add(value);
onChanged();
} else {
uninterpretedOptionBuilder_.addMessage(value);
}
return this;
}
public Builder addUninterpretedOption(
int index, com.google.protobuf.DescriptorProtos.UninterpretedOption value) {
if (uninterpretedOptionBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureUninterpretedOptionIsMutable();
uninterpretedOption_.add(index, value);
onChanged();
} else {
uninterpretedOptionBuilder_.addMessage(index, value);
}
return this;
}
public Builder addUninterpretedOption(
com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder builderForValue) {
if (uninterpretedOptionBuilder_ == null) {
ensureUninterpretedOptionIsMutable();
uninterpretedOption_.add(builderForValue.build());
onChanged();
} else {
uninterpretedOptionBuilder_.addMessage(builderForValue.build());
}
return this;
}
public Builder addUninterpretedOption(
int index, com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder builderForValue) {
if (uninterpretedOptionBuilder_ == null) {
ensureUninterpretedOptionIsMutable();
uninterpretedOption_.add(index, builderForValue.build());
onChanged();
} else {
uninterpretedOptionBuilder_.addMessage(index, builderForValue.build());
}
return this;
}
public Builder addAllUninterpretedOption(
java.lang.Iterable<? extends com.google.protobuf.DescriptorProtos.UninterpretedOption> values) {
if (uninterpretedOptionBuilder_ == null) {
ensureUninterpretedOptionIsMutable();
super.addAll(values, uninterpretedOption_);
onChanged();
} else {
uninterpretedOptionBuilder_.addAllMessages(values);
}
return this;
}
public Builder clearUninterpretedOption() {
if (uninterpretedOptionBuilder_ == null) {
uninterpretedOption_ = java.util.Collections.emptyList();
bitField0_ = (bitField0_ & ~0x00000001);
onChanged();
} else {
uninterpretedOptionBuilder_.clear();
}
return this;
}
public Builder removeUninterpretedOption(int index) {
if (uninterpretedOptionBuilder_ == null) {
ensureUninterpretedOptionIsMutable();
uninterpretedOption_.remove(index);
onChanged();
} else {
uninterpretedOptionBuilder_.remove(index);
}
return this;
}
public com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder getUninterpretedOptionBuilder(
int index) {
return getUninterpretedOptionFieldBuilder().getBuilder(index);
}
public com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder getUninterpretedOptionOrBuilder(
int index) {
if (uninterpretedOptionBuilder_ == null) {
return uninterpretedOption_.get(index); } else {
return uninterpretedOptionBuilder_.getMessageOrBuilder(index);
}
}
public java.util.List<? extends com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder>
getUninterpretedOptionOrBuilderList() {
if (uninterpretedOptionBuilder_ != null) {
return uninterpretedOptionBuilder_.getMessageOrBuilderList();
} else {
return java.util.Collections.unmodifiableList(uninterpretedOption_);
}
}
public com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder addUninterpretedOptionBuilder() {
return getUninterpretedOptionFieldBuilder().addBuilder(
com.google.protobuf.DescriptorProtos.UninterpretedOption.getDefaultInstance());
}
public com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder addUninterpretedOptionBuilder(
int index) {
return getUninterpretedOptionFieldBuilder().addBuilder(
index, com.google.protobuf.DescriptorProtos.UninterpretedOption.getDefaultInstance());
}
public java.util.List<com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder>
getUninterpretedOptionBuilderList() {
return getUninterpretedOptionFieldBuilder().getBuilderList();
}
private com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.UninterpretedOption, com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder, com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder>
getUninterpretedOptionFieldBuilder() {
if (uninterpretedOptionBuilder_ == null) {
uninterpretedOptionBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.UninterpretedOption, com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder, com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder>(
uninterpretedOption_,
((bitField0_ & 0x00000001) == 0x00000001),
getParentForChildren(),
isClean());
uninterpretedOption_ = null;
}
return uninterpretedOptionBuilder_;
}
// @@protoc_insertion_point(builder_scope:google.protobuf.ServiceOptions)
}
static {
defaultInstance = new ServiceOptions(true);
defaultInstance.initFields();
}
// @@protoc_insertion_point(class_scope:google.protobuf.ServiceOptions)
}
public interface MethodOptionsOrBuilder extends
com.google.protobuf.GeneratedMessage.
ExtendableMessageOrBuilder<MethodOptions> {
// repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
java.util.List<com.google.protobuf.DescriptorProtos.UninterpretedOption>
getUninterpretedOptionList();
com.google.protobuf.DescriptorProtos.UninterpretedOption getUninterpretedOption(int index);
int getUninterpretedOptionCount();
java.util.List<? extends com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder>
getUninterpretedOptionOrBuilderList();
com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder getUninterpretedOptionOrBuilder(
int index);
}
public static final class MethodOptions extends
com.google.protobuf.GeneratedMessage.ExtendableMessage<
MethodOptions> implements MethodOptionsOrBuilder {
// Use MethodOptions.newBuilder() to construct.
private MethodOptions(Builder builder) {
super(builder);
}
private MethodOptions(boolean noInit) {}
private static final MethodOptions defaultInstance;
public static MethodOptions getDefaultInstance() {
return defaultInstance;
}
public MethodOptions getDefaultInstanceForType() {
return defaultInstance;
}
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_MethodOptions_descriptor;
}
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_MethodOptions_fieldAccessorTable;
}
// repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
public static final int UNINTERPRETED_OPTION_FIELD_NUMBER = 999;
private java.util.List<com.google.protobuf.DescriptorProtos.UninterpretedOption> uninterpretedOption_;
public java.util.List<com.google.protobuf.DescriptorProtos.UninterpretedOption> getUninterpretedOptionList() {
return uninterpretedOption_;
}
public java.util.List<? extends com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder>
getUninterpretedOptionOrBuilderList() {
return uninterpretedOption_;
}
public int getUninterpretedOptionCount() {
return uninterpretedOption_.size();
}
public com.google.protobuf.DescriptorProtos.UninterpretedOption getUninterpretedOption(int index) {
return uninterpretedOption_.get(index);
}
public com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder getUninterpretedOptionOrBuilder(
int index) {
return uninterpretedOption_.get(index);
}
private void initFields() {
uninterpretedOption_ = 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 < getUninterpretedOptionCount(); i++) {
if (!getUninterpretedOption(i).isInitialized()) {
memoizedIsInitialized = 0;
return false;
}
}
if (!extensionsAreInitialized()) {
memoizedIsInitialized = 0;
return false;
}
memoizedIsInitialized = 1;
return true;
}
public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException {
getSerializedSize();
com.google.protobuf.GeneratedMessage
.ExtendableMessage<com.google.protobuf.DescriptorProtos.MethodOptions>.ExtensionWriter extensionWriter =
newExtensionWriter();
for (int i = 0; i < uninterpretedOption_.size(); i++) {
output.writeMessage(999, uninterpretedOption_.get(i));
}
extensionWriter.writeUntil(536870912, output);
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 < uninterpretedOption_.size(); i++) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(999, uninterpretedOption_.get(i));
}
size += extensionsSerializedSize();
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 com.google.protobuf.DescriptorProtos.MethodOptions parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.MethodOptions parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.MethodOptions parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.MethodOptions parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.MethodOptions parseFrom(java.io.InputStream input)
throws java.io.IOException {
return newBuilder().mergeFrom(input).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.MethodOptions parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return newBuilder().mergeFrom(input, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.MethodOptions parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
Builder builder = newBuilder();
if (builder.mergeDelimitedFrom(input)) {
return builder.buildParsed();
} else {
return null;
}
}
public static com.google.protobuf.DescriptorProtos.MethodOptions 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 com.google.protobuf.DescriptorProtos.MethodOptions parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return newBuilder().mergeFrom(input).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.MethodOptions 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(com.google.protobuf.DescriptorProtos.MethodOptions 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.ExtendableBuilder<
com.google.protobuf.DescriptorProtos.MethodOptions, Builder> implements com.google.protobuf.DescriptorProtos.MethodOptionsOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_MethodOptions_descriptor;
}
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_MethodOptions_fieldAccessorTable;
}
// Construct using com.google.protobuf.DescriptorProtos.MethodOptions.newBuilder()
private Builder() {
maybeForceBuilderInitialization();
}
private Builder(BuilderParent parent) {
super(parent);
maybeForceBuilderInitialization();
}
private void maybeForceBuilderInitialization() {
if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
getUninterpretedOptionFieldBuilder();
}
}
private static Builder create() {
return new Builder();
}
public Builder clear() {
super.clear();
if (uninterpretedOptionBuilder_ == null) {
uninterpretedOption_ = java.util.Collections.emptyList();
bitField0_ = (bitField0_ & ~0x00000001);
} else {
uninterpretedOptionBuilder_.clear();
}
return this;
}
public Builder clone() {
return create().mergeFrom(buildPartial());
}
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
return com.google.protobuf.DescriptorProtos.MethodOptions.getDescriptor();
}
public com.google.protobuf.DescriptorProtos.MethodOptions getDefaultInstanceForType() {
return com.google.protobuf.DescriptorProtos.MethodOptions.getDefaultInstance();
}
public com.google.protobuf.DescriptorProtos.MethodOptions build() {
com.google.protobuf.DescriptorProtos.MethodOptions result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(result);
}
return result;
}
private com.google.protobuf.DescriptorProtos.MethodOptions buildParsed()
throws com.google.protobuf.InvalidProtocolBufferException {
com.google.protobuf.DescriptorProtos.MethodOptions result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(
result).asInvalidProtocolBufferException();
}
return result;
}
public com.google.protobuf.DescriptorProtos.MethodOptions buildPartial() {
com.google.protobuf.DescriptorProtos.MethodOptions result = new com.google.protobuf.DescriptorProtos.MethodOptions(this);
int from_bitField0_ = bitField0_;
if (uninterpretedOptionBuilder_ == null) {
if (((bitField0_ & 0x00000001) == 0x00000001)) {
uninterpretedOption_ = java.util.Collections.unmodifiableList(uninterpretedOption_);
bitField0_ = (bitField0_ & ~0x00000001);
}
result.uninterpretedOption_ = uninterpretedOption_;
} else {
result.uninterpretedOption_ = uninterpretedOptionBuilder_.build();
}
onBuilt();
return result;
}
public Builder mergeFrom(com.google.protobuf.Message other) {
if (other instanceof com.google.protobuf.DescriptorProtos.MethodOptions) {
return mergeFrom((com.google.protobuf.DescriptorProtos.MethodOptions)other);
} else {
super.mergeFrom(other);
return this;
}
}
public Builder mergeFrom(com.google.protobuf.DescriptorProtos.MethodOptions other) {
if (other == com.google.protobuf.DescriptorProtos.MethodOptions.getDefaultInstance()) return this;
if (uninterpretedOptionBuilder_ == null) {
if (!other.uninterpretedOption_.isEmpty()) {
if (uninterpretedOption_.isEmpty()) {
uninterpretedOption_ = other.uninterpretedOption_;
bitField0_ = (bitField0_ & ~0x00000001);
} else {
ensureUninterpretedOptionIsMutable();
uninterpretedOption_.addAll(other.uninterpretedOption_);
}
onChanged();
}
} else {
if (!other.uninterpretedOption_.isEmpty()) {
if (uninterpretedOptionBuilder_.isEmpty()) {
uninterpretedOptionBuilder_.dispose();
uninterpretedOptionBuilder_ = null;
uninterpretedOption_ = other.uninterpretedOption_;
bitField0_ = (bitField0_ & ~0x00000001);
uninterpretedOptionBuilder_ =
com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
getUninterpretedOptionFieldBuilder() : null;
} else {
uninterpretedOptionBuilder_.addAllMessages(other.uninterpretedOption_);
}
}
}
this.mergeExtensionFields(other);
this.mergeUnknownFields(other.getUnknownFields());
return this;
}
public final boolean isInitialized() {
for (int i = 0; i < getUninterpretedOptionCount(); i++) {
if (!getUninterpretedOption(i).isInitialized()) {
return false;
}
}
if (!extensionsAreInitialized()) {
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(
this.getUnknownFields());
while (true) {
int tag = input.readTag();
switch (tag) {
case 0:
this.setUnknownFields(unknownFields.build());
onChanged();
return this;
default: {
if (!parseUnknownField(input, unknownFields,
extensionRegistry, tag)) {
this.setUnknownFields(unknownFields.build());
onChanged();
return this;
}
break;
}
case 7994: {
com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder subBuilder = com.google.protobuf.DescriptorProtos.UninterpretedOption.newBuilder();
input.readMessage(subBuilder, extensionRegistry);
addUninterpretedOption(subBuilder.buildPartial());
break;
}
}
}
}
private int bitField0_;
// repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
private java.util.List<com.google.protobuf.DescriptorProtos.UninterpretedOption> uninterpretedOption_ =
java.util.Collections.emptyList();
private void ensureUninterpretedOptionIsMutable() {
if (!((bitField0_ & 0x00000001) == 0x00000001)) {
uninterpretedOption_ = new java.util.ArrayList<com.google.protobuf.DescriptorProtos.UninterpretedOption>(uninterpretedOption_);
bitField0_ |= 0x00000001;
}
}
private com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.UninterpretedOption, com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder, com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder> uninterpretedOptionBuilder_;
public java.util.List<com.google.protobuf.DescriptorProtos.UninterpretedOption> getUninterpretedOptionList() {
if (uninterpretedOptionBuilder_ == null) {
return java.util.Collections.unmodifiableList(uninterpretedOption_);
} else {
return uninterpretedOptionBuilder_.getMessageList();
}
}
public int getUninterpretedOptionCount() {
if (uninterpretedOptionBuilder_ == null) {
return uninterpretedOption_.size();
} else {
return uninterpretedOptionBuilder_.getCount();
}
}
public com.google.protobuf.DescriptorProtos.UninterpretedOption getUninterpretedOption(int index) {
if (uninterpretedOptionBuilder_ == null) {
return uninterpretedOption_.get(index);
} else {
return uninterpretedOptionBuilder_.getMessage(index);
}
}
public Builder setUninterpretedOption(
int index, com.google.protobuf.DescriptorProtos.UninterpretedOption value) {
if (uninterpretedOptionBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureUninterpretedOptionIsMutable();
uninterpretedOption_.set(index, value);
onChanged();
} else {
uninterpretedOptionBuilder_.setMessage(index, value);
}
return this;
}
public Builder setUninterpretedOption(
int index, com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder builderForValue) {
if (uninterpretedOptionBuilder_ == null) {
ensureUninterpretedOptionIsMutable();
uninterpretedOption_.set(index, builderForValue.build());
onChanged();
} else {
uninterpretedOptionBuilder_.setMessage(index, builderForValue.build());
}
return this;
}
public Builder addUninterpretedOption(com.google.protobuf.DescriptorProtos.UninterpretedOption value) {
if (uninterpretedOptionBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureUninterpretedOptionIsMutable();
uninterpretedOption_.add(value);
onChanged();
} else {
uninterpretedOptionBuilder_.addMessage(value);
}
return this;
}
public Builder addUninterpretedOption(
int index, com.google.protobuf.DescriptorProtos.UninterpretedOption value) {
if (uninterpretedOptionBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureUninterpretedOptionIsMutable();
uninterpretedOption_.add(index, value);
onChanged();
} else {
uninterpretedOptionBuilder_.addMessage(index, value);
}
return this;
}
public Builder addUninterpretedOption(
com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder builderForValue) {
if (uninterpretedOptionBuilder_ == null) {
ensureUninterpretedOptionIsMutable();
uninterpretedOption_.add(builderForValue.build());
onChanged();
} else {
uninterpretedOptionBuilder_.addMessage(builderForValue.build());
}
return this;
}
public Builder addUninterpretedOption(
int index, com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder builderForValue) {
if (uninterpretedOptionBuilder_ == null) {
ensureUninterpretedOptionIsMutable();
uninterpretedOption_.add(index, builderForValue.build());
onChanged();
} else {
uninterpretedOptionBuilder_.addMessage(index, builderForValue.build());
}
return this;
}
public Builder addAllUninterpretedOption(
java.lang.Iterable<? extends com.google.protobuf.DescriptorProtos.UninterpretedOption> values) {
if (uninterpretedOptionBuilder_ == null) {
ensureUninterpretedOptionIsMutable();
super.addAll(values, uninterpretedOption_);
onChanged();
} else {
uninterpretedOptionBuilder_.addAllMessages(values);
}
return this;
}
public Builder clearUninterpretedOption() {
if (uninterpretedOptionBuilder_ == null) {
uninterpretedOption_ = java.util.Collections.emptyList();
bitField0_ = (bitField0_ & ~0x00000001);
onChanged();
} else {
uninterpretedOptionBuilder_.clear();
}
return this;
}
public Builder removeUninterpretedOption(int index) {
if (uninterpretedOptionBuilder_ == null) {
ensureUninterpretedOptionIsMutable();
uninterpretedOption_.remove(index);
onChanged();
} else {
uninterpretedOptionBuilder_.remove(index);
}
return this;
}
public com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder getUninterpretedOptionBuilder(
int index) {
return getUninterpretedOptionFieldBuilder().getBuilder(index);
}
public com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder getUninterpretedOptionOrBuilder(
int index) {
if (uninterpretedOptionBuilder_ == null) {
return uninterpretedOption_.get(index); } else {
return uninterpretedOptionBuilder_.getMessageOrBuilder(index);
}
}
public java.util.List<? extends com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder>
getUninterpretedOptionOrBuilderList() {
if (uninterpretedOptionBuilder_ != null) {
return uninterpretedOptionBuilder_.getMessageOrBuilderList();
} else {
return java.util.Collections.unmodifiableList(uninterpretedOption_);
}
}
public com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder addUninterpretedOptionBuilder() {
return getUninterpretedOptionFieldBuilder().addBuilder(
com.google.protobuf.DescriptorProtos.UninterpretedOption.getDefaultInstance());
}
public com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder addUninterpretedOptionBuilder(
int index) {
return getUninterpretedOptionFieldBuilder().addBuilder(
index, com.google.protobuf.DescriptorProtos.UninterpretedOption.getDefaultInstance());
}
public java.util.List<com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder>
getUninterpretedOptionBuilderList() {
return getUninterpretedOptionFieldBuilder().getBuilderList();
}
private com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.UninterpretedOption, com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder, com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder>
getUninterpretedOptionFieldBuilder() {
if (uninterpretedOptionBuilder_ == null) {
uninterpretedOptionBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.UninterpretedOption, com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder, com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder>(
uninterpretedOption_,
((bitField0_ & 0x00000001) == 0x00000001),
getParentForChildren(),
isClean());
uninterpretedOption_ = null;
}
return uninterpretedOptionBuilder_;
}
// @@protoc_insertion_point(builder_scope:google.protobuf.MethodOptions)
}
static {
defaultInstance = new MethodOptions(true);
defaultInstance.initFields();
}
// @@protoc_insertion_point(class_scope:google.protobuf.MethodOptions)
}
public interface UninterpretedOptionOrBuilder
extends com.google.protobuf.MessageOrBuilder {
// repeated .google.protobuf.UninterpretedOption.NamePart name = 2;
java.util.List<com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart>
getNameList();
com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart getName(int index);
int getNameCount();
java.util.List<? extends com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePartOrBuilder>
getNameOrBuilderList();
com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePartOrBuilder getNameOrBuilder(
int index);
// optional string identifier_value = 3;
boolean hasIdentifierValue();
String getIdentifierValue();
// optional uint64 positive_int_value = 4;
boolean hasPositiveIntValue();
long getPositiveIntValue();
// optional int64 negative_int_value = 5;
boolean hasNegativeIntValue();
long getNegativeIntValue();
// optional double double_value = 6;
boolean hasDoubleValue();
double getDoubleValue();
// optional bytes string_value = 7;
boolean hasStringValue();
com.google.protobuf.ByteString getStringValue();
// optional string aggregate_value = 8;
boolean hasAggregateValue();
String getAggregateValue();
}
public static final class UninterpretedOption extends
com.google.protobuf.GeneratedMessage
implements UninterpretedOptionOrBuilder {
// Use UninterpretedOption.newBuilder() to construct.
private UninterpretedOption(Builder builder) {
super(builder);
}
private UninterpretedOption(boolean noInit) {}
private static final UninterpretedOption defaultInstance;
public static UninterpretedOption getDefaultInstance() {
return defaultInstance;
}
public UninterpretedOption getDefaultInstanceForType() {
return defaultInstance;
}
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_UninterpretedOption_descriptor;
}
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_UninterpretedOption_fieldAccessorTable;
}
public interface NamePartOrBuilder
extends com.google.protobuf.MessageOrBuilder {
// required string name_part = 1;
boolean hasNamePart();
String getNamePart();
// required bool is_extension = 2;
boolean hasIsExtension();
boolean getIsExtension();
}
public static final class NamePart extends
com.google.protobuf.GeneratedMessage
implements NamePartOrBuilder {
// Use NamePart.newBuilder() to construct.
private NamePart(Builder builder) {
super(builder);
}
private NamePart(boolean noInit) {}
private static final NamePart defaultInstance;
public static NamePart getDefaultInstance() {
return defaultInstance;
}
public NamePart getDefaultInstanceForType() {
return defaultInstance;
}
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_UninterpretedOption_NamePart_descriptor;
}
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_UninterpretedOption_NamePart_fieldAccessorTable;
}
private int bitField0_;
// required string name_part = 1;
public static final int NAME_PART_FIELD_NUMBER = 1;
private java.lang.Object namePart_;
public boolean hasNamePart() {
return ((bitField0_ & 0x00000001) == 0x00000001);
}
public String getNamePart() {
java.lang.Object ref = namePart_;
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)) {
namePart_ = s;
}
return s;
}
}
private com.google.protobuf.ByteString getNamePartBytes() {
java.lang.Object ref = namePart_;
if (ref instanceof String) {
com.google.protobuf.ByteString b =
com.google.protobuf.ByteString.copyFromUtf8((String) ref);
namePart_ = b;
return b;
} else {
return (com.google.protobuf.ByteString) ref;
}
}
// required bool is_extension = 2;
public static final int IS_EXTENSION_FIELD_NUMBER = 2;
private boolean isExtension_;
public boolean hasIsExtension() {
return ((bitField0_ & 0x00000002) == 0x00000002);
}
public boolean getIsExtension() {
return isExtension_;
}
private void initFields() {
namePart_ = "";
isExtension_ = false;
}
private byte memoizedIsInitialized = -1;
public final boolean isInitialized() {
byte isInitialized = memoizedIsInitialized;
if (isInitialized != -1) return isInitialized == 1;
if (!hasNamePart()) {
memoizedIsInitialized = 0;
return false;
}
if (!hasIsExtension()) {
memoizedIsInitialized = 0;
return false;
}
memoizedIsInitialized = 1;
return true;
}
public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException {
getSerializedSize();
if (((bitField0_ & 0x00000001) == 0x00000001)) {
output.writeBytes(1, getNamePartBytes());
}
if (((bitField0_ & 0x00000002) == 0x00000002)) {
output.writeBool(2, isExtension_);
}
getUnknownFields().writeTo(output);
}
private int memoizedSerializedSize = -1;
public int getSerializedSize() {
int size = memoizedSerializedSize;
if (size != -1) return size;
size = 0;
if (((bitField0_ & 0x00000001) == 0x00000001)) {
size += com.google.protobuf.CodedOutputStream
.computeBytesSize(1, getNamePartBytes());
}
if (((bitField0_ & 0x00000002) == 0x00000002)) {
size += com.google.protobuf.CodedOutputStream
.computeBoolSize(2, isExtension_);
}
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 com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart parseFrom(java.io.InputStream input)
throws java.io.IOException {
return newBuilder().mergeFrom(input).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return newBuilder().mergeFrom(input, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
Builder builder = newBuilder();
if (builder.mergeDelimitedFrom(input)) {
return builder.buildParsed();
} else {
return null;
}
}
public static com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart 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 com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return newBuilder().mergeFrom(input).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart 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(com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart 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 com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePartOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_UninterpretedOption_NamePart_descriptor;
}
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_UninterpretedOption_NamePart_fieldAccessorTable;
}
// Construct using com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart.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();
namePart_ = "";
bitField0_ = (bitField0_ & ~0x00000001);
isExtension_ = false;
bitField0_ = (bitField0_ & ~0x00000002);
return this;
}
public Builder clone() {
return create().mergeFrom(buildPartial());
}
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
return com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart.getDescriptor();
}
public com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart getDefaultInstanceForType() {
return com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart.getDefaultInstance();
}
public com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart build() {
com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(result);
}
return result;
}
private com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart buildParsed()
throws com.google.protobuf.InvalidProtocolBufferException {
com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(
result).asInvalidProtocolBufferException();
}
return result;
}
public com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart buildPartial() {
com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart result = new com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart(this);
int from_bitField0_ = bitField0_;
int to_bitField0_ = 0;
if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
to_bitField0_ |= 0x00000001;
}
result.namePart_ = namePart_;
if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
to_bitField0_ |= 0x00000002;
}
result.isExtension_ = isExtension_;
result.bitField0_ = to_bitField0_;
onBuilt();
return result;
}
public Builder mergeFrom(com.google.protobuf.Message other) {
if (other instanceof com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart) {
return mergeFrom((com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart)other);
} else {
super.mergeFrom(other);
return this;
}
}
public Builder mergeFrom(com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart other) {
if (other == com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart.getDefaultInstance()) return this;
if (other.hasNamePart()) {
setNamePart(other.getNamePart());
}
if (other.hasIsExtension()) {
setIsExtension(other.getIsExtension());
}
this.mergeUnknownFields(other.getUnknownFields());
return this;
}
public final boolean isInitialized() {
if (!hasNamePart()) {
return false;
}
if (!hasIsExtension()) {
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(
this.getUnknownFields());
while (true) {
int tag = input.readTag();
switch (tag) {
case 0:
this.setUnknownFields(unknownFields.build());
onChanged();
return this;
default: {
if (!parseUnknownField(input, unknownFields,
extensionRegistry, tag)) {
this.setUnknownFields(unknownFields.build());
onChanged();
return this;
}
break;
}
case 10: {
bitField0_ |= 0x00000001;
namePart_ = input.readBytes();
break;
}
case 16: {
bitField0_ |= 0x00000002;
isExtension_ = input.readBool();
break;
}
}
}
}
private int bitField0_;
// required string name_part = 1;
private java.lang.Object namePart_ = "";
public boolean hasNamePart() {
return ((bitField0_ & 0x00000001) == 0x00000001);
}
public String getNamePart() {
java.lang.Object ref = namePart_;
if (!(ref instanceof String)) {
String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
namePart_ = s;
return s;
} else {
return (String) ref;
}
}
public Builder setNamePart(String value) {
if (value == null) {
throw new NullPointerException();
}
bitField0_ |= 0x00000001;
namePart_ = value;
onChanged();
return this;
}
public Builder clearNamePart() {
bitField0_ = (bitField0_ & ~0x00000001);
namePart_ = getDefaultInstance().getNamePart();
onChanged();
return this;
}
void setNamePart(com.google.protobuf.ByteString value) {
bitField0_ |= 0x00000001;
namePart_ = value;
onChanged();
}
// required bool is_extension = 2;
private boolean isExtension_ ;
public boolean hasIsExtension() {
return ((bitField0_ & 0x00000002) == 0x00000002);
}
public boolean getIsExtension() {
return isExtension_;
}
public Builder setIsExtension(boolean value) {
bitField0_ |= 0x00000002;
isExtension_ = value;
onChanged();
return this;
}
public Builder clearIsExtension() {
bitField0_ = (bitField0_ & ~0x00000002);
isExtension_ = false;
onChanged();
return this;
}
// @@protoc_insertion_point(builder_scope:google.protobuf.UninterpretedOption.NamePart)
}
static {
defaultInstance = new NamePart(true);
defaultInstance.initFields();
}
// @@protoc_insertion_point(class_scope:google.protobuf.UninterpretedOption.NamePart)
}
private int bitField0_;
// repeated .google.protobuf.UninterpretedOption.NamePart name = 2;
public static final int NAME_FIELD_NUMBER = 2;
private java.util.List<com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart> name_;
public java.util.List<com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart> getNameList() {
return name_;
}
public java.util.List<? extends com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePartOrBuilder>
getNameOrBuilderList() {
return name_;
}
public int getNameCount() {
return name_.size();
}
public com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart getName(int index) {
return name_.get(index);
}
public com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePartOrBuilder getNameOrBuilder(
int index) {
return name_.get(index);
}
// optional string identifier_value = 3;
public static final int IDENTIFIER_VALUE_FIELD_NUMBER = 3;
private java.lang.Object identifierValue_;
public boolean hasIdentifierValue() {
return ((bitField0_ & 0x00000001) == 0x00000001);
}
public String getIdentifierValue() {
java.lang.Object ref = identifierValue_;
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)) {
identifierValue_ = s;
}
return s;
}
}
private com.google.protobuf.ByteString getIdentifierValueBytes() {
java.lang.Object ref = identifierValue_;
if (ref instanceof String) {
com.google.protobuf.ByteString b =
com.google.protobuf.ByteString.copyFromUtf8((String) ref);
identifierValue_ = b;
return b;
} else {
return (com.google.protobuf.ByteString) ref;
}
}
// optional uint64 positive_int_value = 4;
public static final int POSITIVE_INT_VALUE_FIELD_NUMBER = 4;
private long positiveIntValue_;
public boolean hasPositiveIntValue() {
return ((bitField0_ & 0x00000002) == 0x00000002);
}
public long getPositiveIntValue() {
return positiveIntValue_;
}
// optional int64 negative_int_value = 5;
public static final int NEGATIVE_INT_VALUE_FIELD_NUMBER = 5;
private long negativeIntValue_;
public boolean hasNegativeIntValue() {
return ((bitField0_ & 0x00000004) == 0x00000004);
}
public long getNegativeIntValue() {
return negativeIntValue_;
}
// optional double double_value = 6;
public static final int DOUBLE_VALUE_FIELD_NUMBER = 6;
private double doubleValue_;
public boolean hasDoubleValue() {
return ((bitField0_ & 0x00000008) == 0x00000008);
}
public double getDoubleValue() {
return doubleValue_;
}
// optional bytes string_value = 7;
public static final int STRING_VALUE_FIELD_NUMBER = 7;
private com.google.protobuf.ByteString stringValue_;
public boolean hasStringValue() {
return ((bitField0_ & 0x00000010) == 0x00000010);
}
public com.google.protobuf.ByteString getStringValue() {
return stringValue_;
}
// optional string aggregate_value = 8;
public static final int AGGREGATE_VALUE_FIELD_NUMBER = 8;
private java.lang.Object aggregateValue_;
public boolean hasAggregateValue() {
return ((bitField0_ & 0x00000020) == 0x00000020);
}
public String getAggregateValue() {
java.lang.Object ref = aggregateValue_;
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)) {
aggregateValue_ = s;
}
return s;
}
}
private com.google.protobuf.ByteString getAggregateValueBytes() {
java.lang.Object ref = aggregateValue_;
if (ref instanceof String) {
com.google.protobuf.ByteString b =
com.google.protobuf.ByteString.copyFromUtf8((String) ref);
aggregateValue_ = b;
return b;
} else {
return (com.google.protobuf.ByteString) ref;
}
}
private void initFields() {
name_ = java.util.Collections.emptyList();
identifierValue_ = "";
positiveIntValue_ = 0L;
negativeIntValue_ = 0L;
doubleValue_ = 0D;
stringValue_ = com.google.protobuf.ByteString.EMPTY;
aggregateValue_ = "";
}
private byte memoizedIsInitialized = -1;
public final boolean isInitialized() {
byte isInitialized = memoizedIsInitialized;
if (isInitialized != -1) return isInitialized == 1;
for (int i = 0; i < getNameCount(); i++) {
if (!getName(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 < name_.size(); i++) {
output.writeMessage(2, name_.get(i));
}
if (((bitField0_ & 0x00000001) == 0x00000001)) {
output.writeBytes(3, getIdentifierValueBytes());
}
if (((bitField0_ & 0x00000002) == 0x00000002)) {
output.writeUInt64(4, positiveIntValue_);
}
if (((bitField0_ & 0x00000004) == 0x00000004)) {
output.writeInt64(5, negativeIntValue_);
}
if (((bitField0_ & 0x00000008) == 0x00000008)) {
output.writeDouble(6, doubleValue_);
}
if (((bitField0_ & 0x00000010) == 0x00000010)) {
output.writeBytes(7, stringValue_);
}
if (((bitField0_ & 0x00000020) == 0x00000020)) {
output.writeBytes(8, getAggregateValueBytes());
}
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 < name_.size(); i++) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(2, name_.get(i));
}
if (((bitField0_ & 0x00000001) == 0x00000001)) {
size += com.google.protobuf.CodedOutputStream
.computeBytesSize(3, getIdentifierValueBytes());
}
if (((bitField0_ & 0x00000002) == 0x00000002)) {
size += com.google.protobuf.CodedOutputStream
.computeUInt64Size(4, positiveIntValue_);
}
if (((bitField0_ & 0x00000004) == 0x00000004)) {
size += com.google.protobuf.CodedOutputStream
.computeInt64Size(5, negativeIntValue_);
}
if (((bitField0_ & 0x00000008) == 0x00000008)) {
size += com.google.protobuf.CodedOutputStream
.computeDoubleSize(6, doubleValue_);
}
if (((bitField0_ & 0x00000010) == 0x00000010)) {
size += com.google.protobuf.CodedOutputStream
.computeBytesSize(7, stringValue_);
}
if (((bitField0_ & 0x00000020) == 0x00000020)) {
size += com.google.protobuf.CodedOutputStream
.computeBytesSize(8, getAggregateValueBytes());
}
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 com.google.protobuf.DescriptorProtos.UninterpretedOption parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.UninterpretedOption parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.UninterpretedOption parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.UninterpretedOption parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.UninterpretedOption parseFrom(java.io.InputStream input)
throws java.io.IOException {
return newBuilder().mergeFrom(input).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.UninterpretedOption parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return newBuilder().mergeFrom(input, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.UninterpretedOption parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
Builder builder = newBuilder();
if (builder.mergeDelimitedFrom(input)) {
return builder.buildParsed();
} else {
return null;
}
}
public static com.google.protobuf.DescriptorProtos.UninterpretedOption 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 com.google.protobuf.DescriptorProtos.UninterpretedOption parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return newBuilder().mergeFrom(input).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.UninterpretedOption 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(com.google.protobuf.DescriptorProtos.UninterpretedOption 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 com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_UninterpretedOption_descriptor;
}
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_UninterpretedOption_fieldAccessorTable;
}
// Construct using com.google.protobuf.DescriptorProtos.UninterpretedOption.newBuilder()
private Builder() {
maybeForceBuilderInitialization();
}
private Builder(BuilderParent parent) {
super(parent);
maybeForceBuilderInitialization();
}
private void maybeForceBuilderInitialization() {
if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
getNameFieldBuilder();
}
}
private static Builder create() {
return new Builder();
}
public Builder clear() {
super.clear();
if (nameBuilder_ == null) {
name_ = java.util.Collections.emptyList();
bitField0_ = (bitField0_ & ~0x00000001);
} else {
nameBuilder_.clear();
}
identifierValue_ = "";
bitField0_ = (bitField0_ & ~0x00000002);
positiveIntValue_ = 0L;
bitField0_ = (bitField0_ & ~0x00000004);
negativeIntValue_ = 0L;
bitField0_ = (bitField0_ & ~0x00000008);
doubleValue_ = 0D;
bitField0_ = (bitField0_ & ~0x00000010);
stringValue_ = com.google.protobuf.ByteString.EMPTY;
bitField0_ = (bitField0_ & ~0x00000020);
aggregateValue_ = "";
bitField0_ = (bitField0_ & ~0x00000040);
return this;
}
public Builder clone() {
return create().mergeFrom(buildPartial());
}
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
return com.google.protobuf.DescriptorProtos.UninterpretedOption.getDescriptor();
}
public com.google.protobuf.DescriptorProtos.UninterpretedOption getDefaultInstanceForType() {
return com.google.protobuf.DescriptorProtos.UninterpretedOption.getDefaultInstance();
}
public com.google.protobuf.DescriptorProtos.UninterpretedOption build() {
com.google.protobuf.DescriptorProtos.UninterpretedOption result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(result);
}
return result;
}
private com.google.protobuf.DescriptorProtos.UninterpretedOption buildParsed()
throws com.google.protobuf.InvalidProtocolBufferException {
com.google.protobuf.DescriptorProtos.UninterpretedOption result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(
result).asInvalidProtocolBufferException();
}
return result;
}
public com.google.protobuf.DescriptorProtos.UninterpretedOption buildPartial() {
com.google.protobuf.DescriptorProtos.UninterpretedOption result = new com.google.protobuf.DescriptorProtos.UninterpretedOption(this);
int from_bitField0_ = bitField0_;
int to_bitField0_ = 0;
if (nameBuilder_ == null) {
if (((bitField0_ & 0x00000001) == 0x00000001)) {
name_ = java.util.Collections.unmodifiableList(name_);
bitField0_ = (bitField0_ & ~0x00000001);
}
result.name_ = name_;
} else {
result.name_ = nameBuilder_.build();
}
if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
to_bitField0_ |= 0x00000001;
}
result.identifierValue_ = identifierValue_;
if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
to_bitField0_ |= 0x00000002;
}
result.positiveIntValue_ = positiveIntValue_;
if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
to_bitField0_ |= 0x00000004;
}
result.negativeIntValue_ = negativeIntValue_;
if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
to_bitField0_ |= 0x00000008;
}
result.doubleValue_ = doubleValue_;
if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
to_bitField0_ |= 0x00000010;
}
result.stringValue_ = stringValue_;
if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
to_bitField0_ |= 0x00000020;
}
result.aggregateValue_ = aggregateValue_;
result.bitField0_ = to_bitField0_;
onBuilt();
return result;
}
public Builder mergeFrom(com.google.protobuf.Message other) {
if (other instanceof com.google.protobuf.DescriptorProtos.UninterpretedOption) {
return mergeFrom((com.google.protobuf.DescriptorProtos.UninterpretedOption)other);
} else {
super.mergeFrom(other);
return this;
}
}
public Builder mergeFrom(com.google.protobuf.DescriptorProtos.UninterpretedOption other) {
if (other == com.google.protobuf.DescriptorProtos.UninterpretedOption.getDefaultInstance()) return this;
if (nameBuilder_ == null) {
if (!other.name_.isEmpty()) {
if (name_.isEmpty()) {
name_ = other.name_;
bitField0_ = (bitField0_ & ~0x00000001);
} else {
ensureNameIsMutable();
name_.addAll(other.name_);
}
onChanged();
}
} else {
if (!other.name_.isEmpty()) {
if (nameBuilder_.isEmpty()) {
nameBuilder_.dispose();
nameBuilder_ = null;
name_ = other.name_;
bitField0_ = (bitField0_ & ~0x00000001);
nameBuilder_ =
com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
getNameFieldBuilder() : null;
} else {
nameBuilder_.addAllMessages(other.name_);
}
}
}
if (other.hasIdentifierValue()) {
setIdentifierValue(other.getIdentifierValue());
}
if (other.hasPositiveIntValue()) {
setPositiveIntValue(other.getPositiveIntValue());
}
if (other.hasNegativeIntValue()) {
setNegativeIntValue(other.getNegativeIntValue());
}
if (other.hasDoubleValue()) {
setDoubleValue(other.getDoubleValue());
}
if (other.hasStringValue()) {
setStringValue(other.getStringValue());
}
if (other.hasAggregateValue()) {
setAggregateValue(other.getAggregateValue());
}
this.mergeUnknownFields(other.getUnknownFields());
return this;
}
public final boolean isInitialized() {
for (int i = 0; i < getNameCount(); i++) {
if (!getName(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(
this.getUnknownFields());
while (true) {
int tag = input.readTag();
switch (tag) {
case 0:
this.setUnknownFields(unknownFields.build());
onChanged();
return this;
default: {
if (!parseUnknownField(input, unknownFields,
extensionRegistry, tag)) {
this.setUnknownFields(unknownFields.build());
onChanged();
return this;
}
break;
}
case 18: {
com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart.Builder subBuilder = com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart.newBuilder();
input.readMessage(subBuilder, extensionRegistry);
addName(subBuilder.buildPartial());
break;
}
case 26: {
bitField0_ |= 0x00000002;
identifierValue_ = input.readBytes();
break;
}
case 32: {
bitField0_ |= 0x00000004;
positiveIntValue_ = input.readUInt64();
break;
}
case 40: {
bitField0_ |= 0x00000008;
negativeIntValue_ = input.readInt64();
break;
}
case 49: {
bitField0_ |= 0x00000010;
doubleValue_ = input.readDouble();
break;
}
case 58: {
bitField0_ |= 0x00000020;
stringValue_ = input.readBytes();
break;
}
case 66: {
bitField0_ |= 0x00000040;
aggregateValue_ = input.readBytes();
break;
}
}
}
}
private int bitField0_;
// repeated .google.protobuf.UninterpretedOption.NamePart name = 2;
private java.util.List<com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart> name_ =
java.util.Collections.emptyList();
private void ensureNameIsMutable() {
if (!((bitField0_ & 0x00000001) == 0x00000001)) {
name_ = new java.util.ArrayList<com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart>(name_);
bitField0_ |= 0x00000001;
}
}
private com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart, com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart.Builder, com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePartOrBuilder> nameBuilder_;
public java.util.List<com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart> getNameList() {
if (nameBuilder_ == null) {
return java.util.Collections.unmodifiableList(name_);
} else {
return nameBuilder_.getMessageList();
}
}
public int getNameCount() {
if (nameBuilder_ == null) {
return name_.size();
} else {
return nameBuilder_.getCount();
}
}
public com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart getName(int index) {
if (nameBuilder_ == null) {
return name_.get(index);
} else {
return nameBuilder_.getMessage(index);
}
}
public Builder setName(
int index, com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart value) {
if (nameBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureNameIsMutable();
name_.set(index, value);
onChanged();
} else {
nameBuilder_.setMessage(index, value);
}
return this;
}
public Builder setName(
int index, com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart.Builder builderForValue) {
if (nameBuilder_ == null) {
ensureNameIsMutable();
name_.set(index, builderForValue.build());
onChanged();
} else {
nameBuilder_.setMessage(index, builderForValue.build());
}
return this;
}
public Builder addName(com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart value) {
if (nameBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureNameIsMutable();
name_.add(value);
onChanged();
} else {
nameBuilder_.addMessage(value);
}
return this;
}
public Builder addName(
int index, com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart value) {
if (nameBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureNameIsMutable();
name_.add(index, value);
onChanged();
} else {
nameBuilder_.addMessage(index, value);
}
return this;
}
public Builder addName(
com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart.Builder builderForValue) {
if (nameBuilder_ == null) {
ensureNameIsMutable();
name_.add(builderForValue.build());
onChanged();
} else {
nameBuilder_.addMessage(builderForValue.build());
}
return this;
}
public Builder addName(
int index, com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart.Builder builderForValue) {
if (nameBuilder_ == null) {
ensureNameIsMutable();
name_.add(index, builderForValue.build());
onChanged();
} else {
nameBuilder_.addMessage(index, builderForValue.build());
}
return this;
}
public Builder addAllName(
java.lang.Iterable<? extends com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart> values) {
if (nameBuilder_ == null) {
ensureNameIsMutable();
super.addAll(values, name_);
onChanged();
} else {
nameBuilder_.addAllMessages(values);
}
return this;
}
public Builder clearName() {
if (nameBuilder_ == null) {
name_ = java.util.Collections.emptyList();
bitField0_ = (bitField0_ & ~0x00000001);
onChanged();
} else {
nameBuilder_.clear();
}
return this;
}
public Builder removeName(int index) {
if (nameBuilder_ == null) {
ensureNameIsMutable();
name_.remove(index);
onChanged();
} else {
nameBuilder_.remove(index);
}
return this;
}
public com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart.Builder getNameBuilder(
int index) {
return getNameFieldBuilder().getBuilder(index);
}
public com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePartOrBuilder getNameOrBuilder(
int index) {
if (nameBuilder_ == null) {
return name_.get(index); } else {
return nameBuilder_.getMessageOrBuilder(index);
}
}
public java.util.List<? extends com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePartOrBuilder>
getNameOrBuilderList() {
if (nameBuilder_ != null) {
return nameBuilder_.getMessageOrBuilderList();
} else {
return java.util.Collections.unmodifiableList(name_);
}
}
public com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart.Builder addNameBuilder() {
return getNameFieldBuilder().addBuilder(
com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart.getDefaultInstance());
}
public com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart.Builder addNameBuilder(
int index) {
return getNameFieldBuilder().addBuilder(
index, com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart.getDefaultInstance());
}
public java.util.List<com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart.Builder>
getNameBuilderList() {
return getNameFieldBuilder().getBuilderList();
}
private com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart, com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart.Builder, com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePartOrBuilder>
getNameFieldBuilder() {
if (nameBuilder_ == null) {
nameBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart, com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart.Builder, com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePartOrBuilder>(
name_,
((bitField0_ & 0x00000001) == 0x00000001),
getParentForChildren(),
isClean());
name_ = null;
}
return nameBuilder_;
}
// optional string identifier_value = 3;
private java.lang.Object identifierValue_ = "";
public boolean hasIdentifierValue() {
return ((bitField0_ & 0x00000002) == 0x00000002);
}
public String getIdentifierValue() {
java.lang.Object ref = identifierValue_;
if (!(ref instanceof String)) {
String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
identifierValue_ = s;
return s;
} else {
return (String) ref;
}
}
public Builder setIdentifierValue(String value) {
if (value == null) {
throw new NullPointerException();
}
bitField0_ |= 0x00000002;
identifierValue_ = value;
onChanged();
return this;
}
public Builder clearIdentifierValue() {
bitField0_ = (bitField0_ & ~0x00000002);
identifierValue_ = getDefaultInstance().getIdentifierValue();
onChanged();
return this;
}
void setIdentifierValue(com.google.protobuf.ByteString value) {
bitField0_ |= 0x00000002;
identifierValue_ = value;
onChanged();
}
// optional uint64 positive_int_value = 4;
private long positiveIntValue_ ;
public boolean hasPositiveIntValue() {
return ((bitField0_ & 0x00000004) == 0x00000004);
}
public long getPositiveIntValue() {
return positiveIntValue_;
}
public Builder setPositiveIntValue(long value) {
bitField0_ |= 0x00000004;
positiveIntValue_ = value;
onChanged();
return this;
}
public Builder clearPositiveIntValue() {
bitField0_ = (bitField0_ & ~0x00000004);
positiveIntValue_ = 0L;
onChanged();
return this;
}
// optional int64 negative_int_value = 5;
private long negativeIntValue_ ;
public boolean hasNegativeIntValue() {
return ((bitField0_ & 0x00000008) == 0x00000008);
}
public long getNegativeIntValue() {
return negativeIntValue_;
}
public Builder setNegativeIntValue(long value) {
bitField0_ |= 0x00000008;
negativeIntValue_ = value;
onChanged();
return this;
}
public Builder clearNegativeIntValue() {
bitField0_ = (bitField0_ & ~0x00000008);
negativeIntValue_ = 0L;
onChanged();
return this;
}
// optional double double_value = 6;
private double doubleValue_ ;
public boolean hasDoubleValue() {
return ((bitField0_ & 0x00000010) == 0x00000010);
}
public double getDoubleValue() {
return doubleValue_;
}
public Builder setDoubleValue(double value) {
bitField0_ |= 0x00000010;
doubleValue_ = value;
onChanged();
return this;
}
public Builder clearDoubleValue() {
bitField0_ = (bitField0_ & ~0x00000010);
doubleValue_ = 0D;
onChanged();
return this;
}
// optional bytes string_value = 7;
private com.google.protobuf.ByteString stringValue_ = com.google.protobuf.ByteString.EMPTY;
public boolean hasStringValue() {
return ((bitField0_ & 0x00000020) == 0x00000020);
}
public com.google.protobuf.ByteString getStringValue() {
return stringValue_;
}
public Builder setStringValue(com.google.protobuf.ByteString value) {
if (value == null) {
throw new NullPointerException();
}
bitField0_ |= 0x00000020;
stringValue_ = value;
onChanged();
return this;
}
public Builder clearStringValue() {
bitField0_ = (bitField0_ & ~0x00000020);
stringValue_ = getDefaultInstance().getStringValue();
onChanged();
return this;
}
// optional string aggregate_value = 8;
private java.lang.Object aggregateValue_ = "";
public boolean hasAggregateValue() {
return ((bitField0_ & 0x00000040) == 0x00000040);
}
public String getAggregateValue() {
java.lang.Object ref = aggregateValue_;
if (!(ref instanceof String)) {
String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
aggregateValue_ = s;
return s;
} else {
return (String) ref;
}
}
public Builder setAggregateValue(String value) {
if (value == null) {
throw new NullPointerException();
}
bitField0_ |= 0x00000040;
aggregateValue_ = value;
onChanged();
return this;
}
public Builder clearAggregateValue() {
bitField0_ = (bitField0_ & ~0x00000040);
aggregateValue_ = getDefaultInstance().getAggregateValue();
onChanged();
return this;
}
void setAggregateValue(com.google.protobuf.ByteString value) {
bitField0_ |= 0x00000040;
aggregateValue_ = value;
onChanged();
}
// @@protoc_insertion_point(builder_scope:google.protobuf.UninterpretedOption)
}
static {
defaultInstance = new UninterpretedOption(true);
defaultInstance.initFields();
}
// @@protoc_insertion_point(class_scope:google.protobuf.UninterpretedOption)
}
public interface SourceCodeInfoOrBuilder
extends com.google.protobuf.MessageOrBuilder {
// repeated .google.protobuf.SourceCodeInfo.Location location = 1;
java.util.List<com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location>
getLocationList();
com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location getLocation(int index);
int getLocationCount();
java.util.List<? extends com.google.protobuf.DescriptorProtos.SourceCodeInfo.LocationOrBuilder>
getLocationOrBuilderList();
com.google.protobuf.DescriptorProtos.SourceCodeInfo.LocationOrBuilder getLocationOrBuilder(
int index);
}
public static final class SourceCodeInfo extends
com.google.protobuf.GeneratedMessage
implements SourceCodeInfoOrBuilder {
// Use SourceCodeInfo.newBuilder() to construct.
private SourceCodeInfo(Builder builder) {
super(builder);
}
private SourceCodeInfo(boolean noInit) {}
private static final SourceCodeInfo defaultInstance;
public static SourceCodeInfo getDefaultInstance() {
return defaultInstance;
}
public SourceCodeInfo getDefaultInstanceForType() {
return defaultInstance;
}
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_SourceCodeInfo_descriptor;
}
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_SourceCodeInfo_fieldAccessorTable;
}
public interface LocationOrBuilder
extends com.google.protobuf.MessageOrBuilder {
// repeated int32 path = 1 [packed = true];
java.util.List<java.lang.Integer> getPathList();
int getPathCount();
int getPath(int index);
// repeated int32 span = 2 [packed = true];
java.util.List<java.lang.Integer> getSpanList();
int getSpanCount();
int getSpan(int index);
}
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 com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_SourceCodeInfo_Location_descriptor;
}
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_SourceCodeInfo_Location_fieldAccessorTable;
}
// repeated int32 path = 1 [packed = true];
public static final int PATH_FIELD_NUMBER = 1;
private java.util.List<java.lang.Integer> path_;
public java.util.List<java.lang.Integer>
getPathList() {
return path_;
}
public int getPathCount() {
return path_.size();
}
public int getPath(int index) {
return path_.get(index);
}
private int pathMemoizedSerializedSize = -1;
// repeated int32 span = 2 [packed = true];
public static final int SPAN_FIELD_NUMBER = 2;
private java.util.List<java.lang.Integer> span_;
public java.util.List<java.lang.Integer>
getSpanList() {
return span_;
}
public int getSpanCount() {
return span_.size();
}
public int getSpan(int index) {
return span_.get(index);
}
private int spanMemoizedSerializedSize = -1;
private void initFields() {
path_ = java.util.Collections.emptyList();;
span_ = java.util.Collections.emptyList();;
}
private byte memoizedIsInitialized = -1;
public final boolean isInitialized() {
byte isInitialized = memoizedIsInitialized;
if (isInitialized != -1) return isInitialized == 1;
memoizedIsInitialized = 1;
return true;
}
public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException {
getSerializedSize();
if (getPathList().size() > 0) {
output.writeRawVarint32(10);
output.writeRawVarint32(pathMemoizedSerializedSize);
}
for (int i = 0; i < path_.size(); i++) {
output.writeInt32NoTag(path_.get(i));
}
if (getSpanList().size() > 0) {
output.writeRawVarint32(18);
output.writeRawVarint32(spanMemoizedSerializedSize);
}
for (int i = 0; i < span_.size(); i++) {
output.writeInt32NoTag(span_.get(i));
}
getUnknownFields().writeTo(output);
}
private int memoizedSerializedSize = -1;
public int getSerializedSize() {
int size = memoizedSerializedSize;
if (size != -1) return size;
size = 0;
{
int dataSize = 0;
for (int i = 0; i < path_.size(); i++) {
dataSize += com.google.protobuf.CodedOutputStream
.computeInt32SizeNoTag(path_.get(i));
}
size += dataSize;
if (!getPathList().isEmpty()) {
size += 1;
size += com.google.protobuf.CodedOutputStream
.computeInt32SizeNoTag(dataSize);
}
pathMemoizedSerializedSize = dataSize;
}
{
int dataSize = 0;
for (int i = 0; i < span_.size(); i++) {
dataSize += com.google.protobuf.CodedOutputStream
.computeInt32SizeNoTag(span_.get(i));
}
size += dataSize;
if (!getSpanList().isEmpty()) {
size += 1;
size += com.google.protobuf.CodedOutputStream
.computeInt32SizeNoTag(dataSize);
}
spanMemoizedSerializedSize = dataSize;
}
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 com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.SourceCodeInfo.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 com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location parseFrom(java.io.InputStream input)
throws java.io.IOException {
return newBuilder().mergeFrom(input).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return newBuilder().mergeFrom(input, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.SourceCodeInfo.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 com.google.protobuf.DescriptorProtos.SourceCodeInfo.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 com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return newBuilder().mergeFrom(input).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.SourceCodeInfo.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(com.google.protobuf.DescriptorProtos.SourceCodeInfo.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 com.google.protobuf.DescriptorProtos.SourceCodeInfo.LocationOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_SourceCodeInfo_Location_descriptor;
}
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_SourceCodeInfo_Location_fieldAccessorTable;
}
// Construct using com.google.protobuf.DescriptorProtos.SourceCodeInfo.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();
path_ = java.util.Collections.emptyList();;
bitField0_ = (bitField0_ & ~0x00000001);
span_ = java.util.Collections.emptyList();;
bitField0_ = (bitField0_ & ~0x00000002);
return this;
}
public Builder clone() {
return create().mergeFrom(buildPartial());
}
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
return com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.getDescriptor();
}
public com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location getDefaultInstanceForType() {
return com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.getDefaultInstance();
}
public com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location build() {
com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(result);
}
return result;
}
private com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location buildParsed()
throws com.google.protobuf.InvalidProtocolBufferException {
com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(
result).asInvalidProtocolBufferException();
}
return result;
}
public com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location buildPartial() {
com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location result = new com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location(this);
int from_bitField0_ = bitField0_;
if (((bitField0_ & 0x00000001) == 0x00000001)) {
path_ = java.util.Collections.unmodifiableList(path_);
bitField0_ = (bitField0_ & ~0x00000001);
}
result.path_ = path_;
if (((bitField0_ & 0x00000002) == 0x00000002)) {
span_ = java.util.Collections.unmodifiableList(span_);
bitField0_ = (bitField0_ & ~0x00000002);
}
result.span_ = span_;
onBuilt();
return result;
}
public Builder mergeFrom(com.google.protobuf.Message other) {
if (other instanceof com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location) {
return mergeFrom((com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location)other);
} else {
super.mergeFrom(other);
return this;
}
}
public Builder mergeFrom(com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location other) {
if (other == com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.getDefaultInstance()) return this;
if (!other.path_.isEmpty()) {
if (path_.isEmpty()) {
path_ = other.path_;
bitField0_ = (bitField0_ & ~0x00000001);
} else {
ensurePathIsMutable();
path_.addAll(other.path_);
}
onChanged();
}
if (!other.span_.isEmpty()) {
if (span_.isEmpty()) {
span_ = other.span_;
bitField0_ = (bitField0_ & ~0x00000002);
} else {
ensureSpanIsMutable();
span_.addAll(other.span_);
}
onChanged();
}
this.mergeUnknownFields(other.getUnknownFields());
return this;
}
public final boolean isInitialized() {
return true;
}
public Builder mergeFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
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());
onChanged();
return this;
default: {
if (!parseUnknownField(input, unknownFields,
extensionRegistry, tag)) {
this.setUnknownFields(unknownFields.build());
onChanged();
return this;
}
break;
}
case 8: {
ensurePathIsMutable();
path_.add(input.readInt32());
break;
}
case 10: {
int length = input.readRawVarint32();
int limit = input.pushLimit(length);
while (input.getBytesUntilLimit() > 0) {
addPath(input.readInt32());
}
input.popLimit(limit);
break;
}
case 16: {
ensureSpanIsMutable();
span_.add(input.readInt32());
break;
}
case 18: {
int length = input.readRawVarint32();
int limit = input.pushLimit(length);
while (input.getBytesUntilLimit() > 0) {
addSpan(input.readInt32());
}
input.popLimit(limit);
break;
}
}
}
}
private int bitField0_;
// repeated int32 path = 1 [packed = true];
private java.util.List<java.lang.Integer> path_ = java.util.Collections.emptyList();;
private void ensurePathIsMutable() {
if (!((bitField0_ & 0x00000001) == 0x00000001)) {
path_ = new java.util.ArrayList<java.lang.Integer>(path_);
bitField0_ |= 0x00000001;
}
}
public java.util.List<java.lang.Integer>
getPathList() {
return java.util.Collections.unmodifiableList(path_);
}
public int getPathCount() {
return path_.size();
}
public int getPath(int index) {
return path_.get(index);
}
public Builder setPath(
int index, int value) {
ensurePathIsMutable();
path_.set(index, value);
onChanged();
return this;
}
public Builder addPath(int value) {
ensurePathIsMutable();
path_.add(value);
onChanged();
return this;
}
public Builder addAllPath(
java.lang.Iterable<? extends java.lang.Integer> values) {
ensurePathIsMutable();
super.addAll(values, path_);
onChanged();
return this;
}
public Builder clearPath() {
path_ = java.util.Collections.emptyList();;
bitField0_ = (bitField0_ & ~0x00000001);
onChanged();
return this;
}
// repeated int32 span = 2 [packed = true];
private java.util.List<java.lang.Integer> span_ = java.util.Collections.emptyList();;
private void ensureSpanIsMutable() {
if (!((bitField0_ & 0x00000002) == 0x00000002)) {
span_ = new java.util.ArrayList<java.lang.Integer>(span_);
bitField0_ |= 0x00000002;
}
}
public java.util.List<java.lang.Integer>
getSpanList() {
return java.util.Collections.unmodifiableList(span_);
}
public int getSpanCount() {
return span_.size();
}
public int getSpan(int index) {
return span_.get(index);
}
public Builder setSpan(
int index, int value) {
ensureSpanIsMutable();
span_.set(index, value);
onChanged();
return this;
}
public Builder addSpan(int value) {
ensureSpanIsMutable();
span_.add(value);
onChanged();
return this;
}
public Builder addAllSpan(
java.lang.Iterable<? extends java.lang.Integer> values) {
ensureSpanIsMutable();
super.addAll(values, span_);
onChanged();
return this;
}
public Builder clearSpan() {
span_ = java.util.Collections.emptyList();;
bitField0_ = (bitField0_ & ~0x00000002);
onChanged();
return this;
}
// @@protoc_insertion_point(builder_scope:google.protobuf.SourceCodeInfo.Location)
}
static {
defaultInstance = new Location(true);
defaultInstance.initFields();
}
// @@protoc_insertion_point(class_scope:google.protobuf.SourceCodeInfo.Location)
}
// repeated .google.protobuf.SourceCodeInfo.Location location = 1;
public static final int LOCATION_FIELD_NUMBER = 1;
private java.util.List<com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location> location_;
public java.util.List<com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location> getLocationList() {
return location_;
}
public java.util.List<? extends com.google.protobuf.DescriptorProtos.SourceCodeInfo.LocationOrBuilder>
getLocationOrBuilderList() {
return location_;
}
public int getLocationCount() {
return location_.size();
}
public com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location getLocation(int index) {
return location_.get(index);
}
public com.google.protobuf.DescriptorProtos.SourceCodeInfo.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;
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 com.google.protobuf.DescriptorProtos.SourceCodeInfo parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.SourceCodeInfo parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.SourceCodeInfo parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.SourceCodeInfo parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.SourceCodeInfo parseFrom(java.io.InputStream input)
throws java.io.IOException {
return newBuilder().mergeFrom(input).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.SourceCodeInfo parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return newBuilder().mergeFrom(input, extensionRegistry)
.buildParsed();
}
public static com.google.protobuf.DescriptorProtos.SourceCodeInfo parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
Builder builder = newBuilder();
if (builder.mergeDelimitedFrom(input)) {
return builder.buildParsed();
} else {
return null;
}
}
public static com.google.protobuf.DescriptorProtos.SourceCodeInfo 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 com.google.protobuf.DescriptorProtos.SourceCodeInfo parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return newBuilder().mergeFrom(input).buildParsed();
}
public static com.google.protobuf.DescriptorProtos.SourceCodeInfo 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(com.google.protobuf.DescriptorProtos.SourceCodeInfo 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 com.google.protobuf.DescriptorProtos.SourceCodeInfoOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_SourceCodeInfo_descriptor;
}
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_SourceCodeInfo_fieldAccessorTable;
}
// Construct using com.google.protobuf.DescriptorProtos.SourceCodeInfo.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 com.google.protobuf.DescriptorProtos.SourceCodeInfo.getDescriptor();
}
public com.google.protobuf.DescriptorProtos.SourceCodeInfo getDefaultInstanceForType() {
return com.google.protobuf.DescriptorProtos.SourceCodeInfo.getDefaultInstance();
}
public com.google.protobuf.DescriptorProtos.SourceCodeInfo build() {
com.google.protobuf.DescriptorProtos.SourceCodeInfo result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(result);
}
return result;
}
private com.google.protobuf.DescriptorProtos.SourceCodeInfo buildParsed()
throws com.google.protobuf.InvalidProtocolBufferException {
com.google.protobuf.DescriptorProtos.SourceCodeInfo result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(
result).asInvalidProtocolBufferException();
}
return result;
}
public com.google.protobuf.DescriptorProtos.SourceCodeInfo buildPartial() {
com.google.protobuf.DescriptorProtos.SourceCodeInfo result = new com.google.protobuf.DescriptorProtos.SourceCodeInfo(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 com.google.protobuf.DescriptorProtos.SourceCodeInfo) {
return mergeFrom((com.google.protobuf.DescriptorProtos.SourceCodeInfo)other);
} else {
super.mergeFrom(other);
return this;
}
}
public Builder mergeFrom(com.google.protobuf.DescriptorProtos.SourceCodeInfo other) {
if (other == com.google.protobuf.DescriptorProtos.SourceCodeInfo.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_);
}
}
}
this.mergeUnknownFields(other.getUnknownFields());
return this;
}
public final boolean isInitialized() {
return true;
}
public Builder mergeFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
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());
onChanged();
return this;
default: {
if (!parseUnknownField(input, unknownFields,
extensionRegistry, tag)) {
this.setUnknownFields(unknownFields.build());
onChanged();
return this;
}
break;
}
case 10: {
com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder subBuilder = com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.newBuilder();
input.readMessage(subBuilder, extensionRegistry);
addLocation(subBuilder.buildPartial());
break;
}
}
}
}
private int bitField0_;
// repeated .google.protobuf.SourceCodeInfo.Location location = 1;
private java.util.List<com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location> location_ =
java.util.Collections.emptyList();
private void ensureLocationIsMutable() {
if (!((bitField0_ & 0x00000001) == 0x00000001)) {
location_ = new java.util.ArrayList<com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location>(location_);
bitField0_ |= 0x00000001;
}
}
private com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location, com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder, com.google.protobuf.DescriptorProtos.SourceCodeInfo.LocationOrBuilder> locationBuilder_;
public java.util.List<com.google.protobuf.DescriptorProtos.SourceCodeInfo.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 com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location getLocation(int index) {
if (locationBuilder_ == null) {
return location_.get(index);
} else {
return locationBuilder_.getMessage(index);
}
}
public Builder setLocation(
int index, com.google.protobuf.DescriptorProtos.SourceCodeInfo.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, com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder builderForValue) {
if (locationBuilder_ == null) {
ensureLocationIsMutable();
location_.set(index, builderForValue.build());
onChanged();
} else {
locationBuilder_.setMessage(index, builderForValue.build());
}
return this;
}
public Builder addLocation(com.google.protobuf.DescriptorProtos.SourceCodeInfo.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, com.google.protobuf.DescriptorProtos.SourceCodeInfo.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(
com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder builderForValue) {
if (locationBuilder_ == null) {
ensureLocationIsMutable();
location_.add(builderForValue.build());
onChanged();
} else {
locationBuilder_.addMessage(builderForValue.build());
}
return this;
}
public Builder addLocation(
int index, com.google.protobuf.DescriptorProtos.SourceCodeInfo.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 com.google.protobuf.DescriptorProtos.SourceCodeInfo.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 com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder getLocationBuilder(
int index) {
return getLocationFieldBuilder().getBuilder(index);
}
public com.google.protobuf.DescriptorProtos.SourceCodeInfo.LocationOrBuilder getLocationOrBuilder(
int index) {
if (locationBuilder_ == null) {
return location_.get(index); } else {
return locationBuilder_.getMessageOrBuilder(index);
}
}
public java.util.List<? extends com.google.protobuf.DescriptorProtos.SourceCodeInfo.LocationOrBuilder>
getLocationOrBuilderList() {
if (locationBuilder_ != null) {
return locationBuilder_.getMessageOrBuilderList();
} else {
return java.util.Collections.unmodifiableList(location_);
}
}
public com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder addLocationBuilder() {
return getLocationFieldBuilder().addBuilder(
com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.getDefaultInstance());
}
public com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder addLocationBuilder(
int index) {
return getLocationFieldBuilder().addBuilder(
index, com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.getDefaultInstance());
}
public java.util.List<com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder>
getLocationBuilderList() {
return getLocationFieldBuilder().getBuilderList();
}
private com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location, com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder, com.google.protobuf.DescriptorProtos.SourceCodeInfo.LocationOrBuilder>
getLocationFieldBuilder() {
if (locationBuilder_ == null) {
locationBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location, com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder, com.google.protobuf.DescriptorProtos.SourceCodeInfo.LocationOrBuilder>(
location_,
((bitField0_ & 0x00000001) == 0x00000001),
getParentForChildren(),
isClean());
location_ = null;
}
return locationBuilder_;
}
// @@protoc_insertion_point(builder_scope:google.protobuf.SourceCodeInfo)
}
static {
defaultInstance = new SourceCodeInfo(true);
defaultInstance.initFields();
}
// @@protoc_insertion_point(class_scope:google.protobuf.SourceCodeInfo)
}
private static com.google.protobuf.Descriptors.Descriptor
internal_static_google_protobuf_FileDescriptorSet_descriptor;
private static
com.google.protobuf.GeneratedMessage.FieldAccessorTable
internal_static_google_protobuf_FileDescriptorSet_fieldAccessorTable;
private static com.google.protobuf.Descriptors.Descriptor
internal_static_google_protobuf_FileDescriptorProto_descriptor;
private static
com.google.protobuf.GeneratedMessage.FieldAccessorTable
internal_static_google_protobuf_FileDescriptorProto_fieldAccessorTable;
private static com.google.protobuf.Descriptors.Descriptor
internal_static_google_protobuf_DescriptorProto_descriptor;
private static
com.google.protobuf.GeneratedMessage.FieldAccessorTable
internal_static_google_protobuf_DescriptorProto_fieldAccessorTable;
private static com.google.protobuf.Descriptors.Descriptor
internal_static_google_protobuf_DescriptorProto_ExtensionRange_descriptor;
private static
com.google.protobuf.GeneratedMessage.FieldAccessorTable
internal_static_google_protobuf_DescriptorProto_ExtensionRange_fieldAccessorTable;
private static com.google.protobuf.Descriptors.Descriptor
internal_static_google_protobuf_FieldDescriptorProto_descriptor;
private static
com.google.protobuf.GeneratedMessage.FieldAccessorTable
internal_static_google_protobuf_FieldDescriptorProto_fieldAccessorTable;
private static com.google.protobuf.Descriptors.Descriptor
internal_static_google_protobuf_EnumDescriptorProto_descriptor;
private static
com.google.protobuf.GeneratedMessage.FieldAccessorTable
internal_static_google_protobuf_EnumDescriptorProto_fieldAccessorTable;
private static com.google.protobuf.Descriptors.Descriptor
internal_static_google_protobuf_EnumValueDescriptorProto_descriptor;
private static
com.google.protobuf.GeneratedMessage.FieldAccessorTable
internal_static_google_protobuf_EnumValueDescriptorProto_fieldAccessorTable;
private static com.google.protobuf.Descriptors.Descriptor
internal_static_google_protobuf_ServiceDescriptorProto_descriptor;
private static
com.google.protobuf.GeneratedMessage.FieldAccessorTable
internal_static_google_protobuf_ServiceDescriptorProto_fieldAccessorTable;
private static com.google.protobuf.Descriptors.Descriptor
internal_static_google_protobuf_MethodDescriptorProto_descriptor;
private static
com.google.protobuf.GeneratedMessage.FieldAccessorTable
internal_static_google_protobuf_MethodDescriptorProto_fieldAccessorTable;
private static com.google.protobuf.Descriptors.Descriptor
internal_static_google_protobuf_FileOptions_descriptor;
private static
com.google.protobuf.GeneratedMessage.FieldAccessorTable
internal_static_google_protobuf_FileOptions_fieldAccessorTable;
private static com.google.protobuf.Descriptors.Descriptor
internal_static_google_protobuf_MessageOptions_descriptor;
private static
com.google.protobuf.GeneratedMessage.FieldAccessorTable
internal_static_google_protobuf_MessageOptions_fieldAccessorTable;
private static com.google.protobuf.Descriptors.Descriptor
internal_static_google_protobuf_FieldOptions_descriptor;
private static
com.google.protobuf.GeneratedMessage.FieldAccessorTable
internal_static_google_protobuf_FieldOptions_fieldAccessorTable;
private static com.google.protobuf.Descriptors.Descriptor
internal_static_google_protobuf_EnumOptions_descriptor;
private static
com.google.protobuf.GeneratedMessage.FieldAccessorTable
internal_static_google_protobuf_EnumOptions_fieldAccessorTable;
private static com.google.protobuf.Descriptors.Descriptor
internal_static_google_protobuf_EnumValueOptions_descriptor;
private static
com.google.protobuf.GeneratedMessage.FieldAccessorTable
internal_static_google_protobuf_EnumValueOptions_fieldAccessorTable;
private static com.google.protobuf.Descriptors.Descriptor
internal_static_google_protobuf_ServiceOptions_descriptor;
private static
com.google.protobuf.GeneratedMessage.FieldAccessorTable
internal_static_google_protobuf_ServiceOptions_fieldAccessorTable;
private static com.google.protobuf.Descriptors.Descriptor
internal_static_google_protobuf_MethodOptions_descriptor;
private static
com.google.protobuf.GeneratedMessage.FieldAccessorTable
internal_static_google_protobuf_MethodOptions_fieldAccessorTable;
private static com.google.protobuf.Descriptors.Descriptor
internal_static_google_protobuf_UninterpretedOption_descriptor;
private static
com.google.protobuf.GeneratedMessage.FieldAccessorTable
internal_static_google_protobuf_UninterpretedOption_fieldAccessorTable;
private static com.google.protobuf.Descriptors.Descriptor
internal_static_google_protobuf_UninterpretedOption_NamePart_descriptor;
private static
com.google.protobuf.GeneratedMessage.FieldAccessorTable
internal_static_google_protobuf_UninterpretedOption_NamePart_fieldAccessorTable;
private static com.google.protobuf.Descriptors.Descriptor
internal_static_google_protobuf_SourceCodeInfo_descriptor;
private static
com.google.protobuf.GeneratedMessage.FieldAccessorTable
internal_static_google_protobuf_SourceCodeInfo_fieldAccessorTable;
private static com.google.protobuf.Descriptors.Descriptor
internal_static_google_protobuf_SourceCodeInfo_Location_descriptor;
private static
com.google.protobuf.GeneratedMessage.FieldAccessorTable
internal_static_google_protobuf_SourceCodeInfo_Location_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 google/protobuf/descriptor.proto\022\017goog" +
"le.protobuf\"G\n\021FileDescriptorSet\0222\n\004file" +
"\030\001 \003(\0132$.google.protobuf.FileDescriptorP" +
"roto\"\227\003\n\023FileDescriptorProto\022\014\n\004name\030\001 \001" +
"(\t\022\017\n\007package\030\002 \001(\t\022\022\n\ndependency\030\003 \003(\t\022" +
"6\n\014message_type\030\004 \003(\0132 .google.protobuf." +
"DescriptorProto\0227\n\tenum_type\030\005 \003(\0132$.goo" +
"gle.protobuf.EnumDescriptorProto\0228\n\007serv" +
"ice\030\006 \003(\0132\'.google.protobuf.ServiceDescr" +
"iptorProto\0228\n\textension\030\007 \003(\0132%.google.p",
"rotobuf.FieldDescriptorProto\022-\n\007options\030" +
"\010 \001(\0132\034.google.protobuf.FileOptions\0229\n\020s" +
"ource_code_info\030\t \001(\0132\037.google.protobuf." +
"SourceCodeInfo\"\251\003\n\017DescriptorProto\022\014\n\004na" +
"me\030\001 \001(\t\0224\n\005field\030\002 \003(\0132%.google.protobu" +
"f.FieldDescriptorProto\0228\n\textension\030\006 \003(" +
"\0132%.google.protobuf.FieldDescriptorProto" +
"\0225\n\013nested_type\030\003 \003(\0132 .google.protobuf." +
"DescriptorProto\0227\n\tenum_type\030\004 \003(\0132$.goo" +
"gle.protobuf.EnumDescriptorProto\022H\n\017exte",
"nsion_range\030\005 \003(\0132/.google.protobuf.Desc" +
"riptorProto.ExtensionRange\0220\n\007options\030\007 " +
"\001(\0132\037.google.protobuf.MessageOptions\032,\n\016" +
"ExtensionRange\022\r\n\005start\030\001 \001(\005\022\013\n\003end\030\002 \001" +
"(\005\"\224\005\n\024FieldDescriptorProto\022\014\n\004name\030\001 \001(" +
"\t\022\016\n\006number\030\003 \001(\005\022:\n\005label\030\004 \001(\0162+.googl" +
"e.protobuf.FieldDescriptorProto.Label\0228\n" +
"\004type\030\005 \001(\0162*.google.protobuf.FieldDescr" +
"iptorProto.Type\022\021\n\ttype_name\030\006 \001(\t\022\020\n\010ex" +
"tendee\030\002 \001(\t\022\025\n\rdefault_value\030\007 \001(\t\022.\n\007o",
"ptions\030\010 \001(\0132\035.google.protobuf.FieldOpti" +
"ons\"\266\002\n\004Type\022\017\n\013TYPE_DOUBLE\020\001\022\016\n\nTYPE_FL" +
"OAT\020\002\022\016\n\nTYPE_INT64\020\003\022\017\n\013TYPE_UINT64\020\004\022\016" +
"\n\nTYPE_INT32\020\005\022\020\n\014TYPE_FIXED64\020\006\022\020\n\014TYPE" +
"_FIXED32\020\007\022\r\n\tTYPE_BOOL\020\010\022\017\n\013TYPE_STRING" +
"\020\t\022\016\n\nTYPE_GROUP\020\n\022\020\n\014TYPE_MESSAGE\020\013\022\016\n\n" +
"TYPE_BYTES\020\014\022\017\n\013TYPE_UINT32\020\r\022\r\n\tTYPE_EN" +
"UM\020\016\022\021\n\rTYPE_SFIXED32\020\017\022\021\n\rTYPE_SFIXED64" +
"\020\020\022\017\n\013TYPE_SINT32\020\021\022\017\n\013TYPE_SINT64\020\022\"C\n\005" +
"Label\022\022\n\016LABEL_OPTIONAL\020\001\022\022\n\016LABEL_REQUI",
"RED\020\002\022\022\n\016LABEL_REPEATED\020\003\"\214\001\n\023EnumDescri" +
"ptorProto\022\014\n\004name\030\001 \001(\t\0228\n\005value\030\002 \003(\0132)" +
".google.protobuf.EnumValueDescriptorProt" +
"o\022-\n\007options\030\003 \001(\0132\034.google.protobuf.Enu" +
"mOptions\"l\n\030EnumValueDescriptorProto\022\014\n\004" +
"name\030\001 \001(\t\022\016\n\006number\030\002 \001(\005\0222\n\007options\030\003 " +
"\001(\0132!.google.protobuf.EnumValueOptions\"\220" +
"\001\n\026ServiceDescriptorProto\022\014\n\004name\030\001 \001(\t\022" +
"6\n\006method\030\002 \003(\0132&.google.protobuf.Method" +
"DescriptorProto\0220\n\007options\030\003 \001(\0132\037.googl",
"e.protobuf.ServiceOptions\"\177\n\025MethodDescr" +
"iptorProto\022\014\n\004name\030\001 \001(\t\022\022\n\ninput_type\030\002" +
" \001(\t\022\023\n\013output_type\030\003 \001(\t\022/\n\007options\030\004 \001" +
"(\0132\036.google.protobuf.MethodOptions\"\325\003\n\013F" +
"ileOptions\022\024\n\014java_package\030\001 \001(\t\022\034\n\024java" +
"_outer_classname\030\010 \001(\t\022\"\n\023java_multiple_" +
"files\030\n \001(\010:\005false\022,\n\035java_generate_equa" +
"ls_and_hash\030\024 \001(\010:\005false\022F\n\014optimize_for" +
"\030\t \001(\0162).google.protobuf.FileOptions.Opt" +
"imizeMode:\005SPEED\022\"\n\023cc_generic_services\030",
"\020 \001(\010:\005false\022$\n\025java_generic_services\030\021 " +
"\001(\010:\005false\022\"\n\023py_generic_services\030\022 \001(\010:" +
"\005false\022C\n\024uninterpreted_option\030\347\007 \003(\0132$." +
"google.protobuf.UninterpretedOption\":\n\014O" +
"ptimizeMode\022\t\n\005SPEED\020\001\022\r\n\tCODE_SIZE\020\002\022\020\n" +
"\014LITE_RUNTIME\020\003*\t\010\350\007\020\200\200\200\200\002\"\270\001\n\016MessageOp" +
"tions\022&\n\027message_set_wire_format\030\001 \001(\010:\005" +
"false\022.\n\037no_standard_descriptor_accessor" +
"\030\002 \001(\010:\005false\022C\n\024uninterpreted_option\030\347\007" +
" \003(\0132$.google.protobuf.UninterpretedOpti",
"on*\t\010\350\007\020\200\200\200\200\002\"\224\002\n\014FieldOptions\022:\n\005ctype\030" +
"\001 \001(\0162#.google.protobuf.FieldOptions.CTy" +
"pe:\006STRING\022\016\n\006packed\030\002 \001(\010\022\031\n\ndeprecated" +
"\030\003 \001(\010:\005false\022\034\n\024experimental_map_key\030\t " +
"\001(\t\022C\n\024uninterpreted_option\030\347\007 \003(\0132$.goo" +
"gle.protobuf.UninterpretedOption\"/\n\005CTyp" +
"e\022\n\n\006STRING\020\000\022\010\n\004CORD\020\001\022\020\n\014STRING_PIECE\020" +
"\002*\t\010\350\007\020\200\200\200\200\002\"]\n\013EnumOptions\022C\n\024uninterpr" +
"eted_option\030\347\007 \003(\0132$.google.protobuf.Uni" +
"nterpretedOption*\t\010\350\007\020\200\200\200\200\002\"b\n\020EnumValue",
"Options\022C\n\024uninterpreted_option\030\347\007 \003(\0132$" +
".google.protobuf.UninterpretedOption*\t\010\350" +
"\007\020\200\200\200\200\002\"`\n\016ServiceOptions\022C\n\024uninterpret" +
"ed_option\030\347\007 \003(\0132$.google.protobuf.Unint" +
"erpretedOption*\t\010\350\007\020\200\200\200\200\002\"_\n\rMethodOptio" +
"ns\022C\n\024uninterpreted_option\030\347\007 \003(\0132$.goog" +
"le.protobuf.UninterpretedOption*\t\010\350\007\020\200\200\200" +
"\200\002\"\236\002\n\023UninterpretedOption\022;\n\004name\030\002 \003(\013" +
"2-.google.protobuf.UninterpretedOption.N" +
"amePart\022\030\n\020identifier_value\030\003 \001(\t\022\032\n\022pos",
"itive_int_value\030\004 \001(\004\022\032\n\022negative_int_va" +
"lue\030\005 \001(\003\022\024\n\014double_value\030\006 \001(\001\022\024\n\014strin" +
"g_value\030\007 \001(\014\022\027\n\017aggregate_value\030\010 \001(\t\0323" +
"\n\010NamePart\022\021\n\tname_part\030\001 \002(\t\022\024\n\014is_exte" +
"nsion\030\002 \002(\010\"|\n\016SourceCodeInfo\022:\n\010locatio" +
"n\030\001 \003(\0132(.google.protobuf.SourceCodeInfo" +
".Location\032.\n\010Location\022\020\n\004path\030\001 \003(\005B\002\020\001\022" +
"\020\n\004span\030\002 \003(\005B\002\020\001B)\n\023com.google.protobuf" +
"B\020DescriptorProtosH\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_google_protobuf_FileDescriptorSet_descriptor =
getDescriptor().getMessageTypes().get(0);
internal_static_google_protobuf_FileDescriptorSet_fieldAccessorTable = new
com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_protobuf_FileDescriptorSet_descriptor,
new java.lang.String[] { "File", },
com.google.protobuf.DescriptorProtos.FileDescriptorSet.class,
com.google.protobuf.DescriptorProtos.FileDescriptorSet.Builder.class);
internal_static_google_protobuf_FileDescriptorProto_descriptor =
getDescriptor().getMessageTypes().get(1);
internal_static_google_protobuf_FileDescriptorProto_fieldAccessorTable = new
com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_protobuf_FileDescriptorProto_descriptor,
new java.lang.String[] { "Name", "Package", "Dependency", "MessageType", "EnumType", "Service", "Extension", "Options", "SourceCodeInfo", },
com.google.protobuf.DescriptorProtos.FileDescriptorProto.class,
com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder.class);
internal_static_google_protobuf_DescriptorProto_descriptor =
getDescriptor().getMessageTypes().get(2);
internal_static_google_protobuf_DescriptorProto_fieldAccessorTable = new
com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_protobuf_DescriptorProto_descriptor,
new java.lang.String[] { "Name", "Field", "Extension", "NestedType", "EnumType", "ExtensionRange", "Options", },
com.google.protobuf.DescriptorProtos.DescriptorProto.class,
com.google.protobuf.DescriptorProtos.DescriptorProto.Builder.class);
internal_static_google_protobuf_DescriptorProto_ExtensionRange_descriptor =
internal_static_google_protobuf_DescriptorProto_descriptor.getNestedTypes().get(0);
internal_static_google_protobuf_DescriptorProto_ExtensionRange_fieldAccessorTable = new
com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_protobuf_DescriptorProto_ExtensionRange_descriptor,
new java.lang.String[] { "Start", "End", },
com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.class,
com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.Builder.class);
internal_static_google_protobuf_FieldDescriptorProto_descriptor =
getDescriptor().getMessageTypes().get(3);
internal_static_google_protobuf_FieldDescriptorProto_fieldAccessorTable = new
com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_protobuf_FieldDescriptorProto_descriptor,
new java.lang.String[] { "Name", "Number", "Label", "Type", "TypeName", "Extendee", "DefaultValue", "Options", },
com.google.protobuf.DescriptorProtos.FieldDescriptorProto.class,
com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder.class);
internal_static_google_protobuf_EnumDescriptorProto_descriptor =
getDescriptor().getMessageTypes().get(4);
internal_static_google_protobuf_EnumDescriptorProto_fieldAccessorTable = new
com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_protobuf_EnumDescriptorProto_descriptor,
new java.lang.String[] { "Name", "Value", "Options", },
com.google.protobuf.DescriptorProtos.EnumDescriptorProto.class,
com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder.class);
internal_static_google_protobuf_EnumValueDescriptorProto_descriptor =
getDescriptor().getMessageTypes().get(5);
internal_static_google_protobuf_EnumValueDescriptorProto_fieldAccessorTable = new
com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_protobuf_EnumValueDescriptorProto_descriptor,
new java.lang.String[] { "Name", "Number", "Options", },
com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto.class,
com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto.Builder.class);
internal_static_google_protobuf_ServiceDescriptorProto_descriptor =
getDescriptor().getMessageTypes().get(6);
internal_static_google_protobuf_ServiceDescriptorProto_fieldAccessorTable = new
com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_protobuf_ServiceDescriptorProto_descriptor,
new java.lang.String[] { "Name", "Method", "Options", },
com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.class,
com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder.class);
internal_static_google_protobuf_MethodDescriptorProto_descriptor =
getDescriptor().getMessageTypes().get(7);
internal_static_google_protobuf_MethodDescriptorProto_fieldAccessorTable = new
com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_protobuf_MethodDescriptorProto_descriptor,
new java.lang.String[] { "Name", "InputType", "OutputType", "Options", },
com.google.protobuf.DescriptorProtos.MethodDescriptorProto.class,
com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder.class);
internal_static_google_protobuf_FileOptions_descriptor =
getDescriptor().getMessageTypes().get(8);
internal_static_google_protobuf_FileOptions_fieldAccessorTable = new
com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_protobuf_FileOptions_descriptor,
new java.lang.String[] { "JavaPackage", "JavaOuterClassname", "JavaMultipleFiles", "JavaGenerateEqualsAndHash", "OptimizeFor", "CcGenericServices", "JavaGenericServices", "PyGenericServices", "UninterpretedOption", },
com.google.protobuf.DescriptorProtos.FileOptions.class,
com.google.protobuf.DescriptorProtos.FileOptions.Builder.class);
internal_static_google_protobuf_MessageOptions_descriptor =
getDescriptor().getMessageTypes().get(9);
internal_static_google_protobuf_MessageOptions_fieldAccessorTable = new
com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_protobuf_MessageOptions_descriptor,
new java.lang.String[] { "MessageSetWireFormat", "NoStandardDescriptorAccessor", "UninterpretedOption", },
com.google.protobuf.DescriptorProtos.MessageOptions.class,
com.google.protobuf.DescriptorProtos.MessageOptions.Builder.class);
internal_static_google_protobuf_FieldOptions_descriptor =
getDescriptor().getMessageTypes().get(10);
internal_static_google_protobuf_FieldOptions_fieldAccessorTable = new
com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_protobuf_FieldOptions_descriptor,
new java.lang.String[] { "Ctype", "Packed", "Deprecated", "ExperimentalMapKey", "UninterpretedOption", },
com.google.protobuf.DescriptorProtos.FieldOptions.class,
com.google.protobuf.DescriptorProtos.FieldOptions.Builder.class);
internal_static_google_protobuf_EnumOptions_descriptor =
getDescriptor().getMessageTypes().get(11);
internal_static_google_protobuf_EnumOptions_fieldAccessorTable = new
com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_protobuf_EnumOptions_descriptor,
new java.lang.String[] { "UninterpretedOption", },
com.google.protobuf.DescriptorProtos.EnumOptions.class,
com.google.protobuf.DescriptorProtos.EnumOptions.Builder.class);
internal_static_google_protobuf_EnumValueOptions_descriptor =
getDescriptor().getMessageTypes().get(12);
internal_static_google_protobuf_EnumValueOptions_fieldAccessorTable = new
com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_protobuf_EnumValueOptions_descriptor,
new java.lang.String[] { "UninterpretedOption", },
com.google.protobuf.DescriptorProtos.EnumValueOptions.class,
com.google.protobuf.DescriptorProtos.EnumValueOptions.Builder.class);
internal_static_google_protobuf_ServiceOptions_descriptor =
getDescriptor().getMessageTypes().get(13);
internal_static_google_protobuf_ServiceOptions_fieldAccessorTable = new
com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_protobuf_ServiceOptions_descriptor,
new java.lang.String[] { "UninterpretedOption", },
com.google.protobuf.DescriptorProtos.ServiceOptions.class,
com.google.protobuf.DescriptorProtos.ServiceOptions.Builder.class);
internal_static_google_protobuf_MethodOptions_descriptor =
getDescriptor().getMessageTypes().get(14);
internal_static_google_protobuf_MethodOptions_fieldAccessorTable = new
com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_protobuf_MethodOptions_descriptor,
new java.lang.String[] { "UninterpretedOption", },
com.google.protobuf.DescriptorProtos.MethodOptions.class,
com.google.protobuf.DescriptorProtos.MethodOptions.Builder.class);
internal_static_google_protobuf_UninterpretedOption_descriptor =
getDescriptor().getMessageTypes().get(15);
internal_static_google_protobuf_UninterpretedOption_fieldAccessorTable = new
com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_protobuf_UninterpretedOption_descriptor,
new java.lang.String[] { "Name", "IdentifierValue", "PositiveIntValue", "NegativeIntValue", "DoubleValue", "StringValue", "AggregateValue", },
com.google.protobuf.DescriptorProtos.UninterpretedOption.class,
com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder.class);
internal_static_google_protobuf_UninterpretedOption_NamePart_descriptor =
internal_static_google_protobuf_UninterpretedOption_descriptor.getNestedTypes().get(0);
internal_static_google_protobuf_UninterpretedOption_NamePart_fieldAccessorTable = new
com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_protobuf_UninterpretedOption_NamePart_descriptor,
new java.lang.String[] { "NamePart", "IsExtension", },
com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart.class,
com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart.Builder.class);
internal_static_google_protobuf_SourceCodeInfo_descriptor =
getDescriptor().getMessageTypes().get(16);
internal_static_google_protobuf_SourceCodeInfo_fieldAccessorTable = new
com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_protobuf_SourceCodeInfo_descriptor,
new java.lang.String[] { "Location", },
com.google.protobuf.DescriptorProtos.SourceCodeInfo.class,
com.google.protobuf.DescriptorProtos.SourceCodeInfo.Builder.class);
internal_static_google_protobuf_SourceCodeInfo_Location_descriptor =
internal_static_google_protobuf_SourceCodeInfo_descriptor.getNestedTypes().get(0);
internal_static_google_protobuf_SourceCodeInfo_Location_fieldAccessorTable = new
com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_google_protobuf_SourceCodeInfo_Location_descriptor,
new java.lang.String[] { "Path", "Span", },
com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.class,
com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder.class);
return null;
}
};
com.google.protobuf.Descriptors.FileDescriptor
.internalBuildGeneratedFileFrom(descriptorData,
new com.google.protobuf.Descriptors.FileDescriptor[] {
}, assigner);
}
// @@protoc_insertion_point(outer_class_scope)
}
/Android Development/IOIODebuggerServer/src/com/google/protobuf/Descriptors.java
0,0 → 1,1887
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// http://code.google.com/p/protobuf/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
package com.google.protobuf;
 
import com.google.protobuf.DescriptorProtos.*;
 
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.io.UnsupportedEncodingException;
 
/**
* Contains a collection of classes which describe protocol message types.
*
* Every message type has a {@link Descriptor}, which lists all
* its fields and other information about a type. You can get a message
* type's descriptor by calling {@code MessageType.getDescriptor()}, or
* (given a message object of the type) {@code message.getDescriptorForType()}.
* Furthermore, each message is associated with a {@link FileDescriptor} for
* a relevant {@code .proto} file. You can obtain it by calling
* {@code Descriptor.getFile()}. A {@link FileDescriptor} contains descriptors
* for all the messages defined in that file, and file descriptors for all the
* imported {@code .proto} files.
*
* Descriptors are built from DescriptorProtos, as defined in
* {@code google/protobuf/descriptor.proto}.
*
* @author kenton@google.com Kenton Varda
*/
public final class Descriptors {
/**
* Describes a {@code .proto} file, including everything defined within.
* That includes, in particular, descriptors for all the messages and
* file descriptors for all other imported {@code .proto} files
* (dependencies).
*/
public static final class FileDescriptor {
/** Convert the descriptor to its protocol message representation. */
public FileDescriptorProto toProto() { return proto; }
 
/** Get the file name. */
public String getName() { return proto.getName(); }
 
/**
* Get the proto package name. This is the package name given by the
* {@code package} statement in the {@code .proto} file, which differs
* from the Java package.
*/
public String getPackage() { return proto.getPackage(); }
 
/** Get the {@code FileOptions}, defined in {@code descriptor.proto}. */
public FileOptions getOptions() { return proto.getOptions(); }
 
/** Get a list of top-level message types declared in this file. */
public List<Descriptor> getMessageTypes() {
return Collections.unmodifiableList(Arrays.asList(messageTypes));
}
 
/** Get a list of top-level enum types declared in this file. */
public List<EnumDescriptor> getEnumTypes() {
return Collections.unmodifiableList(Arrays.asList(enumTypes));
}
 
/** Get a list of top-level services declared in this file. */
public List<ServiceDescriptor> getServices() {
return Collections.unmodifiableList(Arrays.asList(services));
}
 
/** Get a list of top-level extensions declared in this file. */
public List<FieldDescriptor> getExtensions() {
return Collections.unmodifiableList(Arrays.asList(extensions));
}
 
/** Get a list of this file's dependencies (imports). */
public List<FileDescriptor> getDependencies() {
return Collections.unmodifiableList(Arrays.asList(dependencies));
}
 
/**
* Find a message type in the file by name. Does not find nested types.
*
* @param name The unqualified type name to look for.
* @return The message type's descriptor, or {@code null} if not found.
*/
public Descriptor findMessageTypeByName(String name) {
// Don't allow looking up nested types. This will make optimization
// easier later.
if (name.indexOf('.') != -1) {
return null;
}
if (getPackage().length() > 0) {
name = getPackage() + '.' + name;
}
final GenericDescriptor result = pool.findSymbol(name);
if (result != null && result instanceof Descriptor &&
result.getFile() == this) {
return (Descriptor)result;
} else {
return null;
}
}
 
/**
* Find an enum type in the file by name. Does not find nested types.
*
* @param name The unqualified type name to look for.
* @return The enum type's descriptor, or {@code null} if not found.
*/
public EnumDescriptor findEnumTypeByName(String name) {
// Don't allow looking up nested types. This will make optimization
// easier later.
if (name.indexOf('.') != -1) {
return null;
}
if (getPackage().length() > 0) {
name = getPackage() + '.' + name;
}
final GenericDescriptor result = pool.findSymbol(name);
if (result != null && result instanceof EnumDescriptor &&
result.getFile() == this) {
return (EnumDescriptor)result;
} else {
return null;
}
}
 
/**
* Find a service type in the file by name.
*
* @param name The unqualified type name to look for.
* @return The service type's descriptor, or {@code null} if not found.
*/
public ServiceDescriptor findServiceByName(String name) {
// Don't allow looking up nested types. This will make optimization
// easier later.
if (name.indexOf('.') != -1) {
return null;
}
if (getPackage().length() > 0) {
name = getPackage() + '.' + name;
}
final GenericDescriptor result = pool.findSymbol(name);
if (result != null && result instanceof ServiceDescriptor &&
result.getFile() == this) {
return (ServiceDescriptor)result;
} else {
return null;
}
}
 
/**
* Find an extension in the file by name. Does not find extensions nested
* inside message types.
*
* @param name The unqualified extension name to look for.
* @return The extension's descriptor, or {@code null} if not found.
*/
public FieldDescriptor findExtensionByName(String name) {
if (name.indexOf('.') != -1) {
return null;
}
if (getPackage().length() > 0) {
name = getPackage() + '.' + name;
}
final GenericDescriptor result = pool.findSymbol(name);
if (result != null && result instanceof FieldDescriptor &&
result.getFile() == this) {
return (FieldDescriptor)result;
} else {
return null;
}
}
 
/**
* Construct a {@code FileDescriptor}.
*
* @param proto The protocol message form of the FileDescriptor.
* @param dependencies {@code FileDescriptor}s corresponding to all of
* the file's dependencies, in the exact order listed
* in {@code proto}.
* @throws DescriptorValidationException {@code proto} is not a valid
* descriptor. This can occur for a number of reasons, e.g.
* because a field has an undefined type or because two messages
* were defined with the same name.
*/
public static FileDescriptor buildFrom(final FileDescriptorProto proto,
final FileDescriptor[] dependencies)
throws DescriptorValidationException {
// Building decsriptors involves two steps: translating and linking.
// In the translation step (implemented by FileDescriptor's
// constructor), we build an object tree mirroring the
// FileDescriptorProto's tree and put all of the descriptors into the
// DescriptorPool's lookup tables. In the linking step, we look up all
// type references in the DescriptorPool, so that, for example, a
// FieldDescriptor for an embedded message contains a pointer directly
// to the Descriptor for that message's type. We also detect undefined
// types in the linking step.
final DescriptorPool pool = new DescriptorPool(dependencies);
final FileDescriptor result =
new FileDescriptor(proto, dependencies, pool);
 
if (dependencies.length != proto.getDependencyCount()) {
throw new DescriptorValidationException(result,
"Dependencies passed to FileDescriptor.buildFrom() don't match " +
"those listed in the FileDescriptorProto.");
}
for (int i = 0; i < proto.getDependencyCount(); i++) {
if (!dependencies[i].getName().equals(proto.getDependency(i))) {
throw new DescriptorValidationException(result,
"Dependencies passed to FileDescriptor.buildFrom() don't match " +
"those listed in the FileDescriptorProto.");
}
}
 
result.crossLink();
return result;
}
 
/**
* This method is to be called by generated code only. It is equivalent
* to {@code buildFrom} except that the {@code FileDescriptorProto} is
* encoded in protocol buffer wire format.
*/
public static void internalBuildGeneratedFileFrom(
final String[] descriptorDataParts,
final FileDescriptor[] dependencies,
final InternalDescriptorAssigner descriptorAssigner) {
// Hack: We can't embed a raw byte array inside generated Java code
// (at least, not efficiently), but we can embed Strings. So, the
// protocol compiler embeds the FileDescriptorProto as a giant
// string literal which is passed to this function to construct the
// file's FileDescriptor. The string literal contains only 8-bit
// characters, each one representing a byte of the FileDescriptorProto's
// serialized form. So, if we convert it to bytes in ISO-8859-1, we
// should get the original bytes that we want.
 
// descriptorData may contain multiple strings in order to get around the
// Java 64k string literal limit.
StringBuilder descriptorData = new StringBuilder();
for (String part : descriptorDataParts) {
descriptorData.append(part);
}
 
final byte[] descriptorBytes;
try {
descriptorBytes = descriptorData.toString().getBytes("ISO-8859-1");
} catch (UnsupportedEncodingException e) {
throw new RuntimeException(
"Standard encoding ISO-8859-1 not supported by JVM.", e);
}
 
FileDescriptorProto proto;
try {
proto = FileDescriptorProto.parseFrom(descriptorBytes);
} catch (InvalidProtocolBufferException e) {
throw new IllegalArgumentException(
"Failed to parse protocol buffer descriptor for generated code.", e);
}
 
final FileDescriptor result;
try {
result = buildFrom(proto, dependencies);
} catch (DescriptorValidationException e) {
throw new IllegalArgumentException(
"Invalid embedded descriptor for \"" + proto.getName() + "\".", e);
}
 
final ExtensionRegistry registry =
descriptorAssigner.assignDescriptors(result);
 
if (registry != null) {
// We must re-parse the proto using the registry.
try {
proto = FileDescriptorProto.parseFrom(descriptorBytes, registry);
} catch (InvalidProtocolBufferException e) {
throw new IllegalArgumentException(
"Failed to parse protocol buffer descriptor for generated code.",
e);
}
 
result.setProto(proto);
}
}
 
/**
* This class should be used by generated code only. When calling
* {@link FileDescriptor#internalBuildGeneratedFileFrom}, the caller
* provides a callback implementing this interface. The callback is called
* after the FileDescriptor has been constructed, in order to assign all
* the global variales defined in the generated code which point at parts
* of the FileDescriptor. The callback returns an ExtensionRegistry which
* contains any extensions which might be used in the descriptor -- that
* is, extensions of the various "Options" messages defined in
* descriptor.proto. The callback may also return null to indicate that
* no extensions are used in the decsriptor.
*/
public interface InternalDescriptorAssigner {
ExtensionRegistry assignDescriptors(FileDescriptor root);
}
 
private FileDescriptorProto proto;
private final Descriptor[] messageTypes;
private final EnumDescriptor[] enumTypes;
private final ServiceDescriptor[] services;
private final FieldDescriptor[] extensions;
private final FileDescriptor[] dependencies;
private final DescriptorPool pool;
 
private FileDescriptor(final FileDescriptorProto proto,
final FileDescriptor[] dependencies,
final DescriptorPool pool)
throws DescriptorValidationException {
this.pool = pool;
this.proto = proto;
this.dependencies = dependencies.clone();
 
pool.addPackage(getPackage(), this);
 
messageTypes = new Descriptor[proto.getMessageTypeCount()];
for (int i = 0; i < proto.getMessageTypeCount(); i++) {
messageTypes[i] =
new Descriptor(proto.getMessageType(i), this, null, i);
}
 
enumTypes = new EnumDescriptor[proto.getEnumTypeCount()];
for (int i = 0; i < proto.getEnumTypeCount(); i++) {
enumTypes[i] = new EnumDescriptor(proto.getEnumType(i), this, null, i);
}
 
services = new ServiceDescriptor[proto.getServiceCount()];
for (int i = 0; i < proto.getServiceCount(); i++) {
services[i] = new ServiceDescriptor(proto.getService(i), this, i);
}
 
extensions = new FieldDescriptor[proto.getExtensionCount()];
for (int i = 0; i < proto.getExtensionCount(); i++) {
extensions[i] = new FieldDescriptor(
proto.getExtension(i), this, null, i, true);
}
}
 
/** Look up and cross-link all field types, etc. */
private void crossLink() throws DescriptorValidationException {
for (final Descriptor messageType : messageTypes) {
messageType.crossLink();
}
 
for (final ServiceDescriptor service : services) {
service.crossLink();
}
 
for (final FieldDescriptor extension : extensions) {
extension.crossLink();
}
}
 
/**
* Replace our {@link FileDescriptorProto} with the given one, which is
* identical except that it might contain extensions that weren't present
* in the original. This method is needed for bootstrapping when a file
* defines custom options. The options may be defined in the file itself,
* so we can't actually parse them until we've constructed the descriptors,
* but to construct the decsriptors we have to have parsed the descriptor
* protos. So, we have to parse the descriptor protos a second time after
* constructing the descriptors.
*/
private void setProto(final FileDescriptorProto proto) {
this.proto = proto;
 
for (int i = 0; i < messageTypes.length; i++) {
messageTypes[i].setProto(proto.getMessageType(i));
}
 
for (int i = 0; i < enumTypes.length; i++) {
enumTypes[i].setProto(proto.getEnumType(i));
}
 
for (int i = 0; i < services.length; i++) {
services[i].setProto(proto.getService(i));
}
 
for (int i = 0; i < extensions.length; i++) {
extensions[i].setProto(proto.getExtension(i));
}
}
}
 
// =================================================================
 
/** Describes a message type. */
public static final class Descriptor implements GenericDescriptor {
/**
* Get the index of this descriptor within its parent. In other words,
* given a {@link FileDescriptor} {@code file}, the following is true:
* <pre>
* for all i in [0, file.getMessageTypeCount()):
* file.getMessageType(i).getIndex() == i
* </pre>
* Similarly, for a {@link Descriptor} {@code messageType}:
* <pre>
* for all i in [0, messageType.getNestedTypeCount()):
* messageType.getNestedType(i).getIndex() == i
* </pre>
*/
public int getIndex() { return index; }
 
/** Convert the descriptor to its protocol message representation. */
public DescriptorProto toProto() { return proto; }
 
/** Get the type's unqualified name. */
public String getName() { return proto.getName(); }
 
/**
* Get the type's fully-qualified name, within the proto language's
* namespace. This differs from the Java name. For example, given this
* {@code .proto}:
* <pre>
* package foo.bar;
* option java_package = "com.example.protos"
* message Baz {}
* </pre>
* {@code Baz}'s full name is "foo.bar.Baz".
*/
public String getFullName() { return fullName; }
 
/** Get the {@link FileDescriptor} containing this descriptor. */
public FileDescriptor getFile() { return file; }
 
/** If this is a nested type, get the outer descriptor, otherwise null. */
public Descriptor getContainingType() { return containingType; }
 
/** Get the {@code MessageOptions}, defined in {@code descriptor.proto}. */
public MessageOptions getOptions() { return proto.getOptions(); }
 
/** Get a list of this message type's fields. */
public List<FieldDescriptor> getFields() {
return Collections.unmodifiableList(Arrays.asList(fields));
}
 
/** Get a list of this message type's extensions. */
public List<FieldDescriptor> getExtensions() {
return Collections.unmodifiableList(Arrays.asList(extensions));
}
 
/** Get a list of message types nested within this one. */
public List<Descriptor> getNestedTypes() {
return Collections.unmodifiableList(Arrays.asList(nestedTypes));
}
 
/** Get a list of enum types nested within this one. */
public List<EnumDescriptor> getEnumTypes() {
return Collections.unmodifiableList(Arrays.asList(enumTypes));
}
 
/** Determines if the given field number is an extension. */
public boolean isExtensionNumber(final int number) {
for (final DescriptorProto.ExtensionRange range :
proto.getExtensionRangeList()) {
if (range.getStart() <= number && number < range.getEnd()) {
return true;
}
}
return false;
}
 
/**
* Finds a field by name.
* @param name The unqualified name of the field (e.g. "foo").
* @return The field's descriptor, or {@code null} if not found.
*/
public FieldDescriptor findFieldByName(final String name) {
final GenericDescriptor result =
file.pool.findSymbol(fullName + '.' + name);
if (result != null && result instanceof FieldDescriptor) {
return (FieldDescriptor)result;
} else {
return null;
}
}
 
/**
* Finds a field by field number.
* @param number The field number within this message type.
* @return The field's descriptor, or {@code null} if not found.
*/
public FieldDescriptor findFieldByNumber(final int number) {
return file.pool.fieldsByNumber.get(
new DescriptorPool.DescriptorIntPair(this, number));
}
 
/**
* Finds a nested message type by name.
* @param name The unqualified name of the nested type (e.g. "Foo").
* @return The types's descriptor, or {@code null} if not found.
*/
public Descriptor findNestedTypeByName(final String name) {
final GenericDescriptor result =
file.pool.findSymbol(fullName + '.' + name);
if (result != null && result instanceof Descriptor) {
return (Descriptor)result;
} else {
return null;
}
}
 
/**
* Finds a nested enum type by name.
* @param name The unqualified name of the nested type (e.g. "Foo").
* @return The types's descriptor, or {@code null} if not found.
*/
public EnumDescriptor findEnumTypeByName(final String name) {
final GenericDescriptor result =
file.pool.findSymbol(fullName + '.' + name);
if (result != null && result instanceof EnumDescriptor) {
return (EnumDescriptor)result;
} else {
return null;
}
}
 
private final int index;
private DescriptorProto proto;
private final String fullName;
private final FileDescriptor file;
private final Descriptor containingType;
private final Descriptor[] nestedTypes;
private final EnumDescriptor[] enumTypes;
private final FieldDescriptor[] fields;
private final FieldDescriptor[] extensions;
 
private Descriptor(final DescriptorProto proto,
final FileDescriptor file,
final Descriptor parent,
final int index)
throws DescriptorValidationException {
this.index = index;
this.proto = proto;
fullName = computeFullName(file, parent, proto.getName());
this.file = file;
containingType = parent;
 
nestedTypes = new Descriptor[proto.getNestedTypeCount()];
for (int i = 0; i < proto.getNestedTypeCount(); i++) {
nestedTypes[i] = new Descriptor(
proto.getNestedType(i), file, this, i);
}
 
enumTypes = new EnumDescriptor[proto.getEnumTypeCount()];
for (int i = 0; i < proto.getEnumTypeCount(); i++) {
enumTypes[i] = new EnumDescriptor(
proto.getEnumType(i), file, this, i);
}
 
fields = new FieldDescriptor[proto.getFieldCount()];
for (int i = 0; i < proto.getFieldCount(); i++) {
fields[i] = new FieldDescriptor(
proto.getField(i), file, this, i, false);
}
 
extensions = new FieldDescriptor[proto.getExtensionCount()];
for (int i = 0; i < proto.getExtensionCount(); i++) {
extensions[i] = new FieldDescriptor(
proto.getExtension(i), file, this, i, true);
}
 
file.pool.addSymbol(this);
}
 
/** Look up and cross-link all field types, etc. */
private void crossLink() throws DescriptorValidationException {
for (final Descriptor nestedType : nestedTypes) {
nestedType.crossLink();
}
 
for (final FieldDescriptor field : fields) {
field.crossLink();
}
 
for (final FieldDescriptor extension : extensions) {
extension.crossLink();
}
}
 
/** See {@link FileDescriptor#setProto}. */
private void setProto(final DescriptorProto proto) {
this.proto = proto;
 
for (int i = 0; i < nestedTypes.length; i++) {
nestedTypes[i].setProto(proto.getNestedType(i));
}
 
for (int i = 0; i < enumTypes.length; i++) {
enumTypes[i].setProto(proto.getEnumType(i));
}
 
for (int i = 0; i < fields.length; i++) {
fields[i].setProto(proto.getField(i));
}
 
for (int i = 0; i < extensions.length; i++) {
extensions[i].setProto(proto.getExtension(i));
}
}
}
 
// =================================================================
 
/** Describes a field of a message type. */
public static final class FieldDescriptor
implements GenericDescriptor, Comparable<FieldDescriptor>,
FieldSet.FieldDescriptorLite<FieldDescriptor> {
/**
* Get the index of this descriptor within its parent.
* @see Descriptor#getIndex()
*/
public int getIndex() { return index; }
 
/** Convert the descriptor to its protocol message representation. */
public FieldDescriptorProto toProto() { return proto; }
 
/** Get the field's unqualified name. */
public String getName() { return proto.getName(); }
 
/** Get the field's number. */
public int getNumber() { return proto.getNumber(); }
 
/**
* Get the field's fully-qualified name.
* @see Descriptor#getFullName()
*/
public String getFullName() { return fullName; }
 
/**
* Get the field's java type. This is just for convenience. Every
* {@code FieldDescriptorProto.Type} maps to exactly one Java type.
*/
public JavaType getJavaType() { return type.getJavaType(); }
 
/** For internal use only. */
public WireFormat.JavaType getLiteJavaType() {
return getLiteType().getJavaType();
}
 
/** Get the {@code FileDescriptor} containing this descriptor. */
public FileDescriptor getFile() { return file; }
 
/** Get the field's declared type. */
public Type getType() { return type; }
 
/** For internal use only. */
public WireFormat.FieldType getLiteType() {
return table[type.ordinal()];
}
// I'm pretty sure values() constructs a new array every time, since there
// is nothing stopping the caller from mutating the array. Therefore we
// make a static copy here.
private static final WireFormat.FieldType[] table =
WireFormat.FieldType.values();
 
/** Is this field declared required? */
public boolean isRequired() {
return proto.getLabel() == FieldDescriptorProto.Label.LABEL_REQUIRED;
}
 
/** Is this field declared optional? */
public boolean isOptional() {
return proto.getLabel() == FieldDescriptorProto.Label.LABEL_OPTIONAL;
}
 
/** Is this field declared repeated? */
public boolean isRepeated() {
return proto.getLabel() == FieldDescriptorProto.Label.LABEL_REPEATED;
}
 
/** Does this field have the {@code [packed = true]} option? */
public boolean isPacked() {
return getOptions().getPacked();
}
 
/** Can this field be packed? i.e. is it a repeated primitive field? */
public boolean isPackable() {
return isRepeated() && getLiteType().isPackable();
}
 
/** Returns true if the field had an explicitly-defined default value. */
public boolean hasDefaultValue() { return proto.hasDefaultValue(); }
 
/**
* Returns the field's default value. Valid for all types except for
* messages and groups. For all other types, the object returned is of
* the same class that would returned by Message.getField(this).
*/
public Object getDefaultValue() {
if (getJavaType() == JavaType.MESSAGE) {
throw new UnsupportedOperationException(
"FieldDescriptor.getDefaultValue() called on an embedded message " +
"field.");
}
return defaultValue;
}
 
/** Get the {@code FieldOptions}, defined in {@code descriptor.proto}. */
public FieldOptions getOptions() { return proto.getOptions(); }
 
/** Is this field an extension? */
public boolean isExtension() { return proto.hasExtendee(); }
 
/**
* Get the field's containing type. For extensions, this is the type being
* extended, not the location where the extension was defined. See
* {@link #getExtensionScope()}.
*/
public Descriptor getContainingType() { return containingType; }
 
/**
* For extensions defined nested within message types, gets the outer
* type. Not valid for non-extension fields. For example, consider
* this {@code .proto} file:
* <pre>
* message Foo {
* extensions 1000 to max;
* }
* extend Foo {
* optional int32 baz = 1234;
* }
* message Bar {
* extend Foo {
* optional int32 qux = 4321;
* }
* }
* </pre>
* Both {@code baz}'s and {@code qux}'s containing type is {@code Foo}.
* However, {@code baz}'s extension scope is {@code null} while
* {@code qux}'s extension scope is {@code Bar}.
*/
public Descriptor getExtensionScope() {
if (!isExtension()) {
throw new UnsupportedOperationException(
"This field is not an extension.");
}
return extensionScope;
}
 
/** For embedded message and group fields, gets the field's type. */
public Descriptor getMessageType() {
if (getJavaType() != JavaType.MESSAGE) {
throw new UnsupportedOperationException(
"This field is not of message type.");
}
return messageType;
}
 
/** For enum fields, gets the field's type. */
public EnumDescriptor getEnumType() {
if (getJavaType() != JavaType.ENUM) {
throw new UnsupportedOperationException(
"This field is not of enum type.");
}
return enumType;
}
 
/**
* Compare with another {@code FieldDescriptor}. This orders fields in
* "canonical" order, which simply means ascending order by field number.
* {@code other} must be a field of the same type -- i.e.
* {@code getContainingType()} must return the same {@code Descriptor} for
* both fields.
*
* @return negative, zero, or positive if {@code this} is less than,
* equal to, or greater than {@code other}, respectively.
*/
public int compareTo(final FieldDescriptor other) {
if (other.containingType != containingType) {
throw new IllegalArgumentException(
"FieldDescriptors can only be compared to other FieldDescriptors " +
"for fields of the same message type.");
}
return getNumber() - other.getNumber();
}
 
private final int index;
 
private FieldDescriptorProto proto;
private final String fullName;
private final FileDescriptor file;
private final Descriptor extensionScope;
 
// Possibly initialized during cross-linking.
private Type type;
private Descriptor containingType;
private Descriptor messageType;
private EnumDescriptor enumType;
private Object defaultValue;
 
public enum Type {
DOUBLE (JavaType.DOUBLE ),
FLOAT (JavaType.FLOAT ),
INT64 (JavaType.LONG ),
UINT64 (JavaType.LONG ),
INT32 (JavaType.INT ),
FIXED64 (JavaType.LONG ),
FIXED32 (JavaType.INT ),
BOOL (JavaType.BOOLEAN ),
STRING (JavaType.STRING ),
GROUP (JavaType.MESSAGE ),
MESSAGE (JavaType.MESSAGE ),
BYTES (JavaType.BYTE_STRING),
UINT32 (JavaType.INT ),
ENUM (JavaType.ENUM ),
SFIXED32(JavaType.INT ),
SFIXED64(JavaType.LONG ),
SINT32 (JavaType.INT ),
SINT64 (JavaType.LONG );
 
Type(final JavaType javaType) {
this.javaType = javaType;
}
 
private JavaType javaType;
 
public FieldDescriptorProto.Type toProto() {
return FieldDescriptorProto.Type.valueOf(ordinal() + 1);
}
public JavaType getJavaType() { return javaType; }
 
public static Type valueOf(final FieldDescriptorProto.Type type) {
return values()[type.getNumber() - 1];
}
}
 
static {
// Refuse to init if someone added a new declared type.
if (Type.values().length != FieldDescriptorProto.Type.values().length) {
throw new RuntimeException(
"descriptor.proto has a new declared type but Desrciptors.java " +
"wasn't updated.");
}
}
 
public enum JavaType {
INT(0),
LONG(0L),
FLOAT(0F),
DOUBLE(0D),
BOOLEAN(false),
STRING(""),
BYTE_STRING(ByteString.EMPTY),
ENUM(null),
MESSAGE(null);
 
JavaType(final Object defaultDefault) {
this.defaultDefault = defaultDefault;
}
 
/**
* The default default value for fields of this type, if it's a primitive
* type. This is meant for use inside this file only, hence is private.
*/
private final Object defaultDefault;
}
 
private FieldDescriptor(final FieldDescriptorProto proto,
final FileDescriptor file,
final Descriptor parent,
final int index,
final boolean isExtension)
throws DescriptorValidationException {
this.index = index;
this.proto = proto;
fullName = computeFullName(file, parent, proto.getName());
this.file = file;
 
if (proto.hasType()) {
type = Type.valueOf(proto.getType());
}
 
if (getNumber() <= 0) {
throw new DescriptorValidationException(this,
"Field numbers must be positive integers.");
}
 
// Only repeated primitive fields may be packed.
if (proto.getOptions().getPacked() && !isPackable()) {
throw new DescriptorValidationException(this,
"[packed = true] can only be specified for repeated primitive " +
"fields.");
}
 
if (isExtension) {
if (!proto.hasExtendee()) {
throw new DescriptorValidationException(this,
"FieldDescriptorProto.extendee not set for extension field.");
}
containingType = null; // Will be filled in when cross-linking
if (parent != null) {
extensionScope = parent;
} else {
extensionScope = null;
}
} else {
if (proto.hasExtendee()) {
throw new DescriptorValidationException(this,
"FieldDescriptorProto.extendee set for non-extension field.");
}
containingType = parent;
extensionScope = null;
}
 
file.pool.addSymbol(this);
}
 
/** Look up and cross-link all field types, etc. */
private void crossLink() throws DescriptorValidationException {
if (proto.hasExtendee()) {
final GenericDescriptor extendee =
file.pool.lookupSymbol(proto.getExtendee(), this);
if (!(extendee instanceof Descriptor)) {
throw new DescriptorValidationException(this,
'\"' + proto.getExtendee() + "\" is not a message type.");
}
containingType = (Descriptor)extendee;
 
if (!getContainingType().isExtensionNumber(getNumber())) {
throw new DescriptorValidationException(this,
'\"' + getContainingType().getFullName() +
"\" does not declare " + getNumber() +
" as an extension number.");
}
}
 
if (proto.hasTypeName()) {
final GenericDescriptor typeDescriptor =
file.pool.lookupSymbol(proto.getTypeName(), this);
 
if (!proto.hasType()) {
// Choose field type based on symbol.
if (typeDescriptor instanceof Descriptor) {
type = Type.MESSAGE;
} else if (typeDescriptor instanceof EnumDescriptor) {
type = Type.ENUM;
} else {
throw new DescriptorValidationException(this,
'\"' + proto.getTypeName() + "\" is not a type.");
}
}
 
if (getJavaType() == JavaType.MESSAGE) {
if (!(typeDescriptor instanceof Descriptor)) {
throw new DescriptorValidationException(this,
'\"' + proto.getTypeName() + "\" is not a message type.");
}
messageType = (Descriptor)typeDescriptor;
 
if (proto.hasDefaultValue()) {
throw new DescriptorValidationException(this,
"Messages can't have default values.");
}
} else if (getJavaType() == JavaType.ENUM) {
if (!(typeDescriptor instanceof EnumDescriptor)) {
throw new DescriptorValidationException(this,
'\"' + proto.getTypeName() + "\" is not an enum type.");
}
enumType = (EnumDescriptor)typeDescriptor;
} else {
throw new DescriptorValidationException(this,
"Field with primitive type has type_name.");
}
} else {
if (getJavaType() == JavaType.MESSAGE ||
getJavaType() == JavaType.ENUM) {
throw new DescriptorValidationException(this,
"Field with message or enum type missing type_name.");
}
}
 
// We don't attempt to parse the default value until here because for
// enums we need the enum type's descriptor.
if (proto.hasDefaultValue()) {
if (isRepeated()) {
throw new DescriptorValidationException(this,
"Repeated fields cannot have default values.");
}
 
try {
switch (getType()) {
case INT32:
case SINT32:
case SFIXED32:
defaultValue = TextFormat.parseInt32(proto.getDefaultValue());
break;
case UINT32:
case FIXED32:
defaultValue = TextFormat.parseUInt32(proto.getDefaultValue());
break;
case INT64:
case SINT64:
case SFIXED64:
defaultValue = TextFormat.parseInt64(proto.getDefaultValue());
break;
case UINT64:
case FIXED64:
defaultValue = TextFormat.parseUInt64(proto.getDefaultValue());
break;
case FLOAT:
if (proto.getDefaultValue().equals("inf")) {
defaultValue = Float.POSITIVE_INFINITY;
} else if (proto.getDefaultValue().equals("-inf")) {
defaultValue = Float.NEGATIVE_INFINITY;
} else if (proto.getDefaultValue().equals("nan")) {
defaultValue = Float.NaN;
} else {
defaultValue = Float.valueOf(proto.getDefaultValue());
}
break;
case DOUBLE:
if (proto.getDefaultValue().equals("inf")) {
defaultValue = Double.POSITIVE_INFINITY;
} else if (proto.getDefaultValue().equals("-inf")) {
defaultValue = Double.NEGATIVE_INFINITY;
} else if (proto.getDefaultValue().equals("nan")) {
defaultValue = Double.NaN;
} else {
defaultValue = Double.valueOf(proto.getDefaultValue());
}
break;
case BOOL:
defaultValue = Boolean.valueOf(proto.getDefaultValue());
break;
case STRING:
defaultValue = proto.getDefaultValue();
break;
case BYTES:
try {
defaultValue =
TextFormat.unescapeBytes(proto.getDefaultValue());
} catch (TextFormat.InvalidEscapeSequenceException e) {
throw new DescriptorValidationException(this,
"Couldn't parse default value: " + e.getMessage(), e);
}
break;
case ENUM:
defaultValue = enumType.findValueByName(proto.getDefaultValue());
if (defaultValue == null) {
throw new DescriptorValidationException(this,
"Unknown enum default value: \"" +
proto.getDefaultValue() + '\"');
}
break;
case MESSAGE:
case GROUP:
throw new DescriptorValidationException(this,
"Message type had default value.");
}
} catch (NumberFormatException e) {
throw new DescriptorValidationException(this,
"Could not parse default value: \"" +
proto.getDefaultValue() + '\"', e);
}
} else {
// Determine the default default for this field.
if (isRepeated()) {
defaultValue = Collections.emptyList();
} else {
switch (getJavaType()) {
case ENUM:
// We guarantee elsewhere that an enum type always has at least
// one possible value.
defaultValue = enumType.getValues().get(0);
break;
case MESSAGE:
defaultValue = null;
break;
default:
defaultValue = getJavaType().defaultDefault;
break;
}
}
}
 
if (!isExtension()) {
file.pool.addFieldByNumber(this);
}
 
if (containingType != null &&
containingType.getOptions().getMessageSetWireFormat()) {
if (isExtension()) {
if (!isOptional() || getType() != Type.MESSAGE) {
throw new DescriptorValidationException(this,
"Extensions of MessageSets must be optional messages.");
}
} else {
throw new DescriptorValidationException(this,
"MessageSets cannot have fields, only extensions.");
}
}
}
 
/** See {@link FileDescriptor#setProto}. */
private void setProto(final FieldDescriptorProto proto) {
this.proto = proto;
}
 
/**
* For internal use only. This is to satisfy the FieldDescriptorLite
* interface.
*/
public MessageLite.Builder internalMergeFrom(
MessageLite.Builder to, MessageLite from) {
// FieldDescriptors are only used with non-lite messages so we can just
// down-cast and call mergeFrom directly.
return ((Message.Builder) to).mergeFrom((Message) from);
}
}
 
// =================================================================
 
/** Describes an enum type. */
public static final class EnumDescriptor
implements GenericDescriptor, Internal.EnumLiteMap<EnumValueDescriptor> {
/**
* Get the index of this descriptor within its parent.
* @see Descriptor#getIndex()
*/
public int getIndex() { return index; }
 
/** Convert the descriptor to its protocol message representation. */
public EnumDescriptorProto toProto() { return proto; }
 
/** Get the type's unqualified name. */
public String getName() { return proto.getName(); }
 
/**
* Get the type's fully-qualified name.
* @see Descriptor#getFullName()
*/
public String getFullName() { return fullName; }
 
/** Get the {@link FileDescriptor} containing this descriptor. */
public FileDescriptor getFile() { return file; }
 
/** If this is a nested type, get the outer descriptor, otherwise null. */
public Descriptor getContainingType() { return containingType; }
 
/** Get the {@code EnumOptions}, defined in {@code descriptor.proto}. */
public EnumOptions getOptions() { return proto.getOptions(); }
 
/** Get a list of defined values for this enum. */
public List<EnumValueDescriptor> getValues() {
return Collections.unmodifiableList(Arrays.asList(values));
}
 
/**
* Find an enum value by name.
* @param name The unqualified name of the value (e.g. "FOO").
* @return the value's decsriptor, or {@code null} if not found.
*/
public EnumValueDescriptor findValueByName(final String name) {
final GenericDescriptor result =
file.pool.findSymbol(fullName + '.' + name);
if (result != null && result instanceof EnumValueDescriptor) {
return (EnumValueDescriptor)result;
} else {
return null;
}
}
 
/**
* Find an enum value by number. If multiple enum values have the same
* number, this returns the first defined value with that number.
* @param number The value's number.
* @return the value's decsriptor, or {@code null} if not found.
*/
public EnumValueDescriptor findValueByNumber(final int number) {
return file.pool.enumValuesByNumber.get(
new DescriptorPool.DescriptorIntPair(this, number));
}
 
private final int index;
private EnumDescriptorProto proto;
private final String fullName;
private final FileDescriptor file;
private final Descriptor containingType;
private EnumValueDescriptor[] values;
 
private EnumDescriptor(final EnumDescriptorProto proto,
final FileDescriptor file,
final Descriptor parent,
final int index)
throws DescriptorValidationException {
this.index = index;
this.proto = proto;
fullName = computeFullName(file, parent, proto.getName());
this.file = file;
containingType = parent;
 
if (proto.getValueCount() == 0) {
// We cannot allow enums with no values because this would mean there
// would be no valid default value for fields of this type.
throw new DescriptorValidationException(this,
"Enums must contain at least one value.");
}
 
values = new EnumValueDescriptor[proto.getValueCount()];
for (int i = 0; i < proto.getValueCount(); i++) {
values[i] = new EnumValueDescriptor(
proto.getValue(i), file, this, i);
}
 
file.pool.addSymbol(this);
}
 
/** See {@link FileDescriptor#setProto}. */
private void setProto(final EnumDescriptorProto proto) {
this.proto = proto;
 
for (int i = 0; i < values.length; i++) {
values[i].setProto(proto.getValue(i));
}
}
}
 
// =================================================================
 
/**
* Describes one value within an enum type. Note that multiple defined
* values may have the same number. In generated Java code, all values
* with the same number after the first become aliases of the first.
* However, they still have independent EnumValueDescriptors.
*/
public static final class EnumValueDescriptor
implements GenericDescriptor, Internal.EnumLite {
/**
* Get the index of this descriptor within its parent.
* @see Descriptor#getIndex()
*/
public int getIndex() { return index; }
 
/** Convert the descriptor to its protocol message representation. */
public EnumValueDescriptorProto toProto() { return proto; }
 
/** Get the value's unqualified name. */
public String getName() { return proto.getName(); }
 
/** Get the value's number. */
public int getNumber() { return proto.getNumber(); }
 
/**
* Get the value's fully-qualified name.
* @see Descriptor#getFullName()
*/
public String getFullName() { return fullName; }
 
/** Get the {@link FileDescriptor} containing this descriptor. */
public FileDescriptor getFile() { return file; }
 
/** Get the value's enum type. */
public EnumDescriptor getType() { return type; }
 
/**
* Get the {@code EnumValueOptions}, defined in {@code descriptor.proto}.
*/
public EnumValueOptions getOptions() { return proto.getOptions(); }
 
private final int index;
private EnumValueDescriptorProto proto;
private final String fullName;
private final FileDescriptor file;
private final EnumDescriptor type;
 
private EnumValueDescriptor(final EnumValueDescriptorProto proto,
final FileDescriptor file,
final EnumDescriptor parent,
final int index)
throws DescriptorValidationException {
this.index = index;
this.proto = proto;
this.file = file;
type = parent;
 
fullName = parent.getFullName() + '.' + proto.getName();
 
file.pool.addSymbol(this);
file.pool.addEnumValueByNumber(this);
}
 
/** See {@link FileDescriptor#setProto}. */
private void setProto(final EnumValueDescriptorProto proto) {
this.proto = proto;
}
}
 
// =================================================================
 
/** Describes a service type. */
public static final class ServiceDescriptor implements GenericDescriptor {
/**
* Get the index of this descriptor within its parent.
* * @see Descriptors.Descriptor#getIndex()
*/
public int getIndex() { return index; }
 
/** Convert the descriptor to its protocol message representation. */
public ServiceDescriptorProto toProto() { return proto; }
 
/** Get the type's unqualified name. */
public String getName() { return proto.getName(); }
 
/**
* Get the type's fully-qualified name.
* @see Descriptor#getFullName()
*/
public String getFullName() { return fullName; }
 
/** Get the {@link FileDescriptor} containing this descriptor. */
public FileDescriptor getFile() { return file; }
 
/** Get the {@code ServiceOptions}, defined in {@code descriptor.proto}. */
public ServiceOptions getOptions() { return proto.getOptions(); }
 
/** Get a list of methods for this service. */
public List<MethodDescriptor> getMethods() {
return Collections.unmodifiableList(Arrays.asList(methods));
}
 
/**
* Find a method by name.
* @param name The unqualified name of the method (e.g. "Foo").
* @return the method's decsriptor, or {@code null} if not found.
*/
public MethodDescriptor findMethodByName(final String name) {
final GenericDescriptor result =
file.pool.findSymbol(fullName + '.' + name);
if (result != null && result instanceof MethodDescriptor) {
return (MethodDescriptor)result;
} else {
return null;
}
}
 
private final int index;
private ServiceDescriptorProto proto;
private final String fullName;
private final FileDescriptor file;
private MethodDescriptor[] methods;
 
private ServiceDescriptor(final ServiceDescriptorProto proto,
final FileDescriptor file,
final int index)
throws DescriptorValidationException {
this.index = index;
this.proto = proto;
fullName = computeFullName(file, null, proto.getName());
this.file = file;
 
methods = new MethodDescriptor[proto.getMethodCount()];
for (int i = 0; i < proto.getMethodCount(); i++) {
methods[i] = new MethodDescriptor(
proto.getMethod(i), file, this, i);
}
 
file.pool.addSymbol(this);
}
 
private void crossLink() throws DescriptorValidationException {
for (final MethodDescriptor method : methods) {
method.crossLink();
}
}
 
/** See {@link FileDescriptor#setProto}. */
private void setProto(final ServiceDescriptorProto proto) {
this.proto = proto;
 
for (int i = 0; i < methods.length; i++) {
methods[i].setProto(proto.getMethod(i));
}
}
}
 
// =================================================================
 
/**
* Describes one method within a service type.
*/
public static final class MethodDescriptor implements GenericDescriptor {
/**
* Get the index of this descriptor within its parent.
* * @see Descriptors.Descriptor#getIndex()
*/
public int getIndex() { return index; }
 
/** Convert the descriptor to its protocol message representation. */
public MethodDescriptorProto toProto() { return proto; }
 
/** Get the method's unqualified name. */
public String getName() { return proto.getName(); }
 
/**
* Get the method's fully-qualified name.
* @see Descriptor#getFullName()
*/
public String getFullName() { return fullName; }
 
/** Get the {@link FileDescriptor} containing this descriptor. */
public FileDescriptor getFile() { return file; }
 
/** Get the method's service type. */
public ServiceDescriptor getService() { return service; }
 
/** Get the method's input type. */
public Descriptor getInputType() { return inputType; }
 
/** Get the method's output type. */
public Descriptor getOutputType() { return outputType; }
 
/**
* Get the {@code MethodOptions}, defined in {@code descriptor.proto}.
*/
public MethodOptions getOptions() { return proto.getOptions(); }
 
private final int index;
private MethodDescriptorProto proto;
private final String fullName;
private final FileDescriptor file;
private final ServiceDescriptor service;
 
// Initialized during cross-linking.
private Descriptor inputType;
private Descriptor outputType;
 
private MethodDescriptor(final MethodDescriptorProto proto,
final FileDescriptor file,
final ServiceDescriptor parent,
final int index)
throws DescriptorValidationException {
this.index = index;
this.proto = proto;
this.file = file;
service = parent;
 
fullName = parent.getFullName() + '.' + proto.getName();
 
file.pool.addSymbol(this);
}
 
private void crossLink() throws DescriptorValidationException {
final GenericDescriptor input =
file.pool.lookupSymbol(proto.getInputType(), this);
if (!(input instanceof Descriptor)) {
throw new DescriptorValidationException(this,
'\"' + proto.getInputType() + "\" is not a message type.");
}
inputType = (Descriptor)input;
 
final GenericDescriptor output =
file.pool.lookupSymbol(proto.getOutputType(), this);
if (!(output instanceof Descriptor)) {
throw new DescriptorValidationException(this,
'\"' + proto.getOutputType() + "\" is not a message type.");
}
outputType = (Descriptor)output;
}
 
/** See {@link FileDescriptor#setProto}. */
private void setProto(final MethodDescriptorProto proto) {
this.proto = proto;
}
}
 
// =================================================================
 
private static String computeFullName(final FileDescriptor file,
final Descriptor parent,
final String name) {
if (parent != null) {
return parent.getFullName() + '.' + name;
} else if (file.getPackage().length() > 0) {
return file.getPackage() + '.' + name;
} else {
return name;
}
}
 
// =================================================================
 
/**
* All descriptors except {@code FileDescriptor} implement this to make
* {@code DescriptorPool}'s life easier.
*/
private interface GenericDescriptor {
Message toProto();
String getName();
String getFullName();
FileDescriptor getFile();
}
 
/**
* Thrown when building descriptors fails because the source DescriptorProtos
* are not valid.
*/
public static class DescriptorValidationException extends Exception {
private static final long serialVersionUID = 5750205775490483148L;
 
/** Gets the full name of the descriptor where the error occurred. */
public String getProblemSymbolName() { return name; }
 
/**
* Gets the the protocol message representation of the invalid descriptor.
*/
public Message getProblemProto() { return proto; }
 
/**
* Gets a human-readable description of the error.
*/
public String getDescription() { return description; }
 
private final String name;
private final Message proto;
private final String description;
 
private DescriptorValidationException(
final GenericDescriptor problemDescriptor,
final String description) {
super(problemDescriptor.getFullName() + ": " + description);
 
// Note that problemDescriptor may be partially uninitialized, so we
// don't want to expose it directly to the user. So, we only provide
// the name and the original proto.
name = problemDescriptor.getFullName();
proto = problemDescriptor.toProto();
this.description = description;
}
 
private DescriptorValidationException(
final GenericDescriptor problemDescriptor,
final String description,
final Throwable cause) {
this(problemDescriptor, description);
initCause(cause);
}
 
private DescriptorValidationException(
final FileDescriptor problemDescriptor,
final String description) {
super(problemDescriptor.getName() + ": " + description);
 
// Note that problemDescriptor may be partially uninitialized, so we
// don't want to expose it directly to the user. So, we only provide
// the name and the original proto.
name = problemDescriptor.getName();
proto = problemDescriptor.toProto();
this.description = description;
}
}
 
// =================================================================
 
/**
* A private helper class which contains lookup tables containing all the
* descriptors defined in a particular file.
*/
private static final class DescriptorPool {
DescriptorPool(final FileDescriptor[] dependencies) {
this.dependencies = new DescriptorPool[dependencies.length];
 
for (int i = 0; i < dependencies.length; i++) {
this.dependencies[i] = dependencies[i].pool;
}
 
for (final FileDescriptor dependency : dependencies) {
try {
addPackage(dependency.getPackage(), dependency);
} catch (DescriptorValidationException e) {
// Can't happen, because addPackage() only fails when the name
// conflicts with a non-package, but we have not yet added any
// non-packages at this point.
assert false;
}
}
}
 
private final DescriptorPool[] dependencies;
 
private final Map<String, GenericDescriptor> descriptorsByName =
new HashMap<String, GenericDescriptor>();
private final Map<DescriptorIntPair, FieldDescriptor> fieldsByNumber =
new HashMap<DescriptorIntPair, FieldDescriptor>();
private final Map<DescriptorIntPair, EnumValueDescriptor> enumValuesByNumber
= new HashMap<DescriptorIntPair, EnumValueDescriptor>();
 
/** Find a generic descriptor by fully-qualified name. */
GenericDescriptor findSymbol(final String fullName) {
GenericDescriptor result = descriptorsByName.get(fullName);
if (result != null) {
return result;
}
 
for (final DescriptorPool dependency : dependencies) {
result = dependency.descriptorsByName.get(fullName);
if (result != null) {
return result;
}
}
 
return null;
}
 
/**
* Look up a descriptor by name, relative to some other descriptor.
* The name may be fully-qualified (with a leading '.'),
* partially-qualified, or unqualified. C++-like name lookup semantics
* are used to search for the matching descriptor.
*/
GenericDescriptor lookupSymbol(final String name,
final GenericDescriptor relativeTo)
throws DescriptorValidationException {
// TODO(kenton): This could be optimized in a number of ways.
 
GenericDescriptor result;
if (name.startsWith(".")) {
// Fully-qualified name.
result = findSymbol(name.substring(1));
} else {
// If "name" is a compound identifier, we want to search for the
// first component of it, then search within it for the rest.
final int firstPartLength = name.indexOf('.');
final String firstPart;
if (firstPartLength == -1) {
firstPart = name;
} else {
firstPart = name.substring(0, firstPartLength);
}
 
// We will search each parent scope of "relativeTo" looking for the
// symbol.
final StringBuilder scopeToTry =
new StringBuilder(relativeTo.getFullName());
 
while (true) {
// Chop off the last component of the scope.
final int dotpos = scopeToTry.lastIndexOf(".");
if (dotpos == -1) {
result = findSymbol(name);
break;
} else {
scopeToTry.setLength(dotpos + 1);
 
// Append firstPart and try to find.
scopeToTry.append(firstPart);
result = findSymbol(scopeToTry.toString());
 
if (result != null) {
if (firstPartLength != -1) {
// We only found the first part of the symbol. Now look for
// the whole thing. If this fails, we *don't* want to keep
// searching parent scopes.
scopeToTry.setLength(dotpos + 1);
scopeToTry.append(name);
result = findSymbol(scopeToTry.toString());
}
break;
}
 
// Not found. Remove the name so we can try again.
scopeToTry.setLength(dotpos);
}
}
}
 
if (result == null) {
throw new DescriptorValidationException(relativeTo,
'\"' + name + "\" is not defined.");
} else {
return result;
}
}
 
/**
* Adds a symbol to the symbol table. If a symbol with the same name
* already exists, throws an error.
*/
void addSymbol(final GenericDescriptor descriptor)
throws DescriptorValidationException {
validateSymbolName(descriptor);
 
final String fullName = descriptor.getFullName();
final int dotpos = fullName.lastIndexOf('.');
 
final GenericDescriptor old = descriptorsByName.put(fullName, descriptor);
if (old != null) {
descriptorsByName.put(fullName, old);
 
if (descriptor.getFile() == old.getFile()) {
if (dotpos == -1) {
throw new DescriptorValidationException(descriptor,
'\"' + fullName + "\" is already defined.");
} else {
throw new DescriptorValidationException(descriptor,
'\"' + fullName.substring(dotpos + 1) +
"\" is already defined in \"" +
fullName.substring(0, dotpos) + "\".");
}
} else {
throw new DescriptorValidationException(descriptor,
'\"' + fullName + "\" is already defined in file \"" +
old.getFile().getName() + "\".");
}
}
}
 
/**
* Represents a package in the symbol table. We use PackageDescriptors
* just as placeholders so that someone cannot define, say, a message type
* that has the same name as an existing package.
*/
private static final class PackageDescriptor implements GenericDescriptor {
public Message toProto() { return file.toProto(); }
public String getName() { return name; }
public String getFullName() { return fullName; }
public FileDescriptor getFile() { return file; }
 
PackageDescriptor(final String name, final String fullName,
final FileDescriptor file) {
this.file = file;
this.fullName = fullName;
this.name = name;
}
 
private final String name;
private final String fullName;
private final FileDescriptor file;
}
 
/**
* Adds a package to the symbol tables. If a package by the same name
* already exists, that is fine, but if some other kind of symbol exists
* under the same name, an exception is thrown. If the package has
* multiple components, this also adds the parent package(s).
*/
void addPackage(final String fullName, final FileDescriptor file)
throws DescriptorValidationException {
final int dotpos = fullName.lastIndexOf('.');
final String name;
if (dotpos == -1) {
name = fullName;
} else {
addPackage(fullName.substring(0, dotpos), file);
name = fullName.substring(dotpos + 1);
}
 
final GenericDescriptor old =
descriptorsByName.put(fullName,
new PackageDescriptor(name, fullName, file));
if (old != null) {
descriptorsByName.put(fullName, old);
if (!(old instanceof PackageDescriptor)) {
throw new DescriptorValidationException(file,
'\"' + name + "\" is already defined (as something other than a "
+ "package) in file \"" + old.getFile().getName() + "\".");
}
}
}
 
/** A (GenericDescriptor, int) pair, used as a map key. */
private static final class DescriptorIntPair {
private final GenericDescriptor descriptor;
private final int number;
 
DescriptorIntPair(final GenericDescriptor descriptor, final int number) {
this.descriptor = descriptor;
this.number = number;
}
 
@Override
public int hashCode() {
return descriptor.hashCode() * ((1 << 16) - 1) + number;
}
@Override
public boolean equals(final Object obj) {
if (!(obj instanceof DescriptorIntPair)) {
return false;
}
final DescriptorIntPair other = (DescriptorIntPair)obj;
return descriptor == other.descriptor && number == other.number;
}
}
 
/**
* Adds a field to the fieldsByNumber table. Throws an exception if a
* field with hte same containing type and number already exists.
*/
void addFieldByNumber(final FieldDescriptor field)
throws DescriptorValidationException {
final DescriptorIntPair key =
new DescriptorIntPair(field.getContainingType(), field.getNumber());
final FieldDescriptor old = fieldsByNumber.put(key, field);
if (old != null) {
fieldsByNumber.put(key, old);
throw new DescriptorValidationException(field,
"Field number " + field.getNumber() +
"has already been used in \"" +
field.getContainingType().getFullName() +
"\" by field \"" + old.getName() + "\".");
}
}
 
/**
* Adds an enum value to the enumValuesByNumber table. If an enum value
* with the same type and number already exists, does nothing. (This is
* allowed; the first value define with the number takes precedence.)
*/
void addEnumValueByNumber(final EnumValueDescriptor value) {
final DescriptorIntPair key =
new DescriptorIntPair(value.getType(), value.getNumber());
final EnumValueDescriptor old = enumValuesByNumber.put(key, value);
if (old != null) {
enumValuesByNumber.put(key, old);
// Not an error: Multiple enum values may have the same number, but
// we only want the first one in the map.
}
}
 
/**
* Verifies that the descriptor's name is valid (i.e. it contains only
* letters, digits, and underscores, and does not start with a digit).
*/
static void validateSymbolName(final GenericDescriptor descriptor)
throws DescriptorValidationException {
final String name = descriptor.getName();
if (name.length() == 0) {
throw new DescriptorValidationException(descriptor, "Missing name.");
} else {
boolean valid = true;
for (int i = 0; i < name.length(); i++) {
final char c = name.charAt(i);
// Non-ASCII characters are not valid in protobuf identifiers, even
// if they are letters or digits.
if (c >= 128) {
valid = false;
}
// First character must be letter or _. Subsequent characters may
// be letters, numbers, or digits.
if (Character.isLetter(c) || c == '_' ||
(Character.isDigit(c) && i > 0)) {
// Valid
} else {
valid = false;
}
}
if (!valid) {
throw new DescriptorValidationException(descriptor,
'\"' + name + "\" is not a valid identifier.");
}
}
}
}
}
/Android Development/IOIODebuggerServer/src/com/google/protobuf/DynamicMessage.java
0,0 → 1,438
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// http://code.google.com/p/protobuf/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
package com.google.protobuf;
 
import com.google.protobuf.Descriptors.Descriptor;
import com.google.protobuf.Descriptors.FieldDescriptor;
 
import java.io.InputStream;
import java.io.IOException;
import java.util.Map;
 
/**
* An implementation of {@link Message} that can represent arbitrary types,
* given a {@link Descriptors.Descriptor}.
*
* @author kenton@google.com Kenton Varda
*/
public final class DynamicMessage extends AbstractMessage {
private final Descriptor type;
private final FieldSet<FieldDescriptor> fields;
private final UnknownFieldSet unknownFields;
private int memoizedSize = -1;
 
/**
* Construct a {@code DynamicMessage} using the given {@code FieldSet}.
*/
private DynamicMessage(Descriptor type, FieldSet<FieldDescriptor> fields,
UnknownFieldSet unknownFields) {
this.type = type;
this.fields = fields;
this.unknownFields = unknownFields;
}
 
/**
* Get a {@code DynamicMessage} representing the default instance of the
* given type.
*/
public static DynamicMessage getDefaultInstance(Descriptor type) {
return new DynamicMessage(type, FieldSet.<FieldDescriptor>emptySet(),
UnknownFieldSet.getDefaultInstance());
}
 
/** Parse a message of the given type from the given input stream. */
public static DynamicMessage parseFrom(Descriptor type,
CodedInputStream input)
throws IOException {
return newBuilder(type).mergeFrom(input).buildParsed();
}
 
/** Parse a message of the given type from the given input stream. */
public static DynamicMessage parseFrom(
Descriptor type,
CodedInputStream input,
ExtensionRegistry extensionRegistry)
throws IOException {
return newBuilder(type).mergeFrom(input, extensionRegistry).buildParsed();
}
 
/** Parse {@code data} as a message of the given type and return it. */
public static DynamicMessage parseFrom(Descriptor type, ByteString data)
throws InvalidProtocolBufferException {
return newBuilder(type).mergeFrom(data).buildParsed();
}
 
/** Parse {@code data} as a message of the given type and return it. */
public static DynamicMessage parseFrom(Descriptor type, ByteString data,
ExtensionRegistry extensionRegistry)
throws InvalidProtocolBufferException {
return newBuilder(type).mergeFrom(data, extensionRegistry).buildParsed();
}
 
/** Parse {@code data} as a message of the given type and return it. */
public static DynamicMessage parseFrom(Descriptor type, byte[] data)
throws InvalidProtocolBufferException {
return newBuilder(type).mergeFrom(data).buildParsed();
}
 
/** Parse {@code data} as a message of the given type and return it. */
public static DynamicMessage parseFrom(Descriptor type, byte[] data,
ExtensionRegistry extensionRegistry)
throws InvalidProtocolBufferException {
return newBuilder(type).mergeFrom(data, extensionRegistry).buildParsed();
}
 
/** Parse a message of the given type from {@code input} and return it. */
public static DynamicMessage parseFrom(Descriptor type, InputStream input)
throws IOException {
return newBuilder(type).mergeFrom(input).buildParsed();
}
 
/** Parse a message of the given type from {@code input} and return it. */
public static DynamicMessage parseFrom(Descriptor type, InputStream input,
ExtensionRegistry extensionRegistry)
throws IOException {
return newBuilder(type).mergeFrom(input, extensionRegistry).buildParsed();
}
 
/** Construct a {@link Message.Builder} for the given type. */
public static Builder newBuilder(Descriptor type) {
return new Builder(type);
}
 
/**
* Construct a {@link Message.Builder} for a message of the same type as
* {@code prototype}, and initialize it with {@code prototype}'s contents.
*/
public static Builder newBuilder(Message prototype) {
return new Builder(prototype.getDescriptorForType()).mergeFrom(prototype);
}
 
// -----------------------------------------------------------------
// Implementation of Message interface.
 
public Descriptor getDescriptorForType() {
return type;
}
 
public DynamicMessage getDefaultInstanceForType() {
return getDefaultInstance(type);
}
 
public Map<FieldDescriptor, Object> getAllFields() {
return fields.getAllFields();
}
 
public boolean hasField(FieldDescriptor field) {
verifyContainingType(field);
return fields.hasField(field);
}
 
public Object getField(FieldDescriptor field) {
verifyContainingType(field);
Object result = fields.getField(field);
if (result == null) {
if (field.getJavaType() == FieldDescriptor.JavaType.MESSAGE) {
result = getDefaultInstance(field.getMessageType());
} else {
result = field.getDefaultValue();
}
}
return result;
}
 
public int getRepeatedFieldCount(FieldDescriptor field) {
verifyContainingType(field);
return fields.getRepeatedFieldCount(field);
}
 
public Object getRepeatedField(FieldDescriptor field, int index) {
verifyContainingType(field);
return fields.getRepeatedField(field, index);
}
 
public UnknownFieldSet getUnknownFields() {
return unknownFields;
}
 
private static boolean isInitialized(Descriptor type,
FieldSet<FieldDescriptor> fields) {
// Check that all required fields are present.
for (final FieldDescriptor field : type.getFields()) {
if (field.isRequired()) {
if (!fields.hasField(field)) {
return false;
}
}
}
 
// Check that embedded messages are initialized.
return fields.isInitialized();
}
 
public boolean isInitialized() {
return isInitialized(type, fields);
}
 
public void writeTo(CodedOutputStream output) throws IOException {
if (type.getOptions().getMessageSetWireFormat()) {
fields.writeMessageSetTo(output);
unknownFields.writeAsMessageSetTo(output);
} else {
fields.writeTo(output);
unknownFields.writeTo(output);
}
}
 
public int getSerializedSize() {
int size = memoizedSize;
if (size != -1) return size;
 
if (type.getOptions().getMessageSetWireFormat()) {
size = fields.getMessageSetSerializedSize();
size += unknownFields.getSerializedSizeAsMessageSet();
} else {
size = fields.getSerializedSize();
size += unknownFields.getSerializedSize();
}
 
memoizedSize = size;
return size;
}
 
public Builder newBuilderForType() {
return new Builder(type);
}
 
public Builder toBuilder() {
return newBuilderForType().mergeFrom(this);
}
 
/** Verifies that the field is a field of this message. */
private void verifyContainingType(FieldDescriptor field) {
if (field.getContainingType() != type) {
throw new IllegalArgumentException(
"FieldDescriptor does not match message type.");
}
}
 
// =================================================================
 
/**
* Builder for {@link DynamicMessage}s.
*/
public static final class Builder extends AbstractMessage.Builder<Builder> {
private final Descriptor type;
private FieldSet<FieldDescriptor> fields;
private UnknownFieldSet unknownFields;
 
/** Construct a {@code Builder} for the given type. */
private Builder(Descriptor type) {
this.type = type;
this.fields = FieldSet.newFieldSet();
this.unknownFields = UnknownFieldSet.getDefaultInstance();
}
 
// ---------------------------------------------------------------
// Implementation of Message.Builder interface.
 
public Builder clear() {
if (fields == null) {
throw new IllegalStateException("Cannot call clear() after build().");
}
fields.clear();
return this;
}
 
public Builder mergeFrom(Message other) {
if (other instanceof DynamicMessage) {
// This should be somewhat faster than calling super.mergeFrom().
DynamicMessage otherDynamicMessage = (DynamicMessage) other;
if (otherDynamicMessage.type != type) {
throw new IllegalArgumentException(
"mergeFrom(Message) can only merge messages of the same type.");
}
fields.mergeFrom(otherDynamicMessage.fields);
mergeUnknownFields(otherDynamicMessage.unknownFields);
return this;
} else {
return super.mergeFrom(other);
}
}
 
public DynamicMessage build() {
// If fields == null, we'll throw an appropriate exception later.
if (fields != null && !isInitialized()) {
throw newUninitializedMessageException(
new DynamicMessage(type, fields, unknownFields));
}
return buildPartial();
}
 
/**
* Helper for DynamicMessage.parseFrom() methods to call. Throws
* {@link InvalidProtocolBufferException} instead of
* {@link UninitializedMessageException}.
*/
private DynamicMessage buildParsed() throws InvalidProtocolBufferException {
if (!isInitialized()) {
throw newUninitializedMessageException(
new DynamicMessage(type, fields, unknownFields))
.asInvalidProtocolBufferException();
}
return buildPartial();
}
 
public DynamicMessage buildPartial() {
if (fields == null) {
throw new IllegalStateException(
"build() has already been called on this Builder.");
}
fields.makeImmutable();
DynamicMessage result =
new DynamicMessage(type, fields, unknownFields);
fields = null;
unknownFields = null;
return result;
}
 
public Builder clone() {
Builder result = new Builder(type);
result.fields.mergeFrom(fields);
return result;
}
 
public boolean isInitialized() {
return DynamicMessage.isInitialized(type, fields);
}
 
public Descriptor getDescriptorForType() {
return type;
}
 
public DynamicMessage getDefaultInstanceForType() {
return getDefaultInstance(type);
}
 
public Map<FieldDescriptor, Object> getAllFields() {
return fields.getAllFields();
}
 
public Builder newBuilderForField(FieldDescriptor field) {
verifyContainingType(field);
 
if (field.getJavaType() != FieldDescriptor.JavaType.MESSAGE) {
throw new IllegalArgumentException(
"newBuilderForField is only valid for fields with message type.");
}
 
return new Builder(field.getMessageType());
}
 
public boolean hasField(FieldDescriptor field) {
verifyContainingType(field);
return fields.hasField(field);
}
 
public Object getField(FieldDescriptor field) {
verifyContainingType(field);
Object result = fields.getField(field);
if (result == null) {
if (field.getJavaType() == FieldDescriptor.JavaType.MESSAGE) {
result = getDefaultInstance(field.getMessageType());
} else {
result = field.getDefaultValue();
}
}
return result;
}
 
public Builder setField(FieldDescriptor field, Object value) {
verifyContainingType(field);
fields.setField(field, value);
return this;
}
 
public Builder clearField(FieldDescriptor field) {
verifyContainingType(field);
fields.clearField(field);
return this;
}
 
public int getRepeatedFieldCount(FieldDescriptor field) {
verifyContainingType(field);
return fields.getRepeatedFieldCount(field);
}
 
public Object getRepeatedField(FieldDescriptor field, int index) {
verifyContainingType(field);
return fields.getRepeatedField(field, index);
}
 
public Builder setRepeatedField(FieldDescriptor field,
int index, Object value) {
verifyContainingType(field);
fields.setRepeatedField(field, index, value);
return this;
}
 
public Builder addRepeatedField(FieldDescriptor field, Object value) {
verifyContainingType(field);
fields.addRepeatedField(field, value);
return this;
}
 
public UnknownFieldSet getUnknownFields() {
return unknownFields;
}
 
public Builder setUnknownFields(UnknownFieldSet unknownFields) {
this.unknownFields = unknownFields;
return this;
}
 
public Builder mergeUnknownFields(UnknownFieldSet unknownFields) {
this.unknownFields =
UnknownFieldSet.newBuilder(this.unknownFields)
.mergeFrom(unknownFields)
.build();
return this;
}
 
/** Verifies that the field is a field of this message. */
private void verifyContainingType(FieldDescriptor field) {
if (field.getContainingType() != type) {
throw new IllegalArgumentException(
"FieldDescriptor does not match message type.");
}
}
}
}
/Android Development/IOIODebuggerServer/src/com/google/protobuf/ExtensionRegistry.java
0,0 → 1,266
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// http://code.google.com/p/protobuf/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
package com.google.protobuf;
 
import com.google.protobuf.Descriptors.Descriptor;
import com.google.protobuf.Descriptors.FieldDescriptor;
 
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
 
/**
* A table of known extensions, searchable by name or field number. When
* parsing a protocol message that might have extensions, you must provide
* an {@code ExtensionRegistry} in which you have registered any extensions
* that you want to be able to parse. Otherwise, those extensions will just
* be treated like unknown fields.
*
* <p>For example, if you had the {@code .proto} file:
*
* <pre>
* option java_class = "MyProto";
*
* message Foo {
* extensions 1000 to max;
* }
*
* extend Foo {
* optional int32 bar;
* }
* </pre>
*
* Then you might write code like:
*
* <pre>
* ExtensionRegistry registry = ExtensionRegistry.newInstance();
* registry.add(MyProto.bar);
* MyProto.Foo message = MyProto.Foo.parseFrom(input, registry);
* </pre>
*
* <p>Background:
*
* <p>You might wonder why this is necessary. Two alternatives might come to
* mind. First, you might imagine a system where generated extensions are
* automatically registered when their containing classes are loaded. This
* is a popular technique, but is bad design; among other things, it creates a
* situation where behavior can change depending on what classes happen to be
* loaded. It also introduces a security vulnerability, because an
* unprivileged class could cause its code to be called unexpectedly from a
* privileged class by registering itself as an extension of the right type.
*
* <p>Another option you might consider is lazy parsing: do not parse an
* extension until it is first requested, at which point the caller must
* provide a type to use. This introduces a different set of problems. First,
* it would require a mutex lock any time an extension was accessed, which
* would be slow. Second, corrupt data would not be detected until first
* access, at which point it would be much harder to deal with it. Third, it
* could violate the expectation that message objects are immutable, since the
* type provided could be any arbitrary message class. An unprivileged user
* could take advantage of this to inject a mutable object into a message
* belonging to privileged code and create mischief.
*
* @author kenton@google.com Kenton Varda
*/
public final class ExtensionRegistry extends ExtensionRegistryLite {
/** Construct a new, empty instance. */
public static ExtensionRegistry newInstance() {
return new ExtensionRegistry();
}
 
/** Get the unmodifiable singleton empty instance. */
public static ExtensionRegistry getEmptyRegistry() {
return EMPTY;
}
 
/** Returns an unmodifiable view of the registry. */
@Override
public ExtensionRegistry getUnmodifiable() {
return new ExtensionRegistry(this);
}
 
/** A (Descriptor, Message) pair, returned by lookup methods. */
public static final class ExtensionInfo {
/** The extension's descriptor. */
public final FieldDescriptor descriptor;
 
/**
* A default instance of the extension's type, if it has a message type.
* Otherwise, {@code null}.
*/
public final Message defaultInstance;
 
private ExtensionInfo(final FieldDescriptor descriptor) {
this.descriptor = descriptor;
defaultInstance = null;
}
private ExtensionInfo(final FieldDescriptor descriptor,
final Message defaultInstance) {
this.descriptor = descriptor;
this.defaultInstance = defaultInstance;
}
}
 
/**
* Find an extension by fully-qualified field name, in the proto namespace.
* I.e. {@code result.descriptor.fullName()} will match {@code fullName} if
* a match is found.
*
* @return Information about the extension if found, or {@code null}
* otherwise.
*/
public ExtensionInfo findExtensionByName(final String fullName) {
return extensionsByName.get(fullName);
}
 
/**
* Find an extension by containing type and field number.
*
* @return Information about the extension if found, or {@code null}
* otherwise.
*/
public ExtensionInfo findExtensionByNumber(final Descriptor containingType,
final int fieldNumber) {
return extensionsByNumber.get(
new DescriptorIntPair(containingType, fieldNumber));
}
 
/** Add an extension from a generated file to the registry. */
public void add(final GeneratedMessage.GeneratedExtension<?, ?> extension) {
if (extension.getDescriptor().getJavaType() ==
FieldDescriptor.JavaType.MESSAGE) {
if (extension.getMessageDefaultInstance() == null) {
throw new IllegalStateException(
"Registered message-type extension had null default instance: " +
extension.getDescriptor().getFullName());
}
add(new ExtensionInfo(extension.getDescriptor(),
extension.getMessageDefaultInstance()));
} else {
add(new ExtensionInfo(extension.getDescriptor(), null));
}
}
 
/** Add a non-message-type extension to the registry by descriptor. */
public void add(final FieldDescriptor type) {
if (type.getJavaType() == FieldDescriptor.JavaType.MESSAGE) {
throw new IllegalArgumentException(
"ExtensionRegistry.add() must be provided a default instance when " +
"adding an embedded message extension.");
}
add(new ExtensionInfo(type, null));
}
 
/** Add a message-type extension to the registry by descriptor. */
public void add(final FieldDescriptor type, final Message defaultInstance) {
if (type.getJavaType() != FieldDescriptor.JavaType.MESSAGE) {
throw new IllegalArgumentException(
"ExtensionRegistry.add() provided a default instance for a " +
"non-message extension.");
}
add(new ExtensionInfo(type, defaultInstance));
}
 
// =================================================================
// Private stuff.
 
private ExtensionRegistry() {
this.extensionsByName = new HashMap<String, ExtensionInfo>();
this.extensionsByNumber = new HashMap<DescriptorIntPair, ExtensionInfo>();
}
 
private ExtensionRegistry(ExtensionRegistry other) {
super(other);
this.extensionsByName = Collections.unmodifiableMap(other.extensionsByName);
this.extensionsByNumber =
Collections.unmodifiableMap(other.extensionsByNumber);
}
 
private final Map<String, ExtensionInfo> extensionsByName;
private final Map<DescriptorIntPair, ExtensionInfo> extensionsByNumber;
 
private ExtensionRegistry(boolean empty) {
super(ExtensionRegistryLite.getEmptyRegistry());
this.extensionsByName = Collections.<String, ExtensionInfo>emptyMap();
this.extensionsByNumber =
Collections.<DescriptorIntPair, ExtensionInfo>emptyMap();
}
private static final ExtensionRegistry EMPTY = new ExtensionRegistry(true);
 
private void add(final ExtensionInfo extension) {
if (!extension.descriptor.isExtension()) {
throw new IllegalArgumentException(
"ExtensionRegistry.add() was given a FieldDescriptor for a regular " +
"(non-extension) field.");
}
 
extensionsByName.put(extension.descriptor.getFullName(), extension);
extensionsByNumber.put(
new DescriptorIntPair(extension.descriptor.getContainingType(),
extension.descriptor.getNumber()),
extension);
 
final FieldDescriptor field = extension.descriptor;
if (field.getContainingType().getOptions().getMessageSetWireFormat() &&
field.getType() == FieldDescriptor.Type.MESSAGE &&
field.isOptional() &&
field.getExtensionScope() == field.getMessageType()) {
// This is an extension of a MessageSet type defined within the extension
// type's own scope. For backwards-compatibility, allow it to be looked
// up by type name.
extensionsByName.put(field.getMessageType().getFullName(), extension);
}
}
 
/** A (GenericDescriptor, int) pair, used as a map key. */
private static final class DescriptorIntPair {
private final Descriptor descriptor;
private final int number;
 
DescriptorIntPair(final Descriptor descriptor, final int number) {
this.descriptor = descriptor;
this.number = number;
}
 
@Override
public int hashCode() {
return descriptor.hashCode() * ((1 << 16) - 1) + number;
}
@Override
public boolean equals(final Object obj) {
if (!(obj instanceof DescriptorIntPair)) {
return false;
}
final DescriptorIntPair other = (DescriptorIntPair)obj;
return descriptor == other.descriptor && number == other.number;
}
}
}
/Android Development/IOIODebuggerServer/src/com/google/protobuf/ExtensionRegistryLite.java
0,0 → 1,169
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// http://code.google.com/p/protobuf/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
package com.google.protobuf;
 
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
 
/**
* Equivalent to {@link ExtensionRegistry} but supports only "lite" types.
* <p>
* If all of your types are lite types, then you only need to use
* {@code ExtensionRegistryLite}. Similarly, if all your types are regular
* types, then you only need {@link ExtensionRegistry}. Typically it does not
* make sense to mix the two, since if you have any regular types in your
* program, you then require the full runtime and lose all the benefits of
* the lite runtime, so you might as well make all your types be regular types.
* However, in some cases (e.g. when depending on multiple third-patry libraries
* where one uses lite types and one uses regular), you may find yourself
* wanting to mix the two. In this case things get more complicated.
* <p>
* There are three factors to consider: Whether the type being extended is
* lite, whether the embedded type (in the case of a message-typed extension)
* is lite, and whether the extension itself is lite. Since all three are
* declared in different files, they could all be different. Here are all
* the combinations and which type of registry to use:
* <pre>
* Extended type Inner type Extension Use registry
* =======================================================================
* lite lite lite ExtensionRegistryLite
* lite regular lite ExtensionRegistry
* regular regular regular ExtensionRegistry
* all other combinations not supported
* </pre>
* <p>
* Note that just as regular types are not allowed to contain lite-type fields,
* they are also not allowed to contain lite-type extensions. This is because
* regular types must be fully accessible via reflection, which in turn means
* that all the inner messages must also support reflection. On the other hand,
* since regular types implement the entire lite interface, there is no problem
* with embedding regular types inside lite types.
*
* @author kenton@google.com Kenton Varda
*/
public class ExtensionRegistryLite {
/** Construct a new, empty instance. */
public static ExtensionRegistryLite newInstance() {
return new ExtensionRegistryLite();
}
 
/** Get the unmodifiable singleton empty instance. */
public static ExtensionRegistryLite getEmptyRegistry() {
return EMPTY;
}
 
/** Returns an unmodifiable view of the registry. */
public ExtensionRegistryLite getUnmodifiable() {
return new ExtensionRegistryLite(this);
}
 
/**
* Find an extension by containing type and field number.
*
* @return Information about the extension if found, or {@code null}
* otherwise.
*/
@SuppressWarnings("unchecked")
public <ContainingType extends MessageLite>
GeneratedMessageLite.GeneratedExtension<ContainingType, ?>
findLiteExtensionByNumber(
final ContainingType containingTypeDefaultInstance,
final int fieldNumber) {
return (GeneratedMessageLite.GeneratedExtension<ContainingType, ?>)
extensionsByNumber.get(
new ObjectIntPair(containingTypeDefaultInstance, fieldNumber));
}
 
/** Add an extension from a lite generated file to the registry. */
public final void add(
final GeneratedMessageLite.GeneratedExtension<?, ?> extension) {
extensionsByNumber.put(
new ObjectIntPair(extension.getContainingTypeDefaultInstance(),
extension.getNumber()),
extension);
}
 
// =================================================================
// Private stuff.
 
// Constructors are package-private so that ExtensionRegistry can subclass
// this.
 
ExtensionRegistryLite() {
this.extensionsByNumber =
new HashMap<ObjectIntPair,
GeneratedMessageLite.GeneratedExtension<?, ?>>();
}
 
ExtensionRegistryLite(ExtensionRegistryLite other) {
if (other == EMPTY) {
this.extensionsByNumber = Collections.emptyMap();
} else {
this.extensionsByNumber =
Collections.unmodifiableMap(other.extensionsByNumber);
}
}
 
private final Map<ObjectIntPair,
GeneratedMessageLite.GeneratedExtension<?, ?>>
extensionsByNumber;
 
private ExtensionRegistryLite(boolean empty) {
this.extensionsByNumber = Collections.emptyMap();
}
private static final ExtensionRegistryLite EMPTY =
new ExtensionRegistryLite(true);
 
/** A (Object, int) pair, used as a map key. */
private static final class ObjectIntPair {
private final Object object;
private final int number;
 
ObjectIntPair(final Object object, final int number) {
this.object = object;
this.number = number;
}
 
@Override
public int hashCode() {
return System.identityHashCode(object) * ((1 << 16) - 1) + number;
}
@Override
public boolean equals(final Object obj) {
if (!(obj instanceof ObjectIntPair)) {
return false;
}
final ObjectIntPair other = (ObjectIntPair)obj;
return object == other.object && number == other.number;
}
}
}
/Android Development/IOIODebuggerServer/src/com/google/protobuf/FieldSet.java
0,0 → 1,788
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// http://code.google.com/p/protobuf/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
package com.google.protobuf;
 
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.io.IOException;
 
/**
* A class which represents an arbitrary set of fields of some message type.
* This is used to implement {@link DynamicMessage}, and also to represent
* extensions in {@link GeneratedMessage}. This class is package-private,
* since outside users should probably be using {@link DynamicMessage}.
*
* @author kenton@google.com Kenton Varda
*/
final class FieldSet<FieldDescriptorType extends
FieldSet.FieldDescriptorLite<FieldDescriptorType>> {
/**
* Interface for a FieldDescriptor or lite extension descriptor. This
* prevents FieldSet from depending on {@link Descriptors.FieldDescriptor}.
*/
public interface FieldDescriptorLite<T extends FieldDescriptorLite<T>>
extends Comparable<T> {
int getNumber();
WireFormat.FieldType getLiteType();
WireFormat.JavaType getLiteJavaType();
boolean isRepeated();
boolean isPacked();
Internal.EnumLiteMap<?> getEnumType();
 
// If getLiteJavaType() == MESSAGE, this merges a message object of the
// type into a builder of the type. Returns {@code to}.
MessageLite.Builder internalMergeFrom(
MessageLite.Builder to, MessageLite from);
}
 
private final SmallSortedMap<FieldDescriptorType, Object> fields;
private boolean isImmutable;
 
/** Construct a new FieldSet. */
private FieldSet() {
this.fields = SmallSortedMap.newFieldMap(16);
}
 
/**
* Construct an empty FieldSet. This is only used to initialize
* DEFAULT_INSTANCE.
*/
private FieldSet(final boolean dummy) {
this.fields = SmallSortedMap.newFieldMap(0);
makeImmutable();
}
 
/** Construct a new FieldSet. */
public static <T extends FieldSet.FieldDescriptorLite<T>>
FieldSet<T> newFieldSet() {
return new FieldSet<T>();
}
 
/** Get an immutable empty FieldSet. */
@SuppressWarnings("unchecked")
public static <T extends FieldSet.FieldDescriptorLite<T>>
FieldSet<T> emptySet() {
return DEFAULT_INSTANCE;
}
@SuppressWarnings("unchecked")
private static final FieldSet DEFAULT_INSTANCE = new FieldSet(true);
 
/** Make this FieldSet immutable from this point forward. */
@SuppressWarnings("unchecked")
public void makeImmutable() {
if (isImmutable) {
return;
}
fields.makeImmutable();
isImmutable = true;
}
 
/**
* Retuns whether the FieldSet is immutable. This is true if it is the
* {@link #emptySet} or if {@link #makeImmutable} were called.
*
* @return whether the FieldSet is immutable.
*/
public boolean isImmutable() {
return isImmutable;
}
 
/**
* Clones the FieldSet. The returned FieldSet will be mutable even if the
* original FieldSet was immutable.
*
* @return the newly cloned FieldSet
*/
@Override
public FieldSet<FieldDescriptorType> clone() {
// We can't just call fields.clone because List objects in the map
// should not be shared.
FieldSet<FieldDescriptorType> clone = FieldSet.newFieldSet();
for (int i = 0; i < fields.getNumArrayEntries(); i++) {
Map.Entry<FieldDescriptorType, Object> entry = fields.getArrayEntryAt(i);
FieldDescriptorType descriptor = entry.getKey();
clone.setField(descriptor, entry.getValue());
}
for (Map.Entry<FieldDescriptorType, Object> entry :
fields.getOverflowEntries()) {
FieldDescriptorType descriptor = entry.getKey();
clone.setField(descriptor, entry.getValue());
}
return clone;
}
 
// =================================================================
 
/** See {@link Message.Builder#clear()}. */
public void clear() {
fields.clear();
}
 
/**
* Get a simple map containing all the fields.
*/
public Map<FieldDescriptorType, Object> getAllFields() {
return fields.isImmutable() ? fields : Collections.unmodifiableMap(fields);
}
 
/**
* Get an iterator to the field map. This iterator should not be leaked out
* of the protobuf library as it is not protected from mutation when
* fields is not immutable.
*/
public Iterator<Map.Entry<FieldDescriptorType, Object>> iterator() {
return fields.entrySet().iterator();
}
 
/**
* Useful for implementing
* {@link Message#hasField(Descriptors.FieldDescriptor)}.
*/
public boolean hasField(final FieldDescriptorType descriptor) {
if (descriptor.isRepeated()) {
throw new IllegalArgumentException(
"hasField() can only be called on non-repeated fields.");
}
 
return fields.get(descriptor) != null;
}
 
/**
* Useful for implementing
* {@link Message#getField(Descriptors.FieldDescriptor)}. This method
* returns {@code null} if the field is not set; in this case it is up
* to the caller to fetch the field's default value.
*/
public Object getField(final FieldDescriptorType descriptor) {
return fields.get(descriptor);
}
 
/**
* Useful for implementing
* {@link Message.Builder#setField(Descriptors.FieldDescriptor,Object)}.
*/
@SuppressWarnings("unchecked")
public void setField(final FieldDescriptorType descriptor,
Object value) {
if (descriptor.isRepeated()) {
if (!(value instanceof List)) {
throw new IllegalArgumentException(
"Wrong object type used with protocol message reflection.");
}
 
// Wrap the contents in a new list so that the caller cannot change
// the list's contents after setting it.
final List newList = new ArrayList();
newList.addAll((List)value);
for (final Object element : newList) {
verifyType(descriptor.getLiteType(), element);
}
value = newList;
} else {
verifyType(descriptor.getLiteType(), value);
}
 
fields.put(descriptor, value);
}
 
/**
* Useful for implementing
* {@link Message.Builder#clearField(Descriptors.FieldDescriptor)}.
*/
public void clearField(final FieldDescriptorType descriptor) {
fields.remove(descriptor);
}
 
/**
* Useful for implementing
* {@link Message#getRepeatedFieldCount(Descriptors.FieldDescriptor)}.
*/
public int getRepeatedFieldCount(final FieldDescriptorType descriptor) {
if (!descriptor.isRepeated()) {
throw new IllegalArgumentException(
"getRepeatedField() can only be called on repeated fields.");
}
 
final Object value = fields.get(descriptor);
if (value == null) {
return 0;
} else {
return ((List<?>) value).size();
}
}
 
/**
* Useful for implementing
* {@link Message#getRepeatedField(Descriptors.FieldDescriptor,int)}.
*/
public Object getRepeatedField(final FieldDescriptorType descriptor,
final int index) {
if (!descriptor.isRepeated()) {
throw new IllegalArgumentException(
"getRepeatedField() can only be called on repeated fields.");
}
 
final Object value = fields.get(descriptor);
 
if (value == null) {
throw new IndexOutOfBoundsException();
} else {
return ((List<?>) value).get(index);
}
}
 
/**
* Useful for implementing
* {@link Message.Builder#setRepeatedField(Descriptors.FieldDescriptor,int,Object)}.
*/
@SuppressWarnings("unchecked")
public void setRepeatedField(final FieldDescriptorType descriptor,
final int index,
final Object value) {
if (!descriptor.isRepeated()) {
throw new IllegalArgumentException(
"getRepeatedField() can only be called on repeated fields.");
}
 
final Object list = fields.get(descriptor);
if (list == null) {
throw new IndexOutOfBoundsException();
}
 
verifyType(descriptor.getLiteType(), value);
((List) list).set(index, value);
}
 
/**
* Useful for implementing
* {@link Message.Builder#addRepeatedField(Descriptors.FieldDescriptor,Object)}.
*/
@SuppressWarnings("unchecked")
public void addRepeatedField(final FieldDescriptorType descriptor,
final Object value) {
if (!descriptor.isRepeated()) {
throw new IllegalArgumentException(
"addRepeatedField() can only be called on repeated fields.");
}
 
verifyType(descriptor.getLiteType(), value);
 
final Object existingValue = fields.get(descriptor);
List list;
if (existingValue == null) {
list = new ArrayList();
fields.put(descriptor, list);
} else {
list = (List) existingValue;
}
 
list.add(value);
}
 
/**
* Verifies that the given object is of the correct type to be a valid
* value for the given field. (For repeated fields, this checks if the
* object is the right type to be one element of the field.)
*
* @throws IllegalArgumentException The value is not of the right type.
*/
private static void verifyType(final WireFormat.FieldType type,
final Object value) {
if (value == null) {
throw new NullPointerException();
}
 
boolean isValid = false;
switch (type.getJavaType()) {
case INT: isValid = value instanceof Integer ; break;
case LONG: isValid = value instanceof Long ; break;
case FLOAT: isValid = value instanceof Float ; break;
case DOUBLE: isValid = value instanceof Double ; break;
case BOOLEAN: isValid = value instanceof Boolean ; break;
case STRING: isValid = value instanceof String ; break;
case BYTE_STRING: isValid = value instanceof ByteString; break;
case ENUM:
// TODO(kenton): Caller must do type checking here, I guess.
isValid = value instanceof Internal.EnumLite;
break;
case MESSAGE:
// TODO(kenton): Caller must do type checking here, I guess.
isValid = value instanceof MessageLite;
break;
}
 
if (!isValid) {
// TODO(kenton): When chaining calls to setField(), it can be hard to
// tell from the stack trace which exact call failed, since the whole
// chain is considered one line of code. It would be nice to print
// more information here, e.g. naming the field. We used to do that.
// But we can't now that FieldSet doesn't use descriptors. Maybe this
// isn't a big deal, though, since it would only really apply when using
// reflection and generally people don't chain reflection setters.
throw new IllegalArgumentException(
"Wrong object type used with protocol message reflection.");
}
}
 
// =================================================================
// Parsing and serialization
 
/**
* See {@link Message#isInitialized()}. Note: Since {@code FieldSet}
* itself does not have any way of knowing about required fields that
* aren't actually present in the set, it is up to the caller to check
* that all required fields are present.
*/
public boolean isInitialized() {
for (int i = 0; i < fields.getNumArrayEntries(); i++) {
if (!isInitialized(fields.getArrayEntryAt(i))) {
return false;
}
}
for (final Map.Entry<FieldDescriptorType, Object> entry :
fields.getOverflowEntries()) {
if (!isInitialized(entry)) {
return false;
}
}
return true;
}
 
@SuppressWarnings("unchecked")
private boolean isInitialized(
final Map.Entry<FieldDescriptorType, Object> entry) {
final FieldDescriptorType descriptor = entry.getKey();
if (descriptor.getLiteJavaType() == WireFormat.JavaType.MESSAGE) {
if (descriptor.isRepeated()) {
for (final MessageLite element:
(List<MessageLite>) entry.getValue()) {
if (!element.isInitialized()) {
return false;
}
}
} else {
if (!((MessageLite) entry.getValue()).isInitialized()) {
return false;
}
}
}
return true;
}
 
/**
* Given a field type, return the wire type.
*
* @returns One of the {@code WIRETYPE_} constants defined in
* {@link WireFormat}.
*/
static int getWireFormatForFieldType(final WireFormat.FieldType type,
boolean isPacked) {
if (isPacked) {
return WireFormat.WIRETYPE_LENGTH_DELIMITED;
} else {
return type.getWireType();
}
}
 
/**
* Like {@link #mergeFrom(Message)}, but merges from another {@link FieldSet}.
*/
public void mergeFrom(final FieldSet<FieldDescriptorType> other) {
for (int i = 0; i < other.fields.getNumArrayEntries(); i++) {
mergeFromField(other.fields.getArrayEntryAt(i));
}
for (final Map.Entry<FieldDescriptorType, Object> entry :
other.fields.getOverflowEntries()) {
mergeFromField(entry);
}
}
 
@SuppressWarnings("unchecked")
private void mergeFromField(
final Map.Entry<FieldDescriptorType, Object> entry) {
final FieldDescriptorType descriptor = entry.getKey();
final Object otherValue = entry.getValue();
 
if (descriptor.isRepeated()) {
Object value = fields.get(descriptor);
if (value == null) {
// Our list is empty, but we still need to make a defensive copy of
// the other list since we don't know if the other FieldSet is still
// mutable.
fields.put(descriptor, new ArrayList((List) otherValue));
} else {
// Concatenate the lists.
((List) value).addAll((List) otherValue);
}
} else if (descriptor.getLiteJavaType() == WireFormat.JavaType.MESSAGE) {
Object value = fields.get(descriptor);
if (value == null) {
fields.put(descriptor, otherValue);
} else {
// Merge the messages.
fields.put(
descriptor,
descriptor.internalMergeFrom(
((MessageLite) value).toBuilder(), (MessageLite) otherValue)
.build());
}
 
} else {
fields.put(descriptor, otherValue);
}
}
 
// TODO(kenton): Move static parsing and serialization methods into some
// other class. Probably WireFormat.
 
/**
* Read a field of any primitive type from a CodedInputStream. Enums,
* groups, and embedded messages are not handled by this method.
*
* @param input The stream from which to read.
* @param type Declared type of the field.
* @return An object representing the field's value, of the exact
* type which would be returned by
* {@link Message#getField(Descriptors.FieldDescriptor)} for
* this field.
*/
public static Object readPrimitiveField(
CodedInputStream input,
final WireFormat.FieldType type) throws IOException {
switch (type) {
case DOUBLE : return input.readDouble ();
case FLOAT : return input.readFloat ();
case INT64 : return input.readInt64 ();
case UINT64 : return input.readUInt64 ();
case INT32 : return input.readInt32 ();
case FIXED64 : return input.readFixed64 ();
case FIXED32 : return input.readFixed32 ();
case BOOL : return input.readBool ();
case STRING : return input.readString ();
case BYTES : return input.readBytes ();
case UINT32 : return input.readUInt32 ();
case SFIXED32: return input.readSFixed32();
case SFIXED64: return input.readSFixed64();
case SINT32 : return input.readSInt32 ();
case SINT64 : return input.readSInt64 ();
 
case GROUP:
throw new IllegalArgumentException(
"readPrimitiveField() cannot handle nested groups.");
case MESSAGE:
throw new IllegalArgumentException(
"readPrimitiveField() cannot handle embedded messages.");
case ENUM:
// We don't handle enums because we don't know what to do if the
// value is not recognized.
throw new IllegalArgumentException(
"readPrimitiveField() cannot handle enums.");
}
 
throw new RuntimeException(
"There is no way to get here, but the compiler thinks otherwise.");
}
 
/** See {@link Message#writeTo(CodedOutputStream)}. */
public void writeTo(final CodedOutputStream output)
throws IOException {
for (int i = 0; i < fields.getNumArrayEntries(); i++) {
final Map.Entry<FieldDescriptorType, Object> entry =
fields.getArrayEntryAt(i);
writeField(entry.getKey(), entry.getValue(), output);
}
for (final Map.Entry<FieldDescriptorType, Object> entry :
fields.getOverflowEntries()) {
writeField(entry.getKey(), entry.getValue(), output);
}
}
 
/**
* Like {@link #writeTo} but uses MessageSet wire format.
*/
public void writeMessageSetTo(final CodedOutputStream output)
throws IOException {
for (int i = 0; i < fields.getNumArrayEntries(); i++) {
writeMessageSetTo(fields.getArrayEntryAt(i), output);
}
for (final Map.Entry<FieldDescriptorType, Object> entry :
fields.getOverflowEntries()) {
writeMessageSetTo(entry, output);
}
}
 
private void writeMessageSetTo(
final Map.Entry<FieldDescriptorType, Object> entry,
final CodedOutputStream output) throws IOException {
final FieldDescriptorType descriptor = entry.getKey();
if (descriptor.getLiteJavaType() == WireFormat.JavaType.MESSAGE &&
!descriptor.isRepeated() && !descriptor.isPacked()) {
output.writeMessageSetExtension(entry.getKey().getNumber(),
(MessageLite) entry.getValue());
} else {
writeField(descriptor, entry.getValue(), output);
}
}
 
/**
* Write a single tag-value pair to the stream.
*
* @param output The output stream.
* @param type The field's type.
* @param number The field's number.
* @param value Object representing the field's value. Must be of the exact
* type which would be returned by
* {@link Message#getField(Descriptors.FieldDescriptor)} for
* this field.
*/
private static void writeElement(final CodedOutputStream output,
final WireFormat.FieldType type,
final int number,
final Object value) throws IOException {
// Special case for groups, which need a start and end tag; other fields
// can just use writeTag() and writeFieldNoTag().
if (type == WireFormat.FieldType.GROUP) {
output.writeGroup(number, (MessageLite) value);
} else {
output.writeTag(number, getWireFormatForFieldType(type, false));
writeElementNoTag(output, type, value);
}
}
 
/**
* Write a field of arbitrary type, without its tag, to the stream.
*
* @param output The output stream.
* @param type The field's type.
* @param value Object representing the field's value. Must be of the exact
* type which would be returned by
* {@link Message#getField(Descriptors.FieldDescriptor)} for
* this field.
*/
private static void writeElementNoTag(
final CodedOutputStream output,
final WireFormat.FieldType type,
final Object value) throws IOException {
switch (type) {
case DOUBLE : output.writeDoubleNoTag ((Double ) value); break;
case FLOAT : output.writeFloatNoTag ((Float ) value); break;
case INT64 : output.writeInt64NoTag ((Long ) value); break;
case UINT64 : output.writeUInt64NoTag ((Long ) value); break;
case INT32 : output.writeInt32NoTag ((Integer ) value); break;
case FIXED64 : output.writeFixed64NoTag ((Long ) value); break;
case FIXED32 : output.writeFixed32NoTag ((Integer ) value); break;
case BOOL : output.writeBoolNoTag ((Boolean ) value); break;
case STRING : output.writeStringNoTag ((String ) value); break;
case GROUP : output.writeGroupNoTag ((MessageLite) value); break;
case MESSAGE : output.writeMessageNoTag ((MessageLite) value); break;
case BYTES : output.writeBytesNoTag ((ByteString ) value); break;
case UINT32 : output.writeUInt32NoTag ((Integer ) value); break;
case SFIXED32: output.writeSFixed32NoTag((Integer ) value); break;
case SFIXED64: output.writeSFixed64NoTag((Long ) value); break;
case SINT32 : output.writeSInt32NoTag ((Integer ) value); break;
case SINT64 : output.writeSInt64NoTag ((Long ) value); break;
 
case ENUM:
output.writeEnumNoTag(((Internal.EnumLite) value).getNumber());
break;
}
}
 
/** Write a single field. */
public static void writeField(final FieldDescriptorLite<?> descriptor,
final Object value,
final CodedOutputStream output)
throws IOException {
WireFormat.FieldType type = descriptor.getLiteType();
int number = descriptor.getNumber();
if (descriptor.isRepeated()) {
final List<?> valueList = (List<?>)value;
if (descriptor.isPacked()) {
output.writeTag(number, WireFormat.WIRETYPE_LENGTH_DELIMITED);
// Compute the total data size so the length can be written.
int dataSize = 0;
for (final Object element : valueList) {
dataSize += computeElementSizeNoTag(type, element);
}
output.writeRawVarint32(dataSize);
// Write the data itself, without any tags.
for (final Object element : valueList) {
writeElementNoTag(output, type, element);
}
} else {
for (final Object element : valueList) {
writeElement(output, type, number, element);
}
}
} else {
writeElement(output, type, number, value);
}
}
 
/**
* See {@link Message#getSerializedSize()}. It's up to the caller to cache
* the resulting size if desired.
*/
public int getSerializedSize() {
int size = 0;
for (int i = 0; i < fields.getNumArrayEntries(); i++) {
final Map.Entry<FieldDescriptorType, Object> entry =
fields.getArrayEntryAt(i);
size += computeFieldSize(entry.getKey(), entry.getValue());
}
for (final Map.Entry<FieldDescriptorType, Object> entry :
fields.getOverflowEntries()) {
size += computeFieldSize(entry.getKey(), entry.getValue());
}
return size;
}
 
/**
* Like {@link #getSerializedSize} but uses MessageSet wire format.
*/
public int getMessageSetSerializedSize() {
int size = 0;
for (int i = 0; i < fields.getNumArrayEntries(); i++) {
size += getMessageSetSerializedSize(fields.getArrayEntryAt(i));
}
for (final Map.Entry<FieldDescriptorType, Object> entry :
fields.getOverflowEntries()) {
size += getMessageSetSerializedSize(entry);
}
return size;
}
 
private int getMessageSetSerializedSize(
final Map.Entry<FieldDescriptorType, Object> entry) {
final FieldDescriptorType descriptor = entry.getKey();
if (descriptor.getLiteJavaType() == WireFormat.JavaType.MESSAGE &&
!descriptor.isRepeated() && !descriptor.isPacked()) {
return CodedOutputStream.computeMessageSetExtensionSize(
entry.getKey().getNumber(), (MessageLite) entry.getValue());
} else {
return computeFieldSize(descriptor, entry.getValue());
}
}
 
/**
* Compute the number of bytes that would be needed to encode a
* single tag/value pair of arbitrary type.
*
* @param type The field's type.
* @param number The field's number.
* @param value Object representing the field's value. Must be of the exact
* type which would be returned by
* {@link Message#getField(Descriptors.FieldDescriptor)} for
* this field.
*/
private static int computeElementSize(
final WireFormat.FieldType type,
final int number, final Object value) {
int tagSize = CodedOutputStream.computeTagSize(number);
if (type == WireFormat.FieldType.GROUP) {
tagSize *= 2;
}
return tagSize + computeElementSizeNoTag(type, value);
}
 
/**
* Compute the number of bytes that would be needed to encode a
* particular value of arbitrary type, excluding tag.
*
* @param type The field's type.
* @param value Object representing the field's value. Must be of the exact
* type which would be returned by
* {@link Message#getField(Descriptors.FieldDescriptor)} for
* this field.
*/
private static int computeElementSizeNoTag(
final WireFormat.FieldType type, final Object value) {
switch (type) {
// Note: Minor violation of 80-char limit rule here because this would
// actually be harder to read if we wrapped the lines.
case DOUBLE : return CodedOutputStream.computeDoubleSizeNoTag ((Double )value);
case FLOAT : return CodedOutputStream.computeFloatSizeNoTag ((Float )value);
case INT64 : return CodedOutputStream.computeInt64SizeNoTag ((Long )value);
case UINT64 : return CodedOutputStream.computeUInt64SizeNoTag ((Long )value);
case INT32 : return CodedOutputStream.computeInt32SizeNoTag ((Integer )value);
case FIXED64 : return CodedOutputStream.computeFixed64SizeNoTag ((Long )value);
case FIXED32 : return CodedOutputStream.computeFixed32SizeNoTag ((Integer )value);
case BOOL : return CodedOutputStream.computeBoolSizeNoTag ((Boolean )value);
case STRING : return CodedOutputStream.computeStringSizeNoTag ((String )value);
case GROUP : return CodedOutputStream.computeGroupSizeNoTag ((MessageLite)value);
case MESSAGE : return CodedOutputStream.computeMessageSizeNoTag ((MessageLite)value);
case BYTES : return CodedOutputStream.computeBytesSizeNoTag ((ByteString )value);
case UINT32 : return CodedOutputStream.computeUInt32SizeNoTag ((Integer )value);
case SFIXED32: return CodedOutputStream.computeSFixed32SizeNoTag((Integer )value);
case SFIXED64: return CodedOutputStream.computeSFixed64SizeNoTag((Long )value);
case SINT32 : return CodedOutputStream.computeSInt32SizeNoTag ((Integer )value);
case SINT64 : return CodedOutputStream.computeSInt64SizeNoTag ((Long )value);
 
case ENUM:
return CodedOutputStream.computeEnumSizeNoTag(
((Internal.EnumLite) value).getNumber());
}
 
throw new RuntimeException(
"There is no way to get here, but the compiler thinks otherwise.");
}
 
/**
* Compute the number of bytes needed to encode a particular field.
*/
public static int computeFieldSize(final FieldDescriptorLite<?> descriptor,
final Object value) {
WireFormat.FieldType type = descriptor.getLiteType();
int number = descriptor.getNumber();
if (descriptor.isRepeated()) {
if (descriptor.isPacked()) {
int dataSize = 0;
for (final Object element : (List<?>)value) {
dataSize += computeElementSizeNoTag(type, element);
}
return dataSize +
CodedOutputStream.computeTagSize(number) +
CodedOutputStream.computeRawVarint32Size(dataSize);
} else {
int size = 0;
for (final Object element : (List<?>)value) {
size += computeElementSize(type, number, element);
}
return size;
}
} else {
return computeElementSize(type, number, value);
}
}
}
/Android Development/IOIODebuggerServer/src/com/google/protobuf/GeneratedMessage.java
0,0 → 1,1834
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// http://code.google.com/p/protobuf/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
package com.google.protobuf;
 
import com.google.protobuf.Descriptors.Descriptor;
import com.google.protobuf.Descriptors.EnumValueDescriptor;
import com.google.protobuf.Descriptors.FieldDescriptor;
 
import java.io.IOException;
import java.io.ObjectStreamException;
import java.io.Serializable;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
 
/**
* All generated protocol message classes extend this class. This class
* implements most of the Message and Builder interfaces using Java reflection.
* Users can ignore this class and pretend that generated messages implement
* the Message interface directly.
*
* @author kenton@google.com Kenton Varda
*/
public abstract class GeneratedMessage extends AbstractMessage
implements Serializable {
private static final long serialVersionUID = 1L;
 
private final UnknownFieldSet unknownFields;
 
/**
* For testing. Allows a test to disable the optimization that avoids using
* field builders for nested messages until they are requested. By disabling
* this optimization, existing tests can be reused to test the field builders.
*/
protected static boolean alwaysUseFieldBuilders = false;
 
protected GeneratedMessage() {
this.unknownFields = UnknownFieldSet.getDefaultInstance();
}
 
protected GeneratedMessage(Builder<?> builder) {
this.unknownFields = builder.getUnknownFields();
}
 
/**
* For testing. Allows a test to disable the optimization that avoids using
* field builders for nested messages until they are requested. By disabling
* this optimization, existing tests can be reused to test the field builders.
* See {@link RepeatedFieldBuilder} and {@link SingleFieldBuilder}.
*/
static void enableAlwaysUseFieldBuildersForTesting() {
alwaysUseFieldBuilders = true;
}
 
/**
* Get the FieldAccessorTable for this type. We can't have the message
* class pass this in to the constructor because of bootstrapping trouble
* with DescriptorProtos.
*/
protected abstract FieldAccessorTable internalGetFieldAccessorTable();
 
//@Override (Java 1.6 override semantics, but we must support 1.5)
public Descriptor getDescriptorForType() {
return internalGetFieldAccessorTable().descriptor;
}
 
/** Internal helper which returns a mutable map. */
private Map<FieldDescriptor, Object> getAllFieldsMutable() {
final TreeMap<FieldDescriptor, Object> result =
new TreeMap<FieldDescriptor, Object>();
final Descriptor descriptor = internalGetFieldAccessorTable().descriptor;
for (final FieldDescriptor field : descriptor.getFields()) {
if (field.isRepeated()) {
final List<?> value = (List<?>) getField(field);
if (!value.isEmpty()) {
result.put(field, value);
}
} else {
if (hasField(field)) {
result.put(field, getField(field));
}
}
}
return result;
}
 
@Override
public boolean isInitialized() {
for (final FieldDescriptor field : getDescriptorForType().getFields()) {
// Check that all required fields are present.
if (field.isRequired()) {
if (!hasField(field)) {
return false;
}
}
// Check that embedded messages are initialized.
if (field.getJavaType() == FieldDescriptor.JavaType.MESSAGE) {
if (field.isRepeated()) {
@SuppressWarnings("unchecked") final
List<Message> messageList = (List<Message>) getField(field);
for (final Message element : messageList) {
if (!element.isInitialized()) {
return false;
}
}
} else {
if (hasField(field) && !((Message) getField(field)).isInitialized()) {
return false;
}
}
}
}
 
return true;
}
 
//@Override (Java 1.6 override semantics, but we must support 1.5)
public Map<FieldDescriptor, Object> getAllFields() {
return Collections.unmodifiableMap(getAllFieldsMutable());
}
 
//@Override (Java 1.6 override semantics, but we must support 1.5)
public boolean hasField(final FieldDescriptor field) {
return internalGetFieldAccessorTable().getField(field).has(this);
}
 
//@Override (Java 1.6 override semantics, but we must support 1.5)
public Object getField(final FieldDescriptor field) {
return internalGetFieldAccessorTable().getField(field).get(this);
}
 
//@Override (Java 1.6 override semantics, but we must support 1.5)
public int getRepeatedFieldCount(final FieldDescriptor field) {
return internalGetFieldAccessorTable().getField(field)
.getRepeatedCount(this);
}
 
//@Override (Java 1.6 override semantics, but we must support 1.5)
public Object getRepeatedField(final FieldDescriptor field, final int index) {
return internalGetFieldAccessorTable().getField(field)
.getRepeated(this, index);
}
 
//@Override (Java 1.6 override semantics, but we must support 1.5)
public final UnknownFieldSet getUnknownFields() {
return unknownFields;
}
 
protected abstract Message.Builder newBuilderForType(BuilderParent parent);
 
/**
* Interface for the parent of a Builder that allows the builder to
* communicate invalidations back to the parent for use when using nested
* builders.
*/
protected interface BuilderParent {
 
/**
* A builder becomes dirty whenever a field is modified -- including fields
* in nested builders -- and becomes clean when build() is called. Thus,
* when a builder becomes dirty, all its parents become dirty as well, and
* when it becomes clean, all its children become clean. The dirtiness
* state is used to invalidate certain cached values.
* <br>
* To this end, a builder calls markAsDirty() on its parent whenever it
* transitions from clean to dirty. The parent must propagate this call to
* its own parent, unless it was already dirty, in which case the
* grandparent must necessarily already be dirty as well. The parent can
* only transition back to "clean" after calling build() on all children.
*/
void markDirty();
}
 
@SuppressWarnings("unchecked")
public abstract static class Builder <BuilderType extends Builder>
extends AbstractMessage.Builder<BuilderType> {
 
private BuilderParent builderParent;
 
private BuilderParentImpl meAsParent;
 
// Indicates that we've built a message and so we are now obligated
// to dispatch dirty invalidations. See GeneratedMessage.BuilderListener.
private boolean isClean;
 
private UnknownFieldSet unknownFields =
UnknownFieldSet.getDefaultInstance();
 
protected Builder() {
this(null);
}
 
protected Builder(BuilderParent builderParent) {
this.builderParent = builderParent;
}
 
void dispose() {
builderParent = null;
}
 
/**
* Called by the subclass when a message is built.
*/
protected void onBuilt() {
if (builderParent != null) {
markClean();
}
}
 
/**
* Called by the subclass or a builder to notify us that a message was
* built and may be cached and therefore invalidations are needed.
*/
protected void markClean() {
this.isClean = true;
}
 
/**
* Gets whether invalidations are needed
*
* @return whether invalidations are needed
*/
protected boolean isClean() {
return isClean;
}
 
// This is implemented here only to work around an apparent bug in the
// Java compiler and/or build system. See bug #1898463. The mere presence
// of this dummy clone() implementation makes it go away.
@Override
public BuilderType clone() {
throw new UnsupportedOperationException(
"This is supposed to be overridden by subclasses.");
}
 
/**
* Called by the initialization and clear code paths to allow subclasses to
* reset any of their builtin fields back to the initial values.
*/
public BuilderType clear() {
unknownFields = UnknownFieldSet.getDefaultInstance();
onChanged();
return (BuilderType) this;
}
 
/**
* Get the FieldAccessorTable for this type. We can't have the message
* class pass this in to the constructor because of bootstrapping trouble
* with DescriptorProtos.
*/
protected abstract FieldAccessorTable internalGetFieldAccessorTable();
 
//@Override (Java 1.6 override semantics, but we must support 1.5)
public Descriptor getDescriptorForType() {
return internalGetFieldAccessorTable().descriptor;
}
 
//@Override (Java 1.6 override semantics, but we must support 1.5)
public Map<FieldDescriptor, Object> getAllFields() {
return Collections.unmodifiableMap(getAllFieldsMutable());
}
 
/** Internal helper which returns a mutable map. */
private Map<FieldDescriptor, Object> getAllFieldsMutable() {
final TreeMap<FieldDescriptor, Object> result =
new TreeMap<FieldDescriptor, Object>();
final Descriptor descriptor = internalGetFieldAccessorTable().descriptor;
for (final FieldDescriptor field : descriptor.getFields()) {
if (field.isRepeated()) {
final List value = (List) getField(field);
if (!value.isEmpty()) {
result.put(field, value);
}
} else {
if (hasField(field)) {
result.put(field, getField(field));
}
}
}
return result;
}
 
public Message.Builder newBuilderForField(
final FieldDescriptor field) {
return internalGetFieldAccessorTable().getField(field).newBuilder();
}
 
//@Override (Java 1.6 override semantics, but we must support 1.5)
public boolean hasField(final FieldDescriptor field) {
return internalGetFieldAccessorTable().getField(field).has(this);
}
 
//@Override (Java 1.6 override semantics, but we must support 1.5)
public Object getField(final FieldDescriptor field) {
Object object = internalGetFieldAccessorTable().getField(field).get(this);
if (field.isRepeated()) {
// The underlying list object is still modifiable at this point.
// Make sure not to expose the modifiable list to the caller.
return Collections.unmodifiableList((List) object);
} else {
return object;
}
}
 
public BuilderType setField(final FieldDescriptor field,
final Object value) {
internalGetFieldAccessorTable().getField(field).set(this, value);
return (BuilderType) this;
}
 
//@Override (Java 1.6 override semantics, but we must support 1.5)
public BuilderType clearField(final FieldDescriptor field) {
internalGetFieldAccessorTable().getField(field).clear(this);
return (BuilderType) this;
}
 
//@Override (Java 1.6 override semantics, but we must support 1.5)
public int getRepeatedFieldCount(final FieldDescriptor field) {
return internalGetFieldAccessorTable().getField(field)
.getRepeatedCount(this);
}
 
//@Override (Java 1.6 override semantics, but we must support 1.5)
public Object getRepeatedField(final FieldDescriptor field,
final int index) {
return internalGetFieldAccessorTable().getField(field)
.getRepeated(this, index);
}
 
public BuilderType setRepeatedField(final FieldDescriptor field,
final int index, final Object value) {
internalGetFieldAccessorTable().getField(field)
.setRepeated(this, index, value);
return (BuilderType) this;
}
 
public BuilderType addRepeatedField(final FieldDescriptor field,
final Object value) {
internalGetFieldAccessorTable().getField(field).addRepeated(this, value);
return (BuilderType) this;
}
 
public final BuilderType setUnknownFields(
final UnknownFieldSet unknownFields) {
this.unknownFields = unknownFields;
onChanged();
return (BuilderType) this;
}
 
@Override
public final BuilderType mergeUnknownFields(
final UnknownFieldSet unknownFields) {
this.unknownFields =
UnknownFieldSet.newBuilder(this.unknownFields)
.mergeFrom(unknownFields)
.build();
onChanged();
return (BuilderType) this;
}
 
//@Override (Java 1.6 override semantics, but we must support 1.5)
public boolean isInitialized() {
for (final FieldDescriptor field : getDescriptorForType().getFields()) {
// Check that all required fields are present.
if (field.isRequired()) {
if (!hasField(field)) {
return false;
}
}
// Check that embedded messages are initialized.
if (field.getJavaType() == FieldDescriptor.JavaType.MESSAGE) {
if (field.isRepeated()) {
@SuppressWarnings("unchecked") final
List<Message> messageList = (List<Message>) getField(field);
for (final Message element : messageList) {
if (!element.isInitialized()) {
return false;
}
}
} else {
if (hasField(field) &&
!((Message) getField(field)).isInitialized()) {
return false;
}
}
}
}
return true;
}
 
//@Override (Java 1.6 override semantics, but we must support 1.5)
public final UnknownFieldSet getUnknownFields() {
return unknownFields;
}
 
/**
* Called by subclasses to parse an unknown field.
* @return {@code true} unless the tag is an end-group tag.
*/
protected boolean parseUnknownField(
final CodedInputStream input,
final UnknownFieldSet.Builder unknownFields,
final ExtensionRegistryLite extensionRegistry,
final int tag) throws IOException {
return unknownFields.mergeFieldFrom(tag, input);
}
 
/**
* Implementation of {@link BuilderParent} for giving to our children. This
* small inner class makes it so we don't publicly expose the BuilderParent
* methods.
*/
private class BuilderParentImpl implements BuilderParent {
 
//@Override (Java 1.6 override semantics, but we must support 1.5)
public void markDirty() {
onChanged();
}
}
 
/**
* Gets the {@link BuilderParent} for giving to our children.
* @return The builder parent for our children.
*/
protected BuilderParent getParentForChildren() {
if (meAsParent == null) {
meAsParent = new BuilderParentImpl();
}
return meAsParent;
}
 
/**
* Called when a the builder or one of its nested children has changed
* and any parent should be notified of its invalidation.
*/
protected final void onChanged() {
if (isClean && builderParent != null) {
builderParent.markDirty();
 
// Don't keep dispatching invalidations until build is called again.
isClean = false;
}
}
}
 
// =================================================================
// Extensions-related stuff
 
public interface ExtendableMessageOrBuilder<
MessageType extends ExtendableMessage> extends MessageOrBuilder {
 
/** Check if a singular extension is present. */
<Type> boolean hasExtension(
GeneratedExtension<MessageType, Type> extension);
 
/** Get the number of elements in a repeated extension. */
<Type> int getExtensionCount(
GeneratedExtension<MessageType, List<Type>> extension);
 
/** Get the value of an extension. */
<Type> Type getExtension(GeneratedExtension<MessageType, Type> extension);
 
/** Get one element of a repeated extension. */
<Type> Type getExtension(
GeneratedExtension<MessageType, List<Type>> extension,
int index);
}
 
/**
* Generated message classes for message types that contain extension ranges
* subclass this.
*
* <p>This class implements type-safe accessors for extensions. They
* implement all the same operations that you can do with normal fields --
* e.g. "has", "get", and "getCount" -- but for extensions. The extensions
* are identified using instances of the class {@link GeneratedExtension};
* the protocol compiler generates a static instance of this class for every
* extension in its input. Through the magic of generics, all is made
* type-safe.
*
* <p>For example, imagine you have the {@code .proto} file:
*
* <pre>
* option java_class = "MyProto";
*
* message Foo {
* extensions 1000 to max;
* }
*
* extend Foo {
* optional int32 bar;
* }
* </pre>
*
* <p>Then you might write code like:
*
* <pre>
* MyProto.Foo foo = getFoo();
* int i = foo.getExtension(MyProto.bar);
* </pre>
*
* <p>See also {@link ExtendableBuilder}.
*/
public abstract static class ExtendableMessage<
MessageType extends ExtendableMessage>
extends GeneratedMessage
implements ExtendableMessageOrBuilder<MessageType> {
 
private final FieldSet<FieldDescriptor> extensions;
 
protected ExtendableMessage() {
this.extensions = FieldSet.newFieldSet();
}
 
protected ExtendableMessage(
ExtendableBuilder<MessageType, ?> builder) {
super(builder);
this.extensions = builder.buildExtensions();
}
 
private void verifyExtensionContainingType(
final GeneratedExtension<MessageType, ?> extension) {
if (extension.getDescriptor().getContainingType() !=
getDescriptorForType()) {
// This can only happen if someone uses unchecked operations.
throw new IllegalArgumentException(
"Extension is for type \"" +
extension.getDescriptor().getContainingType().getFullName() +
"\" which does not match message type \"" +
getDescriptorForType().getFullName() + "\".");
}
}
 
/** Check if a singular extension is present. */
//@Override (Java 1.6 override semantics, but we must support 1.5)
public final <Type> boolean hasExtension(
final GeneratedExtension<MessageType, Type> extension) {
verifyExtensionContainingType(extension);
return extensions.hasField(extension.getDescriptor());
}
 
/** Get the number of elements in a repeated extension. */
//@Override (Java 1.6 override semantics, but we must support 1.5)
public final <Type> int getExtensionCount(
final GeneratedExtension<MessageType, List<Type>> extension) {
verifyExtensionContainingType(extension);
final FieldDescriptor descriptor = extension.getDescriptor();
return extensions.getRepeatedFieldCount(descriptor);
}
 
/** Get the value of an extension. */
//@Override (Java 1.6 override semantics, but we must support 1.5)
@SuppressWarnings("unchecked")
public final <Type> Type getExtension(
final GeneratedExtension<MessageType, Type> extension) {
verifyExtensionContainingType(extension);
FieldDescriptor descriptor = extension.getDescriptor();
final Object value = extensions.getField(descriptor);
if (value == null) {
if (descriptor.isRepeated()) {
return (Type) Collections.emptyList();
} else if (descriptor.getJavaType() ==
FieldDescriptor.JavaType.MESSAGE) {
return (Type) extension.getMessageDefaultInstance();
} else {
return (Type) extension.fromReflectionType(
descriptor.getDefaultValue());
}
} else {
return (Type) extension.fromReflectionType(value);
}
}
 
/** Get one element of a repeated extension. */
//@Override (Java 1.6 override semantics, but we must support 1.5)
@SuppressWarnings("unchecked")
public final <Type> Type getExtension(
final GeneratedExtension<MessageType, List<Type>> extension,
final int index) {
verifyExtensionContainingType(extension);
FieldDescriptor descriptor = extension.getDescriptor();
return (Type) extension.singularFromReflectionType(
extensions.getRepeatedField(descriptor, index));
}
 
/** Called by subclasses to check if all extensions are initialized. */
protected boolean extensionsAreInitialized() {
return extensions.isInitialized();
}
 
@Override
public boolean isInitialized() {
return super.isInitialized() && extensionsAreInitialized();
}
 
/**
* Used by subclasses to serialize extensions. Extension ranges may be
* interleaved with field numbers, but we must write them in canonical
* (sorted by field number) order. ExtensionWriter helps us write
* individual ranges of extensions at once.
*/
protected class ExtensionWriter {
// Imagine how much simpler this code would be if Java iterators had
// a way to get the next element without advancing the iterator.
 
private final Iterator<Map.Entry<FieldDescriptor, Object>> iter =
extensions.iterator();
private Map.Entry<FieldDescriptor, Object> next;
private final boolean messageSetWireFormat;
 
private ExtensionWriter(final boolean messageSetWireFormat) {
if (iter.hasNext()) {
next = iter.next();
}
this.messageSetWireFormat = messageSetWireFormat;
}
 
public void writeUntil(final int end, final CodedOutputStream output)
throws IOException {
while (next != null && next.getKey().getNumber() < end) {
FieldDescriptor descriptor = next.getKey();
if (messageSetWireFormat && descriptor.getLiteJavaType() ==
WireFormat.JavaType.MESSAGE &&
!descriptor.isRepeated()) {
output.writeMessageSetExtension(descriptor.getNumber(),
(Message) next.getValue());
} else {
FieldSet.writeField(descriptor, next.getValue(), output);
}
if (iter.hasNext()) {
next = iter.next();
} else {
next = null;
}
}
}
}
 
protected ExtensionWriter newExtensionWriter() {
return new ExtensionWriter(false);
}
protected ExtensionWriter newMessageSetExtensionWriter() {
return new ExtensionWriter(true);
}
 
/** Called by subclasses to compute the size of extensions. */
protected int extensionsSerializedSize() {
return extensions.getSerializedSize();
}
protected int extensionsSerializedSizeAsMessageSet() {
return extensions.getMessageSetSerializedSize();
}
 
// ---------------------------------------------------------------
// Reflection
 
protected Map<FieldDescriptor, Object> getExtensionFields() {
return extensions.getAllFields();
}
 
@Override
public Map<FieldDescriptor, Object> getAllFields() {
final Map<FieldDescriptor, Object> result = super.getAllFieldsMutable();
result.putAll(getExtensionFields());
return Collections.unmodifiableMap(result);
}
 
@Override
public boolean hasField(final FieldDescriptor field) {
if (field.isExtension()) {
verifyContainingType(field);
return extensions.hasField(field);
} else {
return super.hasField(field);
}
}
 
@Override
public Object getField(final FieldDescriptor field) {
if (field.isExtension()) {
verifyContainingType(field);
final Object value = extensions.getField(field);
if (value == null) {
if (field.getJavaType() == FieldDescriptor.JavaType.MESSAGE) {
// Lacking an ExtensionRegistry, we have no way to determine the
// extension's real type, so we return a DynamicMessage.
return DynamicMessage.getDefaultInstance(field.getMessageType());
} else {
return field.getDefaultValue();
}
} else {
return value;
}
} else {
return super.getField(field);
}
}
 
@Override
public int getRepeatedFieldCount(final FieldDescriptor field) {
if (field.isExtension()) {
verifyContainingType(field);
return extensions.getRepeatedFieldCount(field);
} else {
return super.getRepeatedFieldCount(field);
}
}
 
@Override
public Object getRepeatedField(final FieldDescriptor field,
final int index) {
if (field.isExtension()) {
verifyContainingType(field);
return extensions.getRepeatedField(field, index);
} else {
return super.getRepeatedField(field, index);
}
}
 
private void verifyContainingType(final FieldDescriptor field) {
if (field.getContainingType() != getDescriptorForType()) {
throw new IllegalArgumentException(
"FieldDescriptor does not match message type.");
}
}
}
 
/**
* Generated message builders for message types that contain extension ranges
* subclass this.
*
* <p>This class implements type-safe accessors for extensions. They
* implement all the same operations that you can do with normal fields --
* e.g. "get", "set", and "add" -- but for extensions. The extensions are
* identified using instances of the class {@link GeneratedExtension}; the
* protocol compiler generates a static instance of this class for every
* extension in its input. Through the magic of generics, all is made
* type-safe.
*
* <p>For example, imagine you have the {@code .proto} file:
*
* <pre>
* option java_class = "MyProto";
*
* message Foo {
* extensions 1000 to max;
* }
*
* extend Foo {
* optional int32 bar;
* }
* </pre>
*
* <p>Then you might write code like:
*
* <pre>
* MyProto.Foo foo =
* MyProto.Foo.newBuilder()
* .setExtension(MyProto.bar, 123)
* .build();
* </pre>
*
* <p>See also {@link ExtendableMessage}.
*/
@SuppressWarnings("unchecked")
public abstract static class ExtendableBuilder<
MessageType extends ExtendableMessage,
BuilderType extends ExtendableBuilder>
extends Builder<BuilderType>
implements ExtendableMessageOrBuilder<MessageType> {
 
private FieldSet<FieldDescriptor> extensions = FieldSet.emptySet();
 
protected ExtendableBuilder() {}
 
protected ExtendableBuilder(
BuilderParent parent) {
super(parent);
}
 
@Override
public BuilderType clear() {
extensions = FieldSet.emptySet();
return super.clear();
}
 
// This is implemented here only to work around an apparent bug in the
// Java compiler and/or build system. See bug #1898463. The mere presence
// of this dummy clone() implementation makes it go away.
@Override
public BuilderType clone() {
throw new UnsupportedOperationException(
"This is supposed to be overridden by subclasses.");
}
 
private void ensureExtensionsIsMutable() {
if (extensions.isImmutable()) {
extensions = extensions.clone();
}
}
 
private void verifyExtensionContainingType(
final GeneratedExtension<MessageType, ?> extension) {
if (extension.getDescriptor().getContainingType() !=
getDescriptorForType()) {
// This can only happen if someone uses unchecked operations.
throw new IllegalArgumentException(
"Extension is for type \"" +
extension.getDescriptor().getContainingType().getFullName() +
"\" which does not match message type \"" +
getDescriptorForType().getFullName() + "\".");
}
}
 
/** Check if a singular extension is present. */
//@Override (Java 1.6 override semantics, but we must support 1.5)
public final <Type> boolean hasExtension(
final GeneratedExtension<MessageType, Type> extension) {
verifyExtensionContainingType(extension);
return extensions.hasField(extension.getDescriptor());
}
 
/** Get the number of elements in a repeated extension. */
//@Override (Java 1.6 override semantics, but we must support 1.5)
public final <Type> int getExtensionCount(
final GeneratedExtension<MessageType, List<Type>> extension) {
verifyExtensionContainingType(extension);
final FieldDescriptor descriptor = extension.getDescriptor();
return extensions.getRepeatedFieldCount(descriptor);
}
 
/** Get the value of an extension. */
//@Override (Java 1.6 override semantics, but we must support 1.5)
public final <Type> Type getExtension(
final GeneratedExtension<MessageType, Type> extension) {
verifyExtensionContainingType(extension);
FieldDescriptor descriptor = extension.getDescriptor();
final Object value = extensions.getField(descriptor);
if (value == null) {
if (descriptor.isRepeated()) {
return (Type) Collections.emptyList();
} else if (descriptor.getJavaType() ==
FieldDescriptor.JavaType.MESSAGE) {
return (Type) extension.getMessageDefaultInstance();
} else {
return (Type) extension.fromReflectionType(
descriptor.getDefaultValue());
}
} else {
return (Type) extension.fromReflectionType(value);
}
}
 
/** Get one element of a repeated extension. */
//@Override (Java 1.6 override semantics, but we must support 1.5)
public final <Type> Type getExtension(
final GeneratedExtension<MessageType, List<Type>> extension,
final int index) {
verifyExtensionContainingType(extension);
FieldDescriptor descriptor = extension.getDescriptor();
return (Type) extension.singularFromReflectionType(
extensions.getRepeatedField(descriptor, index));
}
 
/** Set the value of an extension. */
public final <Type> BuilderType setExtension(
final GeneratedExtension<MessageType, Type> extension,
final Type value) {
verifyExtensionContainingType(extension);
ensureExtensionsIsMutable();
final FieldDescriptor descriptor = extension.getDescriptor();
extensions.setField(descriptor, extension.toReflectionType(value));
onChanged();
return (BuilderType) this;
}
 
/** Set the value of one element of a repeated extension. */
public final <Type> BuilderType setExtension(
final GeneratedExtension<MessageType, List<Type>> extension,
final int index, final Type value) {
verifyExtensionContainingType(extension);
ensureExtensionsIsMutable();
final FieldDescriptor descriptor = extension.getDescriptor();
extensions.setRepeatedField(
descriptor, index,
extension.singularToReflectionType(value));
onChanged();
return (BuilderType) this;
}
 
/** Append a value to a repeated extension. */
public final <Type> BuilderType addExtension(
final GeneratedExtension<MessageType, List<Type>> extension,
final Type value) {
verifyExtensionContainingType(extension);
ensureExtensionsIsMutable();
final FieldDescriptor descriptor = extension.getDescriptor();
extensions.addRepeatedField(
descriptor, extension.singularToReflectionType(value));
onChanged();
return (BuilderType) this;
}
 
/** Clear an extension. */
public final <Type> BuilderType clearExtension(
final GeneratedExtension<MessageType, ?> extension) {
verifyExtensionContainingType(extension);
ensureExtensionsIsMutable();
extensions.clearField(extension.getDescriptor());
onChanged();
return (BuilderType) this;
}
 
/** Called by subclasses to check if all extensions are initialized. */
protected boolean extensionsAreInitialized() {
return extensions.isInitialized();
}
 
/**
* Called by the build code path to create a copy of the extensions for
* building the message.
*/
private FieldSet<FieldDescriptor> buildExtensions() {
extensions.makeImmutable();
return extensions;
}
 
@Override
public boolean isInitialized() {
return super.isInitialized() && extensionsAreInitialized();
}
 
/**
* Called by subclasses to parse an unknown field or an extension.
* @return {@code true} unless the tag is an end-group tag.
*/
@Override
protected boolean parseUnknownField(
final CodedInputStream input,
final UnknownFieldSet.Builder unknownFields,
final ExtensionRegistryLite extensionRegistry,
final int tag) throws IOException {
return AbstractMessage.Builder.mergeFieldFrom(
input, unknownFields, extensionRegistry, this, tag);
}
 
// ---------------------------------------------------------------
// Reflection
 
@Override
public Map<FieldDescriptor, Object> getAllFields() {
final Map<FieldDescriptor, Object> result = super.getAllFieldsMutable();
result.putAll(extensions.getAllFields());
return Collections.unmodifiableMap(result);
}
 
@Override
public Object getField(final FieldDescriptor field) {
if (field.isExtension()) {
verifyContainingType(field);
final Object value = extensions.getField(field);
if (value == null) {
if (field.getJavaType() == FieldDescriptor.JavaType.MESSAGE) {
// Lacking an ExtensionRegistry, we have no way to determine the
// extension's real type, so we return a DynamicMessage.
return DynamicMessage.getDefaultInstance(field.getMessageType());
} else {
return field.getDefaultValue();
}
} else {
return value;
}
} else {
return super.getField(field);
}
}
 
@Override
public int getRepeatedFieldCount(final FieldDescriptor field) {
if (field.isExtension()) {
verifyContainingType(field);
return extensions.getRepeatedFieldCount(field);
} else {
return super.getRepeatedFieldCount(field);
}
}
 
@Override
public Object getRepeatedField(final FieldDescriptor field,
final int index) {
if (field.isExtension()) {
verifyContainingType(field);
return extensions.getRepeatedField(field, index);
} else {
return super.getRepeatedField(field, index);
}
}
 
@Override
public boolean hasField(final FieldDescriptor field) {
if (field.isExtension()) {
verifyContainingType(field);
return extensions.hasField(field);
} else {
return super.hasField(field);
}
}
 
@Override
public BuilderType setField(final FieldDescriptor field,
final Object value) {
if (field.isExtension()) {
verifyContainingType(field);
ensureExtensionsIsMutable();
extensions.setField(field, value);
onChanged();
return (BuilderType) this;
} else {
return super.setField(field, value);
}
}
 
@Override
public BuilderType clearField(final FieldDescriptor field) {
if (field.isExtension()) {
verifyContainingType(field);
ensureExtensionsIsMutable();
extensions.clearField(field);
onChanged();
return (BuilderType) this;
} else {
return super.clearField(field);
}
}
 
@Override
public BuilderType setRepeatedField(final FieldDescriptor field,
final int index, final Object value) {
if (field.isExtension()) {
verifyContainingType(field);
ensureExtensionsIsMutable();
extensions.setRepeatedField(field, index, value);
onChanged();
return (BuilderType) this;
} else {
return super.setRepeatedField(field, index, value);
}
}
 
@Override
public BuilderType addRepeatedField(final FieldDescriptor field,
final Object value) {
if (field.isExtension()) {
verifyContainingType(field);
ensureExtensionsIsMutable();
extensions.addRepeatedField(field, value);
onChanged();
return (BuilderType) this;
} else {
return super.addRepeatedField(field, value);
}
}
 
protected final void mergeExtensionFields(final ExtendableMessage other) {
ensureExtensionsIsMutable();
extensions.mergeFrom(other.extensions);
onChanged();
}
 
private void verifyContainingType(final FieldDescriptor field) {
if (field.getContainingType() != getDescriptorForType()) {
throw new IllegalArgumentException(
"FieldDescriptor does not match message type.");
}
}
}
 
// -----------------------------------------------------------------
 
/**
* Gets the descriptor for an extension. The implementation depends on whether
* the extension is scoped in the top level of a file or scoped in a Message.
*/
private static interface ExtensionDescriptorRetriever {
FieldDescriptor getDescriptor();
}
 
/** For use by generated code only. */
public static <ContainingType extends Message, Type>
GeneratedExtension<ContainingType, Type>
newMessageScopedGeneratedExtension(final Message scope,
final int descriptorIndex,
final Class singularType,
final Message defaultInstance) {
// For extensions scoped within a Message, we use the Message to resolve
// the outer class's descriptor, from which the extension descriptor is
// obtained.
return new GeneratedExtension<ContainingType, Type>(
new ExtensionDescriptorRetriever() {
//@Override (Java 1.6 override semantics, but we must support 1.5)
public FieldDescriptor getDescriptor() {
return scope.getDescriptorForType().getExtensions()
.get(descriptorIndex);
}
},
singularType,
defaultInstance);
}
 
/** For use by generated code only. */
public static <ContainingType extends Message, Type>
GeneratedExtension<ContainingType, Type>
newFileScopedGeneratedExtension(final Class singularType,
final Message defaultInstance) {
// For extensions scoped within a file, we rely on the outer class's
// static initializer to call internalInit() on the extension when the
// descriptor is available.
return new GeneratedExtension<ContainingType, Type>(
null, // ExtensionDescriptorRetriever is initialized in internalInit();
singularType,
defaultInstance);
}
 
/**
* Type used to represent generated extensions. The protocol compiler
* generates a static singleton instance of this class for each extension.
*
* <p>For example, imagine you have the {@code .proto} file:
*
* <pre>
* option java_class = "MyProto";
*
* message Foo {
* extensions 1000 to max;
* }
*
* extend Foo {
* optional int32 bar;
* }
* </pre>
*
* <p>Then, {@code MyProto.Foo.bar} has type
* {@code GeneratedExtension<MyProto.Foo, Integer>}.
*
* <p>In general, users should ignore the details of this type, and simply use
* these static singletons as parameters to the extension accessors defined
* in {@link ExtendableMessage} and {@link ExtendableBuilder}.
*/
public static final class GeneratedExtension<
ContainingType extends Message, Type> {
// TODO(kenton): Find ways to avoid using Java reflection within this
// class. Also try to avoid suppressing unchecked warnings.
 
// We can't always initialize the descriptor of a GeneratedExtension when
// we first construct it due to initialization order difficulties (namely,
// the descriptor may not have been constructed yet, since it is often
// constructed by the initializer of a separate module).
//
// In the case of nested extensions, we initialize the
// ExtensionDescriptorRetriever with an instance that uses the scoping
// Message's default instance to retrieve the extension's descriptor.
//
// In the case of non-nested extensions, we initialize the
// ExtensionDescriptorRetriever to null and rely on the outer class's static
// initializer to call internalInit() after the descriptor has been parsed.
private GeneratedExtension(ExtensionDescriptorRetriever descriptorRetriever,
Class singularType,
Message messageDefaultInstance) {
if (Message.class.isAssignableFrom(singularType) &&
!singularType.isInstance(messageDefaultInstance)) {
throw new IllegalArgumentException(
"Bad messageDefaultInstance for " + singularType.getName());
}
this.descriptorRetriever = descriptorRetriever;
this.singularType = singularType;
this.messageDefaultInstance = messageDefaultInstance;
 
if (ProtocolMessageEnum.class.isAssignableFrom(singularType)) {
this.enumValueOf = getMethodOrDie(singularType, "valueOf",
EnumValueDescriptor.class);
this.enumGetValueDescriptor =
getMethodOrDie(singularType, "getValueDescriptor");
} else {
this.enumValueOf = null;
this.enumGetValueDescriptor = null;
}
}
 
/** For use by generated code only. */
public void internalInit(final FieldDescriptor descriptor) {
if (descriptorRetriever != null) {
throw new IllegalStateException("Already initialized.");
}
descriptorRetriever = new ExtensionDescriptorRetriever() {
//@Override (Java 1.6 override semantics, but we must support 1.5)
public FieldDescriptor getDescriptor() {
return descriptor;
}
};
}
 
private ExtensionDescriptorRetriever descriptorRetriever;
private final Class singularType;
private final Message messageDefaultInstance;
private final Method enumValueOf;
private final Method enumGetValueDescriptor;
 
public FieldDescriptor getDescriptor() {
if (descriptorRetriever == null) {
throw new IllegalStateException(
"getDescriptor() called before internalInit()");
}
return descriptorRetriever.getDescriptor();
}
 
/**
* If the extension is an embedded message or group, returns the default
* instance of the message.
*/
public Message getMessageDefaultInstance() {
return messageDefaultInstance;
}
 
/**
* Convert from the type used by the reflection accessors to the type used
* by native accessors. E.g., for enums, the reflection accessors use
* EnumValueDescriptors but the native accessors use the generated enum
* type.
*/
@SuppressWarnings("unchecked")
private Object fromReflectionType(final Object value) {
FieldDescriptor descriptor = getDescriptor();
if (descriptor.isRepeated()) {
if (descriptor.getJavaType() == FieldDescriptor.JavaType.MESSAGE ||
descriptor.getJavaType() == FieldDescriptor.JavaType.ENUM) {
// Must convert the whole list.
final List result = new ArrayList();
for (final Object element : (List) value) {
result.add(singularFromReflectionType(element));
}
return result;
} else {
return value;
}
} else {
return singularFromReflectionType(value);
}
}
 
/**
* Like {@link #fromReflectionType(Object)}, but if the type is a repeated
* type, this converts a single element.
*/
private Object singularFromReflectionType(final Object value) {
FieldDescriptor descriptor = getDescriptor();
switch (descriptor.getJavaType()) {
case MESSAGE:
if (singularType.isInstance(value)) {
return value;
} else {
// It seems the copy of the embedded message stored inside the
// extended message is not of the exact type the user was
// expecting. This can happen if a user defines a
// GeneratedExtension manually and gives it a different type.
// This should not happen in normal use. But, to be nice, we'll
// copy the message to whatever type the caller was expecting.
return messageDefaultInstance.newBuilderForType()
.mergeFrom((Message) value).build();
}
case ENUM:
return invokeOrDie(enumValueOf, null, (EnumValueDescriptor) value);
default:
return value;
}
}
 
/**
* Convert from the type used by the native accessors to the type used
* by reflection accessors. E.g., for enums, the reflection accessors use
* EnumValueDescriptors but the native accessors use the generated enum
* type.
*/
@SuppressWarnings("unchecked")
private Object toReflectionType(final Object value) {
FieldDescriptor descriptor = getDescriptor();
if (descriptor.isRepeated()) {
if (descriptor.getJavaType() == FieldDescriptor.JavaType.ENUM) {
// Must convert the whole list.
final List result = new ArrayList();
for (final Object element : (List) value) {
result.add(singularToReflectionType(element));
}
return result;
} else {
return value;
}
} else {
return singularToReflectionType(value);
}
}
 
/**
* Like {@link #toReflectionType(Object)}, but if the type is a repeated
* type, this converts a single element.
*/
private Object singularToReflectionType(final Object value) {
FieldDescriptor descriptor = getDescriptor();
switch (descriptor.getJavaType()) {
case ENUM:
return invokeOrDie(enumGetValueDescriptor, value);
default:
return value;
}
}
}
 
// =================================================================
 
/** Calls Class.getMethod and throws a RuntimeException if it fails. */
@SuppressWarnings("unchecked")
private static Method getMethodOrDie(
final Class clazz, final String name, final Class... params) {
try {
return clazz.getMethod(name, params);
} catch (NoSuchMethodException e) {
throw new RuntimeException(
"Generated message class \"" + clazz.getName() +
"\" missing method \"" + name + "\".", e);
}
}
 
/** Calls invoke and throws a RuntimeException if it fails. */
private static Object invokeOrDie(
final Method method, final Object object, final Object... params) {
try {
return method.invoke(object, params);
} catch (IllegalAccessException e) {
throw new RuntimeException(
"Couldn't use Java reflection to implement protocol message " +
"reflection.", e);
} catch (InvocationTargetException e) {
final Throwable cause = e.getCause();
if (cause instanceof RuntimeException) {
throw (RuntimeException) cause;
} else if (cause instanceof Error) {
throw (Error) cause;
} else {
throw new RuntimeException(
"Unexpected exception thrown by generated accessor method.", cause);
}
}
}
 
/**
* Users should ignore this class. This class provides the implementation
* with access to the fields of a message object using Java reflection.
*/
public static final class FieldAccessorTable {
 
/**
* Construct a FieldAccessorTable for a particular message class. Only
* one FieldAccessorTable should ever be constructed per class.
*
* @param descriptor The type's descriptor.
* @param camelCaseNames The camelcase names of all fields in the message.
* These are used to derive the accessor method names.
* @param messageClass The message type.
* @param builderClass The builder type.
*/
public FieldAccessorTable(
final Descriptor descriptor,
final String[] camelCaseNames,
final Class<? extends GeneratedMessage> messageClass,
final Class<? extends Builder> builderClass) {
this.descriptor = descriptor;
fields = new FieldAccessor[descriptor.getFields().size()];
 
for (int i = 0; i < fields.length; i++) {
final FieldDescriptor field = descriptor.getFields().get(i);
if (field.isRepeated()) {
if (field.getJavaType() == FieldDescriptor.JavaType.MESSAGE) {
fields[i] = new RepeatedMessageFieldAccessor(
field, camelCaseNames[i], messageClass, builderClass);
} else if (field.getJavaType() == FieldDescriptor.JavaType.ENUM) {
fields[i] = new RepeatedEnumFieldAccessor(
field, camelCaseNames[i], messageClass, builderClass);
} else {
fields[i] = new RepeatedFieldAccessor(
field, camelCaseNames[i], messageClass, builderClass);
}
} else {
if (field.getJavaType() == FieldDescriptor.JavaType.MESSAGE) {
fields[i] = new SingularMessageFieldAccessor(
field, camelCaseNames[i], messageClass, builderClass);
} else if (field.getJavaType() == FieldDescriptor.JavaType.ENUM) {
fields[i] = new SingularEnumFieldAccessor(
field, camelCaseNames[i], messageClass, builderClass);
} else {
fields[i] = new SingularFieldAccessor(
field, camelCaseNames[i], messageClass, builderClass);
}
}
}
}
 
private final Descriptor descriptor;
private final FieldAccessor[] fields;
 
/** Get the FieldAccessor for a particular field. */
private FieldAccessor getField(final FieldDescriptor field) {
if (field.getContainingType() != descriptor) {
throw new IllegalArgumentException(
"FieldDescriptor does not match message type.");
} else if (field.isExtension()) {
// If this type had extensions, it would subclass ExtendableMessage,
// which overrides the reflection interface to handle extensions.
throw new IllegalArgumentException(
"This type does not have extensions.");
}
return fields[field.getIndex()];
}
 
/**
* Abstract interface that provides access to a single field. This is
* implemented differently depending on the field type and cardinality.
*/
private interface FieldAccessor {
Object get(GeneratedMessage message);
Object get(GeneratedMessage.Builder builder);
void set(Builder builder, Object value);
Object getRepeated(GeneratedMessage message, int index);
Object getRepeated(GeneratedMessage.Builder builder, int index);
void setRepeated(Builder builder,
int index, Object value);
void addRepeated(Builder builder, Object value);
boolean has(GeneratedMessage message);
boolean has(GeneratedMessage.Builder builder);
int getRepeatedCount(GeneratedMessage message);
int getRepeatedCount(GeneratedMessage.Builder builder);
void clear(Builder builder);
Message.Builder newBuilder();
}
 
// ---------------------------------------------------------------
 
private static class SingularFieldAccessor implements FieldAccessor {
SingularFieldAccessor(
final FieldDescriptor descriptor, final String camelCaseName,
final Class<? extends GeneratedMessage> messageClass,
final Class<? extends Builder> builderClass) {
getMethod = getMethodOrDie(messageClass, "get" + camelCaseName);
getMethodBuilder = getMethodOrDie(builderClass, "get" + camelCaseName);
type = getMethod.getReturnType();
setMethod = getMethodOrDie(builderClass, "set" + camelCaseName, type);
hasMethod =
getMethodOrDie(messageClass, "has" + camelCaseName);
hasMethodBuilder =
getMethodOrDie(builderClass, "has" + camelCaseName);
clearMethod = getMethodOrDie(builderClass, "clear" + camelCaseName);
}
 
// Note: We use Java reflection to call public methods rather than
// access private fields directly as this avoids runtime security
// checks.
protected final Class<?> type;
protected final Method getMethod;
protected final Method getMethodBuilder;
protected final Method setMethod;
protected final Method hasMethod;
protected final Method hasMethodBuilder;
protected final Method clearMethod;
 
public Object get(final GeneratedMessage message) {
return invokeOrDie(getMethod, message);
}
public Object get(GeneratedMessage.Builder builder) {
return invokeOrDie(getMethodBuilder, builder);
}
public void set(final Builder builder, final Object value) {
invokeOrDie(setMethod, builder, value);
}
public Object getRepeated(final GeneratedMessage message,
final int index) {
throw new UnsupportedOperationException(
"getRepeatedField() called on a singular field.");
}
public Object getRepeated(GeneratedMessage.Builder builder, int index) {
throw new UnsupportedOperationException(
"getRepeatedField() called on a singular field.");
}
public void setRepeated(final Builder builder,
final int index, final Object value) {
throw new UnsupportedOperationException(
"setRepeatedField() called on a singular field.");
}
public void addRepeated(final Builder builder, final Object value) {
throw new UnsupportedOperationException(
"addRepeatedField() called on a singular field.");
}
public boolean has(final GeneratedMessage message) {
return (Boolean) invokeOrDie(hasMethod, message);
}
public boolean has(GeneratedMessage.Builder builder) {
return (Boolean) invokeOrDie(hasMethodBuilder, builder);
}
public int getRepeatedCount(final GeneratedMessage message) {
throw new UnsupportedOperationException(
"getRepeatedFieldSize() called on a singular field.");
}
public int getRepeatedCount(GeneratedMessage.Builder builder) {
throw new UnsupportedOperationException(
"getRepeatedFieldSize() called on a singular field.");
}
public void clear(final Builder builder) {
invokeOrDie(clearMethod, builder);
}
public Message.Builder newBuilder() {
throw new UnsupportedOperationException(
"newBuilderForField() called on a non-Message type.");
}
}
 
private static class RepeatedFieldAccessor implements FieldAccessor {
protected final Class type;
protected final Method getMethod;
protected final Method getMethodBuilder;
protected final Method getRepeatedMethod;
protected final Method getRepeatedMethodBuilder;
protected final Method setRepeatedMethod;
protected final Method addRepeatedMethod;
protected final Method getCountMethod;
protected final Method getCountMethodBuilder;
protected final Method clearMethod;
 
RepeatedFieldAccessor(
final FieldDescriptor descriptor, final String camelCaseName,
final Class<? extends GeneratedMessage> messageClass,
final Class<? extends Builder> builderClass) {
getMethod = getMethodOrDie(messageClass,
"get" + camelCaseName + "List");
getMethodBuilder = getMethodOrDie(builderClass,
"get" + camelCaseName + "List");
 
 
getRepeatedMethod =
getMethodOrDie(messageClass, "get" + camelCaseName, Integer.TYPE);
getRepeatedMethodBuilder =
getMethodOrDie(builderClass, "get" + camelCaseName, Integer.TYPE);
type = getRepeatedMethod.getReturnType();
setRepeatedMethod =
getMethodOrDie(builderClass, "set" + camelCaseName,
Integer.TYPE, type);
addRepeatedMethod =
getMethodOrDie(builderClass, "add" + camelCaseName, type);
getCountMethod =
getMethodOrDie(messageClass, "get" + camelCaseName + "Count");
getCountMethodBuilder =
getMethodOrDie(builderClass, "get" + camelCaseName + "Count");
 
clearMethod = getMethodOrDie(builderClass, "clear" + camelCaseName);
}
 
public Object get(final GeneratedMessage message) {
return invokeOrDie(getMethod, message);
}
public Object get(GeneratedMessage.Builder builder) {
return invokeOrDie(getMethodBuilder, builder);
}
public void set(final Builder builder, final Object value) {
// Add all the elements individually. This serves two purposes:
// 1) Verifies that each element has the correct type.
// 2) Insures that the caller cannot modify the list later on and
// have the modifications be reflected in the message.
clear(builder);
for (final Object element : (List<?>) value) {
addRepeated(builder, element);
}
}
public Object getRepeated(final GeneratedMessage message,
final int index) {
return invokeOrDie(getRepeatedMethod, message, index);
}
public Object getRepeated(GeneratedMessage.Builder builder, int index) {
return invokeOrDie(getRepeatedMethodBuilder, builder, index);
}
public void setRepeated(final Builder builder,
final int index, final Object value) {
invokeOrDie(setRepeatedMethod, builder, index, value);
}
public void addRepeated(final Builder builder, final Object value) {
invokeOrDie(addRepeatedMethod, builder, value);
}
public boolean has(final GeneratedMessage message) {
throw new UnsupportedOperationException(
"hasField() called on a singular field.");
}
public boolean has(GeneratedMessage.Builder builder) {
throw new UnsupportedOperationException(
"hasField() called on a singular field.");
}
public int getRepeatedCount(final GeneratedMessage message) {
return (Integer) invokeOrDie(getCountMethod, message);
}
public int getRepeatedCount(GeneratedMessage.Builder builder) {
return (Integer) invokeOrDie(getCountMethodBuilder, builder);
}
public void clear(final Builder builder) {
invokeOrDie(clearMethod, builder);
}
public Message.Builder newBuilder() {
throw new UnsupportedOperationException(
"newBuilderForField() called on a non-Message type.");
}
}
 
// ---------------------------------------------------------------
 
private static final class SingularEnumFieldAccessor
extends SingularFieldAccessor {
SingularEnumFieldAccessor(
final FieldDescriptor descriptor, final String camelCaseName,
final Class<? extends GeneratedMessage> messageClass,
final Class<? extends Builder> builderClass) {
super(descriptor, camelCaseName, messageClass, builderClass);
 
valueOfMethod = getMethodOrDie(type, "valueOf",
EnumValueDescriptor.class);
getValueDescriptorMethod =
getMethodOrDie(type, "getValueDescriptor");
}
 
private Method valueOfMethod;
private Method getValueDescriptorMethod;
 
@Override
public Object get(final GeneratedMessage message) {
return invokeOrDie(getValueDescriptorMethod, super.get(message));
}
 
@Override
public Object get(final GeneratedMessage.Builder builder) {
return invokeOrDie(getValueDescriptorMethod, super.get(builder));
}
 
@Override
public void set(final Builder builder, final Object value) {
super.set(builder, invokeOrDie(valueOfMethod, null, value));
}
}
 
private static final class RepeatedEnumFieldAccessor
extends RepeatedFieldAccessor {
RepeatedEnumFieldAccessor(
final FieldDescriptor descriptor, final String camelCaseName,
final Class<? extends GeneratedMessage> messageClass,
final Class<? extends Builder> builderClass) {
super(descriptor, camelCaseName, messageClass, builderClass);
 
valueOfMethod = getMethodOrDie(type, "valueOf",
EnumValueDescriptor.class);
getValueDescriptorMethod =
getMethodOrDie(type, "getValueDescriptor");
}
 
private final Method valueOfMethod;
private final Method getValueDescriptorMethod;
 
@Override
@SuppressWarnings("unchecked")
public Object get(final GeneratedMessage message) {
final List newList = new ArrayList();
for (final Object element : (List) super.get(message)) {
newList.add(invokeOrDie(getValueDescriptorMethod, element));
}
return Collections.unmodifiableList(newList);
}
 
@Override
@SuppressWarnings("unchecked")
public Object get(final GeneratedMessage.Builder builder) {
final List newList = new ArrayList();
for (final Object element : (List) super.get(builder)) {
newList.add(invokeOrDie(getValueDescriptorMethod, element));
}
return Collections.unmodifiableList(newList);
}
 
@Override
public Object getRepeated(final GeneratedMessage message,
final int index) {
return invokeOrDie(getValueDescriptorMethod,
super.getRepeated(message, index));
}
@Override
public Object getRepeated(final GeneratedMessage.Builder builder,
final int index) {
return invokeOrDie(getValueDescriptorMethod,
super.getRepeated(builder, index));
}
@Override
public void setRepeated(final Builder builder,
final int index, final Object value) {
super.setRepeated(builder, index, invokeOrDie(valueOfMethod, null,
value));
}
@Override
public void addRepeated(final Builder builder, final Object value) {
super.addRepeated(builder, invokeOrDie(valueOfMethod, null, value));
}
}
 
// ---------------------------------------------------------------
 
private static final class SingularMessageFieldAccessor
extends SingularFieldAccessor {
SingularMessageFieldAccessor(
final FieldDescriptor descriptor, final String camelCaseName,
final Class<? extends GeneratedMessage> messageClass,
final Class<? extends Builder> builderClass) {
super(descriptor, camelCaseName, messageClass, builderClass);
 
newBuilderMethod = getMethodOrDie(type, "newBuilder");
}
 
private final Method newBuilderMethod;
 
private Object coerceType(final Object value) {
if (type.isInstance(value)) {
return value;
} else {
// The value is not the exact right message type. However, if it
// is an alternative implementation of the same type -- e.g. a
// DynamicMessage -- we should accept it. In this case we can make
// a copy of the message.
return ((Message.Builder) invokeOrDie(newBuilderMethod, null))
.mergeFrom((Message) value).build();
}
}
 
@Override
public void set(final Builder builder, final Object value) {
super.set(builder, coerceType(value));
}
@Override
public Message.Builder newBuilder() {
return (Message.Builder) invokeOrDie(newBuilderMethod, null);
}
}
 
private static final class RepeatedMessageFieldAccessor
extends RepeatedFieldAccessor {
RepeatedMessageFieldAccessor(
final FieldDescriptor descriptor, final String camelCaseName,
final Class<? extends GeneratedMessage> messageClass,
final Class<? extends Builder> builderClass) {
super(descriptor, camelCaseName, messageClass, builderClass);
 
newBuilderMethod = getMethodOrDie(type, "newBuilder");
}
 
private final Method newBuilderMethod;
 
private Object coerceType(final Object value) {
if (type.isInstance(value)) {
return value;
} else {
// The value is not the exact right message type. However, if it
// is an alternative implementation of the same type -- e.g. a
// DynamicMessage -- we should accept it. In this case we can make
// a copy of the message.
return ((Message.Builder) invokeOrDie(newBuilderMethod, null))
.mergeFrom((Message) value).build();
}
}
 
@Override
public void setRepeated(final Builder builder,
final int index, final Object value) {
super.setRepeated(builder, index, coerceType(value));
}
@Override
public void addRepeated(final Builder builder, final Object value) {
super.addRepeated(builder, coerceType(value));
}
@Override
public Message.Builder newBuilder() {
return (Message.Builder) invokeOrDie(newBuilderMethod, null);
}
}
}
 
/**
* Replaces this object in the output stream with a serialized form.
* Part of Java's serialization magic. Generated sub-classes must override
* this method by calling <code>return super.writeReplace();</code>
* @return a SerializedForm of this message
*/
protected Object writeReplace() throws ObjectStreamException {
return new GeneratedMessageLite.SerializedForm(this);
}
}
/Android Development/IOIODebuggerServer/src/com/google/protobuf/GeneratedMessageLite.java
0,0 → 1,731
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// http://code.google.com/p/protobuf/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
package com.google.protobuf;
 
import java.io.IOException;
import java.io.ObjectStreamException;
import java.io.Serializable;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
 
/**
* Lite version of {@link GeneratedMessage}.
*
* @author kenton@google.com Kenton Varda
*/
public abstract class GeneratedMessageLite extends AbstractMessageLite
implements Serializable {
private static final long serialVersionUID = 1L;
 
protected GeneratedMessageLite() {
}
 
protected GeneratedMessageLite(Builder builder) {
}
 
@SuppressWarnings("unchecked")
public abstract static class Builder<MessageType extends GeneratedMessageLite,
BuilderType extends Builder>
extends AbstractMessageLite.Builder<BuilderType> {
protected Builder() {}
 
//@Override (Java 1.6 override semantics, but we must support 1.5)
public BuilderType clear() {
return (BuilderType) this;
}
 
// This is implemented here only to work around an apparent bug in the
// Java compiler and/or build system. See bug #1898463. The mere presence
// of this dummy clone() implementation makes it go away.
@Override
public BuilderType clone() {
throw new UnsupportedOperationException(
"This is supposed to be overridden by subclasses.");
}
 
/** All subclasses implement this. */
public abstract BuilderType mergeFrom(MessageType message);
 
// Defined here for return type covariance.
public abstract MessageType getDefaultInstanceForType();
 
/**
* Called by subclasses to parse an unknown field.
* @return {@code true} unless the tag is an end-group tag.
*/
protected boolean parseUnknownField(
final CodedInputStream input,
final ExtensionRegistryLite extensionRegistry,
final int tag) throws IOException {
return input.skipField(tag);
}
}
 
// =================================================================
// Extensions-related stuff
 
/**
* Lite equivalent of {@link com.google.protobuf.GeneratedMessage.ExtendableMessageOrBuilder}.
*/
public interface ExtendableMessageOrBuilder<
MessageType extends ExtendableMessage> extends MessageLiteOrBuilder {
 
/** Check if a singular extension is present. */
<Type> boolean hasExtension(
GeneratedExtension<MessageType, Type> extension);
 
/** Get the number of elements in a repeated extension. */
<Type> int getExtensionCount(
GeneratedExtension<MessageType, List<Type>> extension);
 
/** Get the value of an extension. */
<Type> Type getExtension(GeneratedExtension<MessageType, Type> extension);
 
/** Get one element of a repeated extension. */
<Type> Type getExtension(
GeneratedExtension<MessageType, List<Type>> extension,
int index);
}
 
/**
* Lite equivalent of {@link GeneratedMessage.ExtendableMessage}.
*/
public abstract static class ExtendableMessage<
MessageType extends ExtendableMessage<MessageType>>
extends GeneratedMessageLite
implements ExtendableMessageOrBuilder<MessageType> {
 
private final FieldSet<ExtensionDescriptor> extensions;
 
protected ExtendableMessage() {
this.extensions = FieldSet.newFieldSet();
}
 
protected ExtendableMessage(ExtendableBuilder<MessageType, ?> builder) {
this.extensions = builder.buildExtensions();
}
 
private void verifyExtensionContainingType(
final GeneratedExtension<MessageType, ?> extension) {
if (extension.getContainingTypeDefaultInstance() !=
getDefaultInstanceForType()) {
// This can only happen if someone uses unchecked operations.
throw new IllegalArgumentException(
"This extension is for a different message type. Please make " +
"sure that you are not suppressing any generics type warnings.");
}
}
 
/** Check if a singular extension is present. */
//@Override (Java 1.6 override semantics, but we must support 1.5)
public final <Type> boolean hasExtension(
final GeneratedExtension<MessageType, Type> extension) {
verifyExtensionContainingType(extension);
return extensions.hasField(extension.descriptor);
}
 
/** Get the number of elements in a repeated extension. */
//@Override (Java 1.6 override semantics, but we must support 1.5)
public final <Type> int getExtensionCount(
final GeneratedExtension<MessageType, List<Type>> extension) {
verifyExtensionContainingType(extension);
return extensions.getRepeatedFieldCount(extension.descriptor);
}
 
/** Get the value of an extension. */
//@Override (Java 1.6 override semantics, but we must support 1.5)
@SuppressWarnings("unchecked")
public final <Type> Type getExtension(
final GeneratedExtension<MessageType, Type> extension) {
verifyExtensionContainingType(extension);
final Object value = extensions.getField(extension.descriptor);
if (value == null) {
return extension.defaultValue;
} else {
return (Type) value;
}
}
 
/** Get one element of a repeated extension. */
//@Override (Java 1.6 override semantics, but we must support 1.5)
@SuppressWarnings("unchecked")
public final <Type> Type getExtension(
final GeneratedExtension<MessageType, List<Type>> extension,
final int index) {
verifyExtensionContainingType(extension);
return (Type) extensions.getRepeatedField(extension.descriptor, index);
}
 
/** Called by subclasses to check if all extensions are initialized. */
protected boolean extensionsAreInitialized() {
return extensions.isInitialized();
}
 
/**
* Used by subclasses to serialize extensions. Extension ranges may be
* interleaved with field numbers, but we must write them in canonical
* (sorted by field number) order. ExtensionWriter helps us write
* individual ranges of extensions at once.
*/
protected class ExtensionWriter {
// Imagine how much simpler this code would be if Java iterators had
// a way to get the next element without advancing the iterator.
 
private final Iterator<Map.Entry<ExtensionDescriptor, Object>> iter =
extensions.iterator();
private Map.Entry<ExtensionDescriptor, Object> next;
private final boolean messageSetWireFormat;
 
private ExtensionWriter(boolean messageSetWireFormat) {
if (iter.hasNext()) {
next = iter.next();
}
this.messageSetWireFormat = messageSetWireFormat;
}
 
public void writeUntil(final int end, final CodedOutputStream output)
throws IOException {
while (next != null && next.getKey().getNumber() < end) {
ExtensionDescriptor extension = next.getKey();
if (messageSetWireFormat && extension.getLiteJavaType() ==
WireFormat.JavaType.MESSAGE &&
!extension.isRepeated()) {
output.writeMessageSetExtension(extension.getNumber(),
(MessageLite) next.getValue());
} else {
FieldSet.writeField(extension, next.getValue(), output);
}
if (iter.hasNext()) {
next = iter.next();
} else {
next = null;
}
}
}
}
 
protected ExtensionWriter newExtensionWriter() {
return new ExtensionWriter(false);
}
protected ExtensionWriter newMessageSetExtensionWriter() {
return new ExtensionWriter(true);
}
 
/** Called by subclasses to compute the size of extensions. */
protected int extensionsSerializedSize() {
return extensions.getSerializedSize();
}
protected int extensionsSerializedSizeAsMessageSet() {
return extensions.getMessageSetSerializedSize();
}
}
 
/**
* Lite equivalent of {@link GeneratedMessage.ExtendableBuilder}.
*/
@SuppressWarnings("unchecked")
public abstract static class ExtendableBuilder<
MessageType extends ExtendableMessage<MessageType>,
BuilderType extends ExtendableBuilder<MessageType, BuilderType>>
extends Builder<MessageType, BuilderType>
implements ExtendableMessageOrBuilder<MessageType> {
protected ExtendableBuilder() {}
 
private FieldSet<ExtensionDescriptor> extensions = FieldSet.emptySet();
private boolean extensionsIsMutable;
 
@Override
public BuilderType clear() {
extensions.clear();
extensionsIsMutable = false;
return super.clear();
}
 
private void ensureExtensionsIsMutable() {
if (!extensionsIsMutable) {
extensions = extensions.clone();
extensionsIsMutable = true;
}
}
 
/**
* Called by the build code path to create a copy of the extensions for
* building the message.
*/
private FieldSet<ExtensionDescriptor> buildExtensions() {
extensions.makeImmutable();
extensionsIsMutable = false;
return extensions;
}
 
private void verifyExtensionContainingType(
final GeneratedExtension<MessageType, ?> extension) {
if (extension.getContainingTypeDefaultInstance() !=
getDefaultInstanceForType()) {
// This can only happen if someone uses unchecked operations.
throw new IllegalArgumentException(
"This extension is for a different message type. Please make " +
"sure that you are not suppressing any generics type warnings.");
}
}
 
/** Check if a singular extension is present. */
//@Override (Java 1.6 override semantics, but we must support 1.5)
public final <Type> boolean hasExtension(
final GeneratedExtension<MessageType, Type> extension) {
verifyExtensionContainingType(extension);
return extensions.hasField(extension.descriptor);
}
 
/** Get the number of elements in a repeated extension. */
//@Override (Java 1.6 override semantics, but we must support 1.5)
public final <Type> int getExtensionCount(
final GeneratedExtension<MessageType, List<Type>> extension) {
verifyExtensionContainingType(extension);
return extensions.getRepeatedFieldCount(extension.descriptor);
}
 
/** Get the value of an extension. */
//@Override (Java 1.6 override semantics, but we must support 1.5)
@SuppressWarnings("unchecked")
public final <Type> Type getExtension(
final GeneratedExtension<MessageType, Type> extension) {
verifyExtensionContainingType(extension);
final Object value = extensions.getField(extension.descriptor);
if (value == null) {
return extension.defaultValue;
} else {
return (Type) value;
}
}
 
/** Get one element of a repeated extension. */
@SuppressWarnings("unchecked")
//@Override (Java 1.6 override semantics, but we must support 1.5)
public final <Type> Type getExtension(
final GeneratedExtension<MessageType, List<Type>> extension,
final int index) {
verifyExtensionContainingType(extension);
return (Type) extensions.getRepeatedField(extension.descriptor, index);
}
 
// This is implemented here only to work around an apparent bug in the
// Java compiler and/or build system. See bug #1898463. The mere presence
// of this dummy clone() implementation makes it go away.
@Override
public BuilderType clone() {
throw new UnsupportedOperationException(
"This is supposed to be overridden by subclasses.");
}
 
/** Set the value of an extension. */
public final <Type> BuilderType setExtension(
final GeneratedExtension<MessageType, Type> extension,
final Type value) {
verifyExtensionContainingType(extension);
ensureExtensionsIsMutable();
extensions.setField(extension.descriptor, value);
return (BuilderType) this;
}
 
/** Set the value of one element of a repeated extension. */
public final <Type> BuilderType setExtension(
final GeneratedExtension<MessageType, List<Type>> extension,
final int index, final Type value) {
verifyExtensionContainingType(extension);
ensureExtensionsIsMutable();
extensions.setRepeatedField(extension.descriptor, index, value);
return (BuilderType) this;
}
 
/** Append a value to a repeated extension. */
public final <Type> BuilderType addExtension(
final GeneratedExtension<MessageType, List<Type>> extension,
final Type value) {
verifyExtensionContainingType(extension);
ensureExtensionsIsMutable();
extensions.addRepeatedField(extension.descriptor, value);
return (BuilderType) this;
}
 
/** Clear an extension. */
public final <Type> BuilderType clearExtension(
final GeneratedExtension<MessageType, ?> extension) {
verifyExtensionContainingType(extension);
ensureExtensionsIsMutable();
extensions.clearField(extension.descriptor);
return (BuilderType) this;
}
 
/** Called by subclasses to check if all extensions are initialized. */
protected boolean extensionsAreInitialized() {
return extensions.isInitialized();
}
 
/**
* Called by subclasses to parse an unknown field or an extension.
* @return {@code true} unless the tag is an end-group tag.
*/
@Override
protected boolean parseUnknownField(
final CodedInputStream input,
final ExtensionRegistryLite extensionRegistry,
final int tag) throws IOException {
final int wireType = WireFormat.getTagWireType(tag);
final int fieldNumber = WireFormat.getTagFieldNumber(tag);
 
final GeneratedExtension<MessageType, ?> extension =
extensionRegistry.findLiteExtensionByNumber(
getDefaultInstanceForType(), fieldNumber);
 
boolean unknown = false;
boolean packed = false;
if (extension == null) {
unknown = true; // Unknown field.
} else if (wireType == FieldSet.getWireFormatForFieldType(
extension.descriptor.getLiteType(),
false /* isPacked */)) {
packed = false; // Normal, unpacked value.
} else if (extension.descriptor.isRepeated &&
extension.descriptor.type.isPackable() &&
wireType == FieldSet.getWireFormatForFieldType(
extension.descriptor.getLiteType(),
true /* isPacked */)) {
packed = true; // Packed value.
} else {
unknown = true; // Wrong wire type.
}
 
if (unknown) { // Unknown field or wrong wire type. Skip.
return input.skipField(tag);
}
 
if (packed) {
final int length = input.readRawVarint32();
final int limit = input.pushLimit(length);
if (extension.descriptor.getLiteType() == WireFormat.FieldType.ENUM) {
while (input.getBytesUntilLimit() > 0) {
final int rawValue = input.readEnum();
final Object value =
extension.descriptor.getEnumType().findValueByNumber(rawValue);
if (value == null) {
// If the number isn't recognized as a valid value for this
// enum, drop it (don't even add it to unknownFields).
return true;
}
ensureExtensionsIsMutable();
extensions.addRepeatedField(extension.descriptor, value);
}
} else {
while (input.getBytesUntilLimit() > 0) {
final Object value =
FieldSet.readPrimitiveField(input,
extension.descriptor.getLiteType());
ensureExtensionsIsMutable();
extensions.addRepeatedField(extension.descriptor, value);
}
}
input.popLimit(limit);
} else {
final Object value;
switch (extension.descriptor.getLiteJavaType()) {
case MESSAGE: {
MessageLite.Builder subBuilder = null;
if (!extension.descriptor.isRepeated()) {
MessageLite existingValue =
(MessageLite) extensions.getField(extension.descriptor);
if (existingValue != null) {
subBuilder = existingValue.toBuilder();
}
}
if (subBuilder == null) {
subBuilder = extension.messageDefaultInstance.newBuilderForType();
}
if (extension.descriptor.getLiteType() ==
WireFormat.FieldType.GROUP) {
input.readGroup(extension.getNumber(),
subBuilder, extensionRegistry);
} else {
input.readMessage(subBuilder, extensionRegistry);
}
value = subBuilder.build();
break;
}
case ENUM:
final int rawValue = input.readEnum();
value = extension.descriptor.getEnumType()
.findValueByNumber(rawValue);
// If the number isn't recognized as a valid value for this enum,
// drop it.
if (value == null) {
return true;
}
break;
default:
value = FieldSet.readPrimitiveField(input,
extension.descriptor.getLiteType());
break;
}
 
if (extension.descriptor.isRepeated()) {
ensureExtensionsIsMutable();
extensions.addRepeatedField(extension.descriptor, value);
} else {
ensureExtensionsIsMutable();
extensions.setField(extension.descriptor, value);
}
}
 
return true;
}
 
protected final void mergeExtensionFields(final MessageType other) {
ensureExtensionsIsMutable();
extensions.mergeFrom(((ExtendableMessage) other).extensions);
}
}
 
// -----------------------------------------------------------------
 
/** For use by generated code only. */
public static <ContainingType extends MessageLite, Type>
GeneratedExtension<ContainingType, Type>
newSingularGeneratedExtension(
final ContainingType containingTypeDefaultInstance,
final Type defaultValue,
final MessageLite messageDefaultInstance,
final Internal.EnumLiteMap<?> enumTypeMap,
final int number,
final WireFormat.FieldType type) {
return new GeneratedExtension<ContainingType, Type>(
containingTypeDefaultInstance,
defaultValue,
messageDefaultInstance,
new ExtensionDescriptor(enumTypeMap, number, type,
false /* isRepeated */,
false /* isPacked */));
}
 
/** For use by generated code only. */
public static <ContainingType extends MessageLite, Type>
GeneratedExtension<ContainingType, Type>
newRepeatedGeneratedExtension(
final ContainingType containingTypeDefaultInstance,
final MessageLite messageDefaultInstance,
final Internal.EnumLiteMap<?> enumTypeMap,
final int number,
final WireFormat.FieldType type,
final boolean isPacked) {
@SuppressWarnings("unchecked") // Subclasses ensure Type is a List
Type emptyList = (Type) Collections.emptyList();
return new GeneratedExtension<ContainingType, Type>(
containingTypeDefaultInstance,
emptyList,
messageDefaultInstance,
new ExtensionDescriptor(
enumTypeMap, number, type, true /* isRepeated */, isPacked));
}
 
private static final class ExtensionDescriptor
implements FieldSet.FieldDescriptorLite<
ExtensionDescriptor> {
private ExtensionDescriptor(
final Internal.EnumLiteMap<?> enumTypeMap,
final int number,
final WireFormat.FieldType type,
final boolean isRepeated,
final boolean isPacked) {
this.enumTypeMap = enumTypeMap;
this.number = number;
this.type = type;
this.isRepeated = isRepeated;
this.isPacked = isPacked;
}
 
private final Internal.EnumLiteMap<?> enumTypeMap;
private final int number;
private final WireFormat.FieldType type;
private final boolean isRepeated;
private final boolean isPacked;
 
public int getNumber() {
return number;
}
 
public WireFormat.FieldType getLiteType() {
return type;
}
 
public WireFormat.JavaType getLiteJavaType() {
return type.getJavaType();
}
 
public boolean isRepeated() {
return isRepeated;
}
 
public boolean isPacked() {
return isPacked;
}
 
public Internal.EnumLiteMap<?> getEnumType() {
return enumTypeMap;
}
 
@SuppressWarnings("unchecked")
public MessageLite.Builder internalMergeFrom(
MessageLite.Builder to, MessageLite from) {
return ((Builder) to).mergeFrom((GeneratedMessageLite) from);
}
 
public int compareTo(ExtensionDescriptor other) {
return number - other.number;
}
}
 
/**
* Lite equivalent to {@link GeneratedMessage.GeneratedExtension}.
*
* Users should ignore the contents of this class and only use objects of
* this type as parameters to extension accessors and ExtensionRegistry.add().
*/
public static final class GeneratedExtension<
ContainingType extends MessageLite, Type> {
 
private GeneratedExtension(
final ContainingType containingTypeDefaultInstance,
final Type defaultValue,
final MessageLite messageDefaultInstance,
final ExtensionDescriptor descriptor) {
// Defensive checks to verify the correct initialization order of
// GeneratedExtensions and their related GeneratedMessages.
if (containingTypeDefaultInstance == null) {
throw new IllegalArgumentException(
"Null containingTypeDefaultInstance");
}
if (descriptor.getLiteType() == WireFormat.FieldType.MESSAGE &&
messageDefaultInstance == null) {
throw new IllegalArgumentException(
"Null messageDefaultInstance");
}
this.containingTypeDefaultInstance = containingTypeDefaultInstance;
this.defaultValue = defaultValue;
this.messageDefaultInstance = messageDefaultInstance;
this.descriptor = descriptor;
}
 
private final ContainingType containingTypeDefaultInstance;
private final Type defaultValue;
private final MessageLite messageDefaultInstance;
private final ExtensionDescriptor descriptor;
 
/**
* Default instance of the type being extended, used to identify that type.
*/
public ContainingType getContainingTypeDefaultInstance() {
return containingTypeDefaultInstance;
}
 
/** Get the field number. */
public int getNumber() {
return descriptor.getNumber();
}
 
/**
* If the extension is an embedded message, this is the default instance of
* that type.
*/
public MessageLite getMessageDefaultInstance() {
return messageDefaultInstance;
}
}
 
/**
* A serialized (serializable) form of the generated message. Stores the
* message as a class name and a byte array.
*/
static final class SerializedForm implements Serializable {
private static final long serialVersionUID = 0L;
 
private String messageClassName;
private byte[] asBytes;
 
/**
* Creates the serialized form by calling {@link com.google.protobuf.MessageLite#toByteArray}.
* @param regularForm the message to serialize
*/
SerializedForm(MessageLite regularForm) {
messageClassName = regularForm.getClass().getName();
asBytes = regularForm.toByteArray();
}
 
/**
* When read from an ObjectInputStream, this method converts this object
* back to the regular form. Part of Java's serialization magic.
* @return a GeneratedMessage of the type that was serialized
*/
@SuppressWarnings("unchecked")
protected Object readResolve() throws ObjectStreamException {
try {
Class messageClass = Class.forName(messageClassName);
Method newBuilder = messageClass.getMethod("newBuilder");
MessageLite.Builder builder =
(MessageLite.Builder) newBuilder.invoke(null);
builder.mergeFrom(asBytes);
return builder.buildPartial();
} catch (ClassNotFoundException e) {
throw new RuntimeException("Unable to find proto buffer class", e);
} catch (NoSuchMethodException e) {
throw new RuntimeException("Unable to find newBuilder method", e);
} catch (IllegalAccessException e) {
throw new RuntimeException("Unable to call newBuilder method", e);
} catch (InvocationTargetException e) {
throw new RuntimeException("Error calling newBuilder", e.getCause());
} catch (InvalidProtocolBufferException e) {
throw new RuntimeException("Unable to understand proto buffer", e);
}
}
}
 
/**
* Replaces this object in the output stream with a serialized form.
* Part of Java's serialization magic. Generated sub-classes must override
* this method by calling <code>return super.writeReplace();</code>
* @return a SerializedForm of this message
*/
protected Object writeReplace() throws ObjectStreamException {
return new SerializedForm(this);
}
}
/Android Development/IOIODebuggerServer/src/com/google/protobuf/Internal.java
0,0 → 1,206
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// http://code.google.com/p/protobuf/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
package com.google.protobuf;
 
import java.io.UnsupportedEncodingException;
 
/**
* The classes contained within are used internally by the Protocol Buffer
* library and generated message implementations. They are public only because
* those generated messages do not reside in the {@code protobuf} package.
* Others should not use this class directly.
*
* @author kenton@google.com (Kenton Varda)
*/
public class Internal {
/**
* Helper called by generated code to construct default values for string
* fields.
* <p>
* The protocol compiler does not actually contain a UTF-8 decoder -- it
* just pushes UTF-8-encoded text around without touching it. The one place
* where this presents a problem is when generating Java string literals.
* Unicode characters in the string literal would normally need to be encoded
* using a Unicode escape sequence, which would require decoding them.
* To get around this, protoc instead embeds the UTF-8 bytes into the
* generated code and leaves it to the runtime library to decode them.
* <p>
* It gets worse, though. If protoc just generated a byte array, like:
* new byte[] {0x12, 0x34, 0x56, 0x78}
* Java actually generates *code* which allocates an array and then fills
* in each value. This is much less efficient than just embedding the bytes
* directly into the bytecode. To get around this, we need another
* work-around. String literals are embedded directly, so protoc actually
* generates a string literal corresponding to the bytes. The easiest way
* to do this is to use the ISO-8859-1 character set, which corresponds to
* the first 256 characters of the Unicode range. Protoc can then use
* good old CEscape to generate the string.
* <p>
* So we have a string literal which represents a set of bytes which
* represents another string. This function -- stringDefaultValue --
* converts from the generated string to the string we actually want. The
* generated code calls this automatically.
*/
public static String stringDefaultValue(String bytes) {
try {
return new String(bytes.getBytes("ISO-8859-1"), "UTF-8");
} catch (UnsupportedEncodingException e) {
// This should never happen since all JVMs are required to implement
// both of the above character sets.
throw new IllegalStateException(
"Java VM does not support a standard character set.", e);
}
}
 
/**
* Helper called by generated code to construct default values for bytes
* fields.
* <p>
* This is a lot like {@link #stringDefaultValue}, but for bytes fields.
* In this case we only need the second of the two hacks -- allowing us to
* embed raw bytes as a string literal with ISO-8859-1 encoding.
*/
public static ByteString bytesDefaultValue(String bytes) {
try {
return ByteString.copyFrom(bytes.getBytes("ISO-8859-1"));
} catch (UnsupportedEncodingException e) {
// This should never happen since all JVMs are required to implement
// ISO-8859-1.
throw new IllegalStateException(
"Java VM does not support a standard character set.", e);
}
}
 
/**
* Helper called by generated code to determine if a byte array is a valid
* UTF-8 encoded string such that the original bytes can be converted to
* a String object and then back to a byte array round tripping the bytes
* without loss.
* <p>
* This is inspired by UTF_8.java in sun.nio.cs.
*
* @param byteString the string to check
* @return whether the byte array is round trippable
*/
public static boolean isValidUtf8(ByteString byteString) {
int index = 0;
int size = byteString.size();
// To avoid the masking, we could change this to use bytes;
// Then X > 0xC2 gets turned into X < -0xC2; X < 0x80
// gets turned into X >= 0, etc.
 
while (index < size) {
int byte1 = byteString.byteAt(index++) & 0xFF;
if (byte1 < 0x80) {
// fast loop for single bytes
continue;
 
// we know from this point on that we have 2-4 byte forms
} else if (byte1 < 0xC2 || byte1 > 0xF4) {
// catch illegal first bytes: < C2 or > F4
return false;
}
if (index >= size) {
// fail if we run out of bytes
return false;
}
int byte2 = byteString.byteAt(index++) & 0xFF;
if (byte2 < 0x80 || byte2 > 0xBF) {
// general trail-byte test
return false;
}
if (byte1 <= 0xDF) {
// two-byte form; general trail-byte test is sufficient
continue;
}
 
// we know from this point on that we have 3 or 4 byte forms
if (index >= size) {
// fail if we run out of bytes
return false;
}
int byte3 = byteString.byteAt(index++) & 0xFF;
if (byte3 < 0x80 || byte3 > 0xBF) {
// general trail-byte test
return false;
}
if (byte1 <= 0xEF) {
// three-byte form. Vastly more frequent than four-byte forms
// The following has an extra test, but not worth restructuring
if (byte1 == 0xE0 && byte2 < 0xA0 ||
byte1 == 0xED && byte2 > 0x9F) {
// check special cases of byte2
return false;
}
 
} else {
// four-byte form
 
if (index >= size) {
// fail if we run out of bytes
return false;
}
int byte4 = byteString.byteAt(index++) & 0xFF;
if (byte4 < 0x80 || byte4 > 0xBF) {
// general trail-byte test
return false;
}
// The following has an extra test, but not worth restructuring
if (byte1 == 0xF0 && byte2 < 0x90 ||
byte1 == 0xF4 && byte2 > 0x8F) {
// check special cases of byte2
return false;
}
}
}
return true;
}
 
/**
* Interface for an enum value or value descriptor, to be used in FieldSet.
* The lite library stores enum values directly in FieldSets but the full
* library stores EnumValueDescriptors in order to better support reflection.
*/
public interface EnumLite {
int getNumber();
}
 
/**
* Interface for an object which maps integers to {@link EnumLite}s.
* {@link Descriptors.EnumDescriptor} implements this interface by mapping
* numbers to {@link Descriptors.EnumValueDescriptor}s. Additionally,
* every generated enum type has a static method internalGetValueMap() which
* returns an implementation of this type that maps numbers to enum values.
*/
public interface EnumLiteMap<T extends EnumLite> {
T findValueByNumber(int number);
}
}
/Android Development/IOIODebuggerServer/src/com/google/protobuf/InvalidProtocolBufferException.java
0,0 → 1,93
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// http://code.google.com/p/protobuf/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
package com.google.protobuf;
 
import java.io.IOException;
 
/**
* Thrown when a protocol message being parsed is invalid in some way,
* e.g. it contains a malformed varint or a negative byte length.
*
* @author kenton@google.com Kenton Varda
*/
public class InvalidProtocolBufferException extends IOException {
private static final long serialVersionUID = -1616151763072450476L;
 
public InvalidProtocolBufferException(final String description) {
super(description);
}
 
static InvalidProtocolBufferException truncatedMessage() {
return new InvalidProtocolBufferException(
"While parsing a protocol message, the input ended unexpectedly " +
"in the middle of a field. This could mean either than the " +
"input has been truncated or that an embedded message " +
"misreported its own length.");
}
 
static InvalidProtocolBufferException negativeSize() {
return new InvalidProtocolBufferException(
"CodedInputStream encountered an embedded string or message " +
"which claimed to have negative size.");
}
 
static InvalidProtocolBufferException malformedVarint() {
return new InvalidProtocolBufferException(
"CodedInputStream encountered a malformed varint.");
}
 
static InvalidProtocolBufferException invalidTag() {
return new InvalidProtocolBufferException(
"Protocol message contained an invalid tag (zero).");
}
 
static InvalidProtocolBufferException invalidEndTag() {
return new InvalidProtocolBufferException(
"Protocol message end-group tag did not match expected tag.");
}
 
static InvalidProtocolBufferException invalidWireType() {
return new InvalidProtocolBufferException(
"Protocol message tag had invalid wire type.");
}
 
static InvalidProtocolBufferException recursionLimitExceeded() {
return new InvalidProtocolBufferException(
"Protocol message had too many levels of nesting. May be malicious. " +
"Use CodedInputStream.setRecursionLimit() to increase the depth limit.");
}
 
static InvalidProtocolBufferException sizeLimitExceeded() {
return new InvalidProtocolBufferException(
"Protocol message was too large. May be malicious. " +
"Use CodedInputStream.setSizeLimit() to increase the size limit.");
}
}
/Android Development/IOIODebuggerServer/src/com/google/protobuf/LazyStringArrayList.java
0,0 → 1,155
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// http://code.google.com/p/protobuf/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
package com.google.protobuf;
 
import java.util.List;
import java.util.AbstractList;
import java.util.ArrayList;
import java.util.RandomAccess;
import java.util.Collection;
 
/**
* An implementation of {@link LazyStringList} that wraps an ArrayList. Each
* element is either a ByteString or a String. It caches the last one requested
* which is most likely the one needed next. This minimizes memory usage while
* satisfying the most common use cases.
* <p>
* <strong>Note that this implementation is not synchronized.</strong>
* If multiple threads access an <tt>ArrayList</tt> instance concurrently,
* and at least one of the threads modifies the list structurally, it
* <i>must</i> be synchronized externally. (A structural modification is
* any operation that adds or deletes one or more elements, or explicitly
* resizes the backing array; merely setting the value of an element is not
* a structural modification.) This is typically accomplished by
* synchronizing on some object that naturally encapsulates the list.
* <p>
* If the implementation is accessed via concurrent reads, this is thread safe.
* Conversions are done in a thread safe manner. It's possible that the
* conversion may happen more than once if two threads attempt to access the
* same element and the modifications were not visible to each other, but this
* will not result in any corruption of the list or change in behavior other
* than performance.
*
* @author jonp@google.com (Jon Perlow)
*/
public class LazyStringArrayList extends AbstractList<String>
implements LazyStringList, RandomAccess {
 
public final static LazyStringList EMPTY = new UnmodifiableLazyStringList(
new LazyStringArrayList());
 
private final List<Object> list;
 
public LazyStringArrayList() {
list = new ArrayList<Object>();
}
 
public LazyStringArrayList(List<String> from) {
list = new ArrayList<Object>(from);
}
 
@Override
public String get(int index) {
Object o = list.get(index);
if (o instanceof String) {
return (String) o;
} else {
ByteString bs = (ByteString) o;
String s = bs.toStringUtf8();
if (Internal.isValidUtf8(bs)) {
list.set(index, s);
}
return s;
}
}
 
@Override
public int size() {
return list.size();
}
 
@Override
public String set(int index, String s) {
Object o = list.set(index, s);
return asString(o);
}
 
@Override
public void add(int index, String element) {
list.add(index, element);
modCount++;
}
 
@Override
public boolean addAll(int index, Collection<? extends String> c) {
boolean ret = list.addAll(index, c);
modCount++;
return ret;
}
 
@Override
public String remove(int index) {
Object o = list.remove(index);
modCount++;
return asString(o);
}
 
public void clear() {
list.clear();
modCount++;
}
 
// @Override
public void add(ByteString element) {
list.add(element);
modCount++;
}
 
// @Override
public ByteString getByteString(int index) {
Object o = list.get(index);
if (o instanceof String) {
ByteString b = ByteString.copyFromUtf8((String) o);
list.set(index, b);
return b;
} else {
return (ByteString) o;
}
}
 
private String asString(Object o) {
if (o instanceof String) {
return (String) o;
} else {
return ((ByteString) o).toStringUtf8();
}
}
}
/Android Development/IOIODebuggerServer/src/com/google/protobuf/LazyStringList.java
0,0 → 1,72
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// http://code.google.com/p/protobuf/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
package com.google.protobuf;
 
import java.util.List;
 
/**
* An interface extending List&lt;String&gt; that also provides access to the
* items of the list as UTF8-encoded ByteString objects. This is used by the
* protocol buffer implementation to support lazily converting bytes parsed
* over the wire to String objects until needed and also increases the
* efficiency of serialization if the String was never requested as the
* ByteString is already cached.
* <p>
* This only adds additional methods that are required for the use in the
* protocol buffer code in order to be able successfuly round trip byte arrays
* through parsing and serialization without conversion to strings. It's not
* attempting to support the functionality of say List&ltByteString&gt, hence
* why only these two very specific methods are added.
*
* @author jonp@google.com (Jon Perlow)
*/
public interface LazyStringList extends List<String> {
 
/**
* Returns the element at the specified position in this list as a ByteString.
*
* @param index index of the element to return
* @return the element at the specified position in this list
* @throws IndexOutOfBoundsException if the index is out of range
* (<tt>index &lt; 0 || index &gt;= size()</tt>)
*/
ByteString getByteString(int index);
 
/**
* Appends the specified element to the end of this list (optional
* operation).
*
* @param element element to be appended to this list
* @throws UnsupportedOperationException if the <tt>add</tt> operation
* is not supported by this list
*/
void add(ByteString element);
}
/Android Development/IOIODebuggerServer/src/com/google/protobuf/Message.java
0,0 → 1,215
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// http://code.google.com/p/protobuf/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
// TODO(kenton): Use generics? E.g. Builder<BuilderType extends Builder>, then
// mergeFrom*() could return BuilderType for better type-safety.
 
package com.google.protobuf;
 
import java.io.IOException;
import java.io.InputStream;
import java.util.Map;
 
/**
* Abstract interface implemented by Protocol Message objects.
* <p>
* See also {@link MessageLite}, which defines most of the methods that typical
* users care about. {@link Message} adds to it methods that are not available
* in the "lite" runtime. The biggest added features are introspection and
* reflection -- i.e., getting descriptors for the message type and accessing
* the field values dynamically.
*
* @author kenton@google.com Kenton Varda
*/
public interface Message extends MessageLite, MessageOrBuilder {
 
// -----------------------------------------------------------------
// Comparison and hashing
 
/**
* Compares the specified object with this message for equality. Returns
* <tt>true</tt> if the given object is a message of the same type (as
* defined by {@code getDescriptorForType()}) and has identical values for
* all of its fields. Subclasses must implement this; inheriting
* {@code Object.equals()} is incorrect.
*
* @param other object to be compared for equality with this message
* @return <tt>true</tt> if the specified object is equal to this message
*/
@Override
boolean equals(Object other);
 
/**
* Returns the hash code value for this message. The hash code of a message
* should mix the message's type (object identity of the decsriptor) with its
* contents (known and unknown field values). Subclasses must implement this;
* inheriting {@code Object.hashCode()} is incorrect.
*
* @return the hash code value for this message
* @see Map#hashCode()
*/
@Override
int hashCode();
 
// -----------------------------------------------------------------
// Convenience methods.
 
/**
* Converts the message to a string in protocol buffer text format. This is
* just a trivial wrapper around {@link TextFormat#printToString(Message)}.
*/
@Override
String toString();
 
// =================================================================
// Builders
 
// (From MessageLite, re-declared here only for return type covariance.)
Builder newBuilderForType();
Builder toBuilder();
 
/**
* Abstract interface implemented by Protocol Message builders.
*/
interface Builder extends MessageLite.Builder, MessageOrBuilder {
// (From MessageLite.Builder, re-declared here only for return type
// covariance.)
Builder clear();
 
/**
* Merge {@code other} into the message being built. {@code other} must
* have the exact same type as {@code this} (i.e.
* {@code getDescriptorForType() == other.getDescriptorForType()}).
*
* Merging occurs as follows. For each field:<br>
* * For singular primitive fields, if the field is set in {@code other},
* then {@code other}'s value overwrites the value in this message.<br>
* * For singular message fields, if the field is set in {@code other},
* it is merged into the corresponding sub-message of this message
* using the same merging rules.<br>
* * For repeated fields, the elements in {@code other} are concatenated
* with the elements in this message.
*
* This is equivalent to the {@code Message::MergeFrom} method in C++.
*/
Builder mergeFrom(Message other);
 
// (From MessageLite.Builder, re-declared here only for return type
// covariance.)
Message build();
Message buildPartial();
Builder clone();
Builder mergeFrom(CodedInputStream input) throws IOException;
Builder mergeFrom(CodedInputStream input,
ExtensionRegistryLite extensionRegistry)
throws IOException;
 
/**
* Get the message's type's descriptor.
* See {@link Message#getDescriptorForType()}.
*/
Descriptors.Descriptor getDescriptorForType();
 
/**
* Create a Builder for messages of the appropriate type for the given
* field. Messages built with this can then be passed to setField(),
* setRepeatedField(), or addRepeatedField().
*/
Builder newBuilderForField(Descriptors.FieldDescriptor field);
 
/**
* Sets a field to the given value. The value must be of the correct type
* for this field, i.e. the same type that
* {@link Message#getField(Descriptors.FieldDescriptor)} would return.
*/
Builder setField(Descriptors.FieldDescriptor field, Object value);
 
/**
* Clears the field. This is exactly equivalent to calling the generated
* "clear" accessor method corresponding to the field.
*/
Builder clearField(Descriptors.FieldDescriptor field);
 
/**
* Sets an element of a repeated field to the given value. The value must
* be of the correct type for this field, i.e. the same type that
* {@link Message#getRepeatedField(Descriptors.FieldDescriptor,int)} would
* return.
* @throws IllegalArgumentException The field is not a repeated field, or
* {@code field.getContainingType() != getDescriptorForType()}.
*/
Builder setRepeatedField(Descriptors.FieldDescriptor field,
int index, Object value);
 
/**
* Like {@code setRepeatedField}, but appends the value as a new element.
* @throws IllegalArgumentException The field is not a repeated field, or
* {@code field.getContainingType() != getDescriptorForType()}.
*/
Builder addRepeatedField(Descriptors.FieldDescriptor field, Object value);
 
/** Set the {@link UnknownFieldSet} for this message. */
Builder setUnknownFields(UnknownFieldSet unknownFields);
 
/**
* Merge some unknown fields into the {@link UnknownFieldSet} for this
* message.
*/
Builder mergeUnknownFields(UnknownFieldSet unknownFields);
 
// ---------------------------------------------------------------
// Convenience methods.
 
// (From MessageLite.Builder, re-declared here only for return type
// covariance.)
Builder mergeFrom(ByteString data) throws InvalidProtocolBufferException;
Builder mergeFrom(ByteString data,
ExtensionRegistryLite extensionRegistry)
throws InvalidProtocolBufferException;
Builder mergeFrom(byte[] data) throws InvalidProtocolBufferException;
Builder mergeFrom(byte[] data, int off, int len)
throws InvalidProtocolBufferException;
Builder mergeFrom(byte[] data,
ExtensionRegistryLite extensionRegistry)
throws InvalidProtocolBufferException;
Builder mergeFrom(byte[] data, int off, int len,
ExtensionRegistryLite extensionRegistry)
throws InvalidProtocolBufferException;
Builder mergeFrom(InputStream input) throws IOException;
Builder mergeFrom(InputStream input,
ExtensionRegistryLite extensionRegistry)
throws IOException;
boolean mergeDelimitedFrom(InputStream input)
throws IOException;
boolean mergeDelimitedFrom(InputStream input,
ExtensionRegistryLite extensionRegistry)
throws IOException;
}
}
/Android Development/IOIODebuggerServer/src/com/google/protobuf/MessageLite.java
0,0 → 1,325
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// http://code.google.com/p/protobuf/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
// TODO(kenton): Use generics? E.g. Builder<BuilderType extends Builder>, then
// mergeFrom*() could return BuilderType for better type-safety.
 
package com.google.protobuf;
 
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
 
/**
* Abstract interface implemented by Protocol Message objects.
*
* <p>This interface is implemented by all protocol message objects. Non-lite
* messages additionally implement the Message interface, which is a subclass
* of MessageLite. Use MessageLite instead when you only need the subset of
* features which it supports -- namely, nothing that uses descriptors or
* reflection. You can instruct the protocol compiler to generate classes
* which implement only MessageLite, not the full Message interface, by adding
* the follow line to the .proto file:
* <pre>
* option optimize_for = LITE_RUNTIME;
* </pre>
*
* <p>This is particularly useful on resource-constrained systems where the
* full protocol buffers runtime library is too big.
*
* <p>Note that on non-constrained systems (e.g. servers) when you need to link
* in lots of protocol definitions, a better way to reduce total code footprint
* is to use {@code optimize_for = CODE_SIZE}. This will make the generated
* code smaller while still supporting all the same features (at the expense of
* speed). {@code optimize_for = LITE_RUNTIME} is best when you only have a
* small number of message types linked into your binary, in which case the
* size of the protocol buffers runtime itself is the biggest problem.
*
* @author kenton@google.com Kenton Varda
*/
public interface MessageLite extends MessageLiteOrBuilder {
 
 
/**
* Serializes the message and writes it to {@code output}. This does not
* flush or close the stream.
*/
void writeTo(CodedOutputStream output) throws IOException;
 
/**
* Get the number of bytes required to encode this message. The result
* is only computed on the first call and memoized after that.
*/
int getSerializedSize();
 
// -----------------------------------------------------------------
// Convenience methods.
 
/**
* Serializes the message to a {@code ByteString} and returns it. This is
* just a trivial wrapper around
* {@link #writeTo(CodedOutputStream)}.
*/
ByteString toByteString();
 
/**
* Serializes the message to a {@code byte} array and returns it. This is
* just a trivial wrapper around
* {@link #writeTo(CodedOutputStream)}.
*/
byte[] toByteArray();
 
/**
* Serializes the message and writes it to {@code output}. This is just a
* trivial wrapper around {@link #writeTo(CodedOutputStream)}. This does
* not flush or close the stream.
* <p>
* NOTE: Protocol Buffers are not self-delimiting. Therefore, if you write
* any more data to the stream after the message, you must somehow ensure
* that the parser on the receiving end does not interpret this as being
* part of the protocol message. This can be done e.g. by writing the size
* of the message before the data, then making sure to limit the input to
* that size on the receiving end (e.g. by wrapping the InputStream in one
* which limits the input). Alternatively, just use
* {@link #writeDelimitedTo(OutputStream)}.
*/
void writeTo(OutputStream output) throws IOException;
 
/**
* Like {@link #writeTo(OutputStream)}, but writes the size of the message
* as a varint before writing the data. This allows more data to be written
* to the stream after the message without the need to delimit the message
* data yourself. Use {@link Builder#mergeDelimitedFrom(InputStream)} (or
* the static method {@code YourMessageType.parseDelimitedFrom(InputStream)})
* to parse messages written by this method.
*/
void writeDelimitedTo(OutputStream output) throws IOException;
 
// =================================================================
// Builders
 
/**
* Constructs a new builder for a message of the same type as this message.
*/
Builder newBuilderForType();
 
/**
* Constructs a builder initialized with the current message. Use this to
* derive a new message from the current one.
*/
Builder toBuilder();
 
/**
* Abstract interface implemented by Protocol Message builders.
*/
interface Builder extends MessageLiteOrBuilder, Cloneable {
/** Resets all fields to their default values. */
Builder clear();
 
/**
* Construct the final message. Once this is called, the Builder is no
* longer valid, and calling any other method will result in undefined
* behavior and may throw a NullPointerException. If you need to continue
* working with the builder after calling {@code build()}, {@code clone()}
* it first.
* @throws UninitializedMessageException The message is missing one or more
* required fields (i.e. {@link #isInitialized()} returns false).
* Use {@link #buildPartial()} to bypass this check.
*/
MessageLite build();
 
/**
* Like {@link #build()}, but does not throw an exception if the message
* is missing required fields. Instead, a partial message is returned.
* Once this is called, the Builder is no longer valid, and calling any
* will result in undefined behavior and may throw a NullPointerException.
*
* If you need to continue working with the builder after calling
* {@code buildPartial()}, {@code clone()} it first.
*/
MessageLite buildPartial();
 
/**
* Clones the Builder.
* @see Object#clone()
*/
Builder clone();
 
/**
* Parses a message of this type from the input and merges it with this
* message, as if using {@link Builder#mergeFrom(MessageLite)}.
*
* <p>Warning: This does not verify that all required fields are present in
* the input message. If you call {@link #build()} without setting all
* required fields, it will throw an {@link UninitializedMessageException},
* which is a {@code RuntimeException} and thus might not be caught. There
* are a few good ways to deal with this:
* <ul>
* <li>Call {@link #isInitialized()} to verify that all required fields
* are set before building.
* <li>Parse the message separately using one of the static
* {@code parseFrom} methods, then use {@link #mergeFrom(MessageLite)}
* to merge it with this one. {@code parseFrom} will throw an
* {@link InvalidProtocolBufferException} (an {@code IOException})
* if some required fields are missing.
* <li>Use {@code buildPartial()} to build, which ignores missing
* required fields.
* </ul>
*
* <p>Note: The caller should call
* {@link CodedInputStream#checkLastTagWas(int)} after calling this to
* verify that the last tag seen was the appropriate end-group tag,
* or zero for EOF.
*/
Builder mergeFrom(CodedInputStream input) throws IOException;
 
/**
* Like {@link Builder#mergeFrom(CodedInputStream)}, but also
* parses extensions. The extensions that you want to be able to parse
* must be registered in {@code extensionRegistry}. Extensions not in
* the registry will be treated as unknown fields.
*/
Builder mergeFrom(CodedInputStream input,
ExtensionRegistryLite extensionRegistry)
throws IOException;
 
// ---------------------------------------------------------------
// Convenience methods.
 
/**
* Parse {@code data} as a message of this type and merge it with the
* message being built. This is just a small wrapper around
* {@link #mergeFrom(CodedInputStream)}.
*
* @return this
*/
Builder mergeFrom(ByteString data) throws InvalidProtocolBufferException;
 
/**
* Parse {@code data} as a message of this type and merge it with the
* message being built. This is just a small wrapper around
* {@link #mergeFrom(CodedInputStream,ExtensionRegistry)}.
*
* @return this
*/
Builder mergeFrom(ByteString data,
ExtensionRegistryLite extensionRegistry)
throws InvalidProtocolBufferException;
 
/**
* Parse {@code data} as a message of this type and merge it with the
* message being built. This is just a small wrapper around
* {@link #mergeFrom(CodedInputStream)}.
*
* @return this
*/
Builder mergeFrom(byte[] data) throws InvalidProtocolBufferException;
 
/**
* Parse {@code data} as a message of this type and merge it with the
* message being built. This is just a small wrapper around
* {@link #mergeFrom(CodedInputStream)}.
*
* @return this
*/
Builder mergeFrom(byte[] data, int off, int len)
throws InvalidProtocolBufferException;
 
/**
* Parse {@code data} as a message of this type and merge it with the
* message being built. This is just a small wrapper around
* {@link #mergeFrom(CodedInputStream,ExtensionRegistry)}.
*
* @return this
*/
Builder mergeFrom(byte[] data,
ExtensionRegistryLite extensionRegistry)
throws InvalidProtocolBufferException;
 
/**
* Parse {@code data} as a message of this type and merge it with the
* message being built. This is just a small wrapper around
* {@link #mergeFrom(CodedInputStream,ExtensionRegistry)}.
*
* @return this
*/
Builder mergeFrom(byte[] data, int off, int len,
ExtensionRegistryLite extensionRegistry)
throws InvalidProtocolBufferException;
 
/**
* Parse a message of this type from {@code input} and merge it with the
* message being built. This is just a small wrapper around
* {@link #mergeFrom(CodedInputStream)}. Note that this method always
* reads the <i>entire</i> input (unless it throws an exception). If you
* want it to stop earlier, you will need to wrap your input in some
* wrapper stream that limits reading. Or, use
* {@link MessageLite#writeDelimitedTo(OutputStream)} to write your message
* and {@link #mergeDelimitedFrom(InputStream)} to read it.
* <p>
* Despite usually reading the entire input, this does not close the stream.
*
* @return this
*/
Builder mergeFrom(InputStream input) throws IOException;
 
/**
* Parse a message of this type from {@code input} and merge it with the
* message being built. This is just a small wrapper around
* {@link #mergeFrom(CodedInputStream,ExtensionRegistry)}.
*
* @return this
*/
Builder mergeFrom(InputStream input,
ExtensionRegistryLite extensionRegistry)
throws IOException;
 
/**
* Like {@link #mergeFrom(InputStream)}, but does not read until EOF.
* Instead, the size of the message (encoded as a varint) is read first,
* then the message data. Use
* {@link MessageLite#writeDelimitedTo(OutputStream)} to write messages in
* this format.
*
* @returns True if successful, or false if the stream is at EOF when the
* method starts. Any other error (including reaching EOF during
* parsing) will cause an exception to be thrown.
*/
boolean mergeDelimitedFrom(InputStream input)
throws IOException;
 
/**
* Like {@link #mergeDelimitedFrom(InputStream)} but supporting extensions.
*/
boolean mergeDelimitedFrom(InputStream input,
ExtensionRegistryLite extensionRegistry)
throws IOException;
}
}
/Android Development/IOIODebuggerServer/src/com/google/protobuf/MessageLiteOrBuilder.java
0,0 → 1,58
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// http://code.google.com/p/protobuf/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
package com.google.protobuf;
 
/**
* Base interface for methods common to {@link MessageLite}
* and {@link MessageLite.Builder} to provide type equivalency.
*
* @author jonp@google.com (Jon Perlow)
*/
public interface MessageLiteOrBuilder {
/**
* Get an instance of the type with no fields set. Because no fields are set,
* all getters for singular fields will return default values and repeated
* fields will appear empty.
* This may or may not be a singleton. This differs from the
* {@code getDefaultInstance()} method of generated message classes in that
* this method is an abstract method of the {@code MessageLite} interface
* whereas {@code getDefaultInstance()} is a static method of a specific
* class. They return the same thing.
*/
MessageLite getDefaultInstanceForType();
 
/**
* Returns true if all required fields in the message and all embedded
* messages are set, false otherwise.
*/
boolean isInitialized();
 
}
/Android Development/IOIODebuggerServer/src/com/google/protobuf/MessageOrBuilder.java
0,0 → 1,110
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// http://code.google.com/p/protobuf/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
package com.google.protobuf;
 
import java.util.Map;
 
/**
* Base interface for methods common to {@link Message} and
* {@link Message.Builder} to provide type equivalency.
*
* @author jonp@google.com (Jon Perlow)
*/
public interface MessageOrBuilder extends MessageLiteOrBuilder {
 
// (From MessageLite, re-declared here only for return type covariance.)
//@Override (Java 1.6 override semantics, but we must support 1.5)
Message getDefaultInstanceForType();
 
/**
* Get the message's type's descriptor. This differs from the
* {@code getDescriptor()} method of generated message classes in that
* this method is an abstract method of the {@code Message} interface
* whereas {@code getDescriptor()} is a static method of a specific class.
* They return the same thing.
*/
Descriptors.Descriptor getDescriptorForType();
 
/**
* Returns a collection of all the fields in this message which are set
* and their corresponding values. A singular ("required" or "optional")
* field is set iff hasField() returns true for that field. A "repeated"
* field is set iff getRepeatedFieldSize() is greater than zero. The
* values are exactly what would be returned by calling
* {@link #getField(Descriptors.FieldDescriptor)} for each field. The map
* is guaranteed to be a sorted map, so iterating over it will return fields
* in order by field number.
* <br>
* If this is for a builder, the returned map may or may not reflect future
* changes to the builder. Either way, the returned map is itself
* unmodifiable.
*/
Map<Descriptors.FieldDescriptor, Object> getAllFields();
 
/**
* Returns true if the given field is set. This is exactly equivalent to
* calling the generated "has" accessor method corresponding to the field.
* @throws IllegalArgumentException The field is a repeated field, or
* {@code field.getContainingType() != getDescriptorForType()}.
*/
boolean hasField(Descriptors.FieldDescriptor field);
 
/**
* Obtains the value of the given field, or the default value if it is
* not set. For primitive fields, the boxed primitive value is returned.
* For enum fields, the EnumValueDescriptor for the value is returend. For
* embedded message fields, the sub-message is returned. For repeated
* fields, a java.util.List is returned.
*/
Object getField(Descriptors.FieldDescriptor field);
 
/**
* Gets the number of elements of a repeated field. This is exactly
* equivalent to calling the generated "Count" accessor method corresponding
* to the field.
* @throws IllegalArgumentException The field is not a repeated field, or
* {@code field.getContainingType() != getDescriptorForType()}.
*/
int getRepeatedFieldCount(Descriptors.FieldDescriptor field);
 
/**
* Gets an element of a repeated field. For primitive fields, the boxed
* primitive value is returned. For enum fields, the EnumValueDescriptor
* for the value is returend. For embedded message fields, the sub-message
* is returned.
* @throws IllegalArgumentException The field is not a repeated field, or
* {@code field.getContainingType() != getDescriptorForType()}.
*/
Object getRepeatedField(Descriptors.FieldDescriptor field, int index);
 
/** Get the {@link UnknownFieldSet} for this message. */
UnknownFieldSet getUnknownFields();
}
/Android Development/IOIODebuggerServer/src/com/google/protobuf/ProtocolMessageEnum.java
0,0 → 1,58
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// http://code.google.com/p/protobuf/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
package com.google.protobuf;
 
import com.google.protobuf.Descriptors.EnumDescriptor;
import com.google.protobuf.Descriptors.EnumValueDescriptor;
 
/**
* Interface of useful methods added to all enums generated by the protocol
* compiler.
*/
public interface ProtocolMessageEnum extends Internal.EnumLite {
 
/**
* Return the value's numeric value as defined in the .proto file.
*/
int getNumber();
 
/**
* Return the value's descriptor, which contains information such as
* value name, number, and type.
*/
EnumValueDescriptor getValueDescriptor();
 
/**
* Return the enum type's descriptor, which contains information
* about each defined value, etc.
*/
EnumDescriptor getDescriptorForType();
}
/Android Development/IOIODebuggerServer/src/com/google/protobuf/RepeatedFieldBuilder.java
0,0 → 1,696
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// http://code.google.com/p/protobuf/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
package com.google.protobuf;
 
import java.util.AbstractList;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
 
/**
* <code>RepeatedFieldBuilder</code> implements a structure that a protocol
* message uses to hold a repeated field of other protocol messages. It supports
* the classical use case of adding immutable {@link Message}'s to the
* repeated field and is highly optimized around this (no extra memory
* allocations and sharing of immutable arrays).
* <br>
* It also supports the additional use case of adding a {@link Message.Builder}
* to the repeated field and deferring conversion of that <code>Builder</code>
* to an immutable <code>Message</code>. In this way, it's possible to maintain
* a tree of <code>Builder</code>'s that acts as a fully read/write data
* structure.
* <br>
* Logically, one can think of a tree of builders as converting the entire tree
* to messages when build is called on the root or when any method is called
* that desires a Message instead of a Builder. In terms of the implementation,
* the <code>SingleFieldBuilder</code> and <code>RepeatedFieldBuilder</code>
* classes cache messages that were created so that messages only need to be
* created when some change occured in its builder or a builder for one of its
* descendants.
*
* @param <MType> the type of message for the field
* @param <BType> the type of builder for the field
* @param <IType> the common interface for the message and the builder
*
* @author jonp@google.com (Jon Perlow)
*/
public class RepeatedFieldBuilder
<MType extends GeneratedMessage,
BType extends GeneratedMessage.Builder,
IType extends MessageOrBuilder>
implements GeneratedMessage.BuilderParent {
 
// Parent to send changes to.
private GeneratedMessage.BuilderParent parent;
 
// List of messages. Never null. It may be immutable, in which case
// isMessagesListImmutable will be true. See note below.
private List<MType> messages;
 
// Whether messages is an mutable array that can be modified.
private boolean isMessagesListMutable;
 
// List of builders. May be null, in which case, no nested builders were
// created. If not null, entries represent the builder for that index.
private List<SingleFieldBuilder<MType, BType, IType>> builders;
 
// Here are the invariants for messages and builders:
// 1. messages is never null and its count corresponds to the number of items
// in the repeated field.
// 2. If builders is non-null, messages and builders MUST always
// contain the same number of items.
// 3. Entries in either array can be null, but for any index, there MUST be
// either a Message in messages or a builder in builders.
// 4. If the builder at an index is non-null, the builder is
// authoritative. This is the case where a Builder was set on the index.
// Any message in the messages array MUST be ignored.
// t. If the builder at an index is null, the message in the messages
// list is authoritative. This is the case where a Message (not a Builder)
// was set directly for an index.
 
// Indicates that we've built a message and so we are now obligated
// to dispatch dirty invalidations. See GeneratedMessage.BuilderListener.
private boolean isClean;
 
// A view of this builder that exposes a List interface of messages. This is
// initialized on demand. This is fully backed by this object and all changes
// are reflected in it. Access to any item converts it to a message if it
// was a builder.
private MessageExternalList<MType, BType, IType> externalMessageList;
 
// A view of this builder that exposes a List interface of builders. This is
// initialized on demand. This is fully backed by this object and all changes
// are reflected in it. Access to any item converts it to a builder if it
// was a message.
private BuilderExternalList<MType, BType, IType> externalBuilderList;
 
// A view of this builder that exposes a List interface of the interface
// implemented by messages and builders. This is initialized on demand. This
// is fully backed by this object and all changes are reflected in it.
// Access to any item returns either a builder or message depending on
// what is most efficient.
private MessageOrBuilderExternalList<MType, BType, IType>
externalMessageOrBuilderList;
 
/**
* Constructs a new builder with an empty list of messages.
*
* @param messages the current list of messages
* @param isMessagesListMutable Whether the messages list is mutable
* @param parent a listener to notify of changes
* @param isClean whether the builder is initially marked clean
*/
public RepeatedFieldBuilder(
List<MType> messages,
boolean isMessagesListMutable,
GeneratedMessage.BuilderParent parent,
boolean isClean) {
this.messages = messages;
this.isMessagesListMutable = isMessagesListMutable;
this.parent = parent;
this.isClean = isClean;
}
 
public void dispose() {
// Null out parent so we stop sending it invalidations.
parent = null;
}
 
/**
* Ensures that the list of messages is mutable so it can be updated. If it's
* immutable, a copy is made.
*/
private void ensureMutableMessageList() {
if (!isMessagesListMutable) {
messages = new ArrayList<MType>(messages);
isMessagesListMutable = true;
}
}
 
/**
* Ensures that the list of builders is not null. If it's null, the list is
* created and initialized to be the same size as the messages list with
* null entries.
*/
private void ensureBuilders() {
if (this.builders == null) {
this.builders =
new ArrayList<SingleFieldBuilder<MType, BType, IType>>(
messages.size());
for (int i = 0; i < messages.size(); i++) {
builders.add(null);
}
}
}
 
/**
* Gets the count of items in the list.
*
* @return the count of items in the list.
*/
public int getCount() {
return messages.size();
}
 
/**
* Gets whether the list is empty.
*
* @return whether the list is empty
*/
public boolean isEmpty() {
return messages.isEmpty();
}
 
/**
* Get the message at the specified index. If the message is currently stored
* as a <code>Builder</code>, it is converted to a <code>Message</code> by
* calling {@link Message.Builder#buildPartial} on it.
*
* @param index the index of the message to get
* @return the message for the specified index
*/
public MType getMessage(int index) {
return getMessage(index, false);
}
 
/**
* Get the message at the specified index. If the message is currently stored
* as a <code>Builder</code>, it is converted to a <code>Message</code> by
* calling {@link Message.Builder#buildPartial} on it.
*
* @param index the index of the message to get
* @param forBuild this is being called for build so we want to make sure
* we SingleFieldBuilder.build to send dirty invalidations
* @return the message for the specified index
*/
private MType getMessage(int index, boolean forBuild) {
if (this.builders == null) {
// We don't have any builders -- return the current Message.
// This is the case where no builder was created, so we MUST have a
// Message.
return messages.get(index);
}
 
SingleFieldBuilder<MType, BType, IType> builder = builders.get(index);
if (builder == null) {
// We don't have a builder -- return the current message.
// This is the case where no builder was created for the entry at index,
// so we MUST have a message.
return messages.get(index);
 
} else {
return forBuild ? builder.build() : builder.getMessage();
}
}
 
/**
* Gets a builder for the specified index. If no builder has been created for
* that index, a builder is created on demand by calling
* {@link Message#toBuilder}.
*
* @param index the index of the message to get
* @return The builder for that index
*/
public BType getBuilder(int index) {
ensureBuilders();
SingleFieldBuilder<MType, BType, IType> builder = builders.get(index);
if (builder == null) {
MType message = messages.get(index);
builder = new SingleFieldBuilder<MType, BType, IType>(
message, this, isClean);
builders.set(index, builder);
}
return builder.getBuilder();
}
 
/**
* Gets the base class interface for the specified index. This may either be
* a builder or a message. It will return whatever is more efficient.
*
* @param index the index of the message to get
* @return the message or builder for the index as the base class interface
*/
@SuppressWarnings("unchecked")
public IType getMessageOrBuilder(int index) {
if (this.builders == null) {
// We don't have any builders -- return the current Message.
// This is the case where no builder was created, so we MUST have a
// Message.
return (IType) messages.get(index);
}
 
SingleFieldBuilder<MType, BType, IType> builder = builders.get(index);
if (builder == null) {
// We don't have a builder -- return the current message.
// This is the case where no builder was created for the entry at index,
// so we MUST have a message.
return (IType) messages.get(index);
 
} else {
return builder.getMessageOrBuilder();
}
}
 
/**
* Sets a message at the specified index replacing the existing item at
* that index.
*
* @param index the index to set.
* @param message the message to set
* @return the builder
*/
public RepeatedFieldBuilder<MType, BType, IType> setMessage(
int index, MType message) {
if (message == null) {
throw new NullPointerException();
}
ensureMutableMessageList();
messages.set(index, message);
if (builders != null) {
SingleFieldBuilder<MType, BType, IType> entry =
builders.set(index, null);
if (entry != null) {
entry.dispose();
}
}
onChanged();
incrementModCounts();
return this;
}
 
/**
* Appends the specified element to the end of this list.
*
* @param message the message to add
* @return the builder
*/
public RepeatedFieldBuilder<MType, BType, IType> addMessage(
MType message) {
if (message == null) {
throw new NullPointerException();
}
ensureMutableMessageList();
messages.add(message);
if (builders != null) {
builders.add(null);
}
onChanged();
incrementModCounts();
return this;
}
 
/**
* Inserts the specified message at the specified position in this list.
* Shifts the element currently at that position (if any) and any subsequent
* elements to the right (adds one to their indices).
*
* @param index the index at which to insert the message
* @param message the message to add
* @return the builder
*/
public RepeatedFieldBuilder<MType, BType, IType> addMessage(
int index, MType message) {
if (message == null) {
throw new NullPointerException();
}
ensureMutableMessageList();
messages.add(index, message);
if (builders != null) {
builders.add(index, null);
}
onChanged();
incrementModCounts();
return this;
}
 
/**
* Appends all of the messages in the specified collection to the end of
* this list, in the order that they are returned by the specified
* collection's iterator.
*
* @param values the messages to add
* @return the builder
*/
public RepeatedFieldBuilder<MType, BType, IType> addAllMessages(
Iterable<? extends MType> values) {
for (final MType value : values) {
if (value == null) {
throw new NullPointerException();
}
}
if (values instanceof Collection) {
@SuppressWarnings("unchecked") final
Collection<MType> collection = (Collection<MType>) values;
if (collection.size() == 0) {
return this;
}
ensureMutableMessageList();
for (MType value : values) {
addMessage(value);
}
} else {
ensureMutableMessageList();
for (MType value : values) {
addMessage(value);
}
}
onChanged();
incrementModCounts();
return this;
}
 
/**
* Appends a new builder to the end of this list and returns the builder.
*
* @param message the message to add which is the basis of the builder
* @return the new builder
*/
public BType addBuilder(MType message) {
ensureMutableMessageList();
ensureBuilders();
SingleFieldBuilder<MType, BType, IType> builder =
new SingleFieldBuilder<MType, BType, IType>(
message, this, isClean);
messages.add(null);
builders.add(builder);
onChanged();
incrementModCounts();
return builder.getBuilder();
}
 
/**
* Inserts a new builder at the specified position in this list.
* Shifts the element currently at that position (if any) and any subsequent
* elements to the right (adds one to their indices).
*
* @param index the index at which to insert the builder
* @param message the message to add which is the basis of the builder
* @return the builder
*/
public BType addBuilder(int index, MType message) {
ensureMutableMessageList();
ensureBuilders();
SingleFieldBuilder<MType, BType, IType> builder =
new SingleFieldBuilder<MType, BType, IType>(
message, this, isClean);
messages.add(index, null);
builders.add(index, builder);
onChanged();
incrementModCounts();
return builder.getBuilder();
}
 
/**
* Removes the element at the specified position in this list. Shifts any
* subsequent elements to the left (subtracts one from their indices).
* Returns the element that was removed from the list.
*
* @param index the index at which to remove the message
*/
public void remove(int index) {
ensureMutableMessageList();
messages.remove(index);
if (builders != null) {
SingleFieldBuilder<MType, BType, IType> entry =
builders.remove(index);
if (entry != null) {
entry.dispose();
}
}
onChanged();
incrementModCounts();
}
 
/**
* Removes all of the elements from this list.
* The list will be empty after this call returns.
*/
public void clear() {
messages = Collections.emptyList();
isMessagesListMutable = false;
if (builders != null) {
for (SingleFieldBuilder<MType, BType, IType> entry :
builders) {
if (entry != null) {
entry.dispose();
}
}
builders = null;
}
onChanged();
incrementModCounts();
}
 
/**
* Builds the list of messages from the builder and returns them.
*
* @return an immutable list of messages
*/
public List<MType> build() {
// Now that build has been called, we are required to dispatch
// invalidations.
isClean = true;
 
if (!isMessagesListMutable && builders == null) {
// We still have an immutable list and we never created a builder.
return messages;
}
 
boolean allMessagesInSync = true;
if (!isMessagesListMutable) {
// We still have an immutable list. Let's see if any of them are out
// of sync with their builders.
for (int i = 0; i < messages.size(); i++) {
Message message = messages.get(i);
SingleFieldBuilder<MType, BType, IType> builder = builders.get(i);
if (builder != null) {
if (builder.build() != message) {
allMessagesInSync = false;
break;
}
}
}
if (allMessagesInSync) {
// Immutable list is still in sync.
return messages;
}
}
 
// Need to make sure messages is up to date
ensureMutableMessageList();
for (int i = 0; i < messages.size(); i++) {
messages.set(i, getMessage(i, true));
}
 
// We're going to return our list as immutable so we mark that we can
// no longer update it.
messages = Collections.unmodifiableList(messages);
isMessagesListMutable = false;
return messages;
}
 
/**
* Gets a view of the builder as a list of messages. The returned list is live
* and will reflect any changes to the underlying builder.
*
* @return the messages in the list
*/
public List<MType> getMessageList() {
if (externalMessageList == null) {
externalMessageList =
new MessageExternalList<MType, BType, IType>(this);
}
return externalMessageList;
}
 
/**
* Gets a view of the builder as a list of builders. This returned list is
* live and will reflect any changes to the underlying builder.
*
* @return the builders in the list
*/
public List<BType> getBuilderList() {
if (externalBuilderList == null) {
externalBuilderList =
new BuilderExternalList<MType, BType, IType>(this);
}
return externalBuilderList;
}
 
/**
* Gets a view of the builder as a list of MessageOrBuilders. This returned
* list is live and will reflect any changes to the underlying builder.
*
* @return the builders in the list
*/
public List<IType> getMessageOrBuilderList() {
if (externalMessageOrBuilderList == null) {
externalMessageOrBuilderList =
new MessageOrBuilderExternalList<MType, BType, IType>(this);
}
return externalMessageOrBuilderList;
}
 
/**
* Called when a the builder or one of its nested children has changed
* and any parent should be notified of its invalidation.
*/
private void onChanged() {
if (isClean && parent != null) {
parent.markDirty();
 
// Don't keep dispatching invalidations until build is called again.
isClean = false;
}
}
 
//@Override (Java 1.6 override semantics, but we must support 1.5)
public void markDirty() {
onChanged();
}
 
/**
* Increments the mod counts so that an ConcurrentModificationException can
* be thrown if calling code tries to modify the builder while its iterating
* the list.
*/
private void incrementModCounts() {
if (externalMessageList != null) {
externalMessageList.incrementModCount();
}
if (externalBuilderList != null) {
externalBuilderList.incrementModCount();
}
if (externalMessageOrBuilderList != null) {
externalMessageOrBuilderList.incrementModCount();
}
}
 
/**
* Provides a live view of the builder as a list of messages.
*
* @param <MType> the type of message for the field
* @param <BType> the type of builder for the field
* @param <IType> the common interface for the message and the builder
*/
private static class MessageExternalList<
MType extends GeneratedMessage,
BType extends GeneratedMessage.Builder,
IType extends MessageOrBuilder>
extends AbstractList<MType> implements List<MType> {
 
RepeatedFieldBuilder<MType, BType, IType> builder;
 
MessageExternalList(
RepeatedFieldBuilder<MType, BType, IType> builder) {
this.builder = builder;
}
 
public int size() {
return this.builder.getCount();
}
 
public MType get(int index) {
return builder.getMessage(index);
}
 
void incrementModCount() {
modCount++;
}
}
 
/**
* Provides a live view of the builder as a list of builders.
*
* @param <MType> the type of message for the field
* @param <BType> the type of builder for the field
* @param <IType> the common interface for the message and the builder
*/
private static class BuilderExternalList<
MType extends GeneratedMessage,
BType extends GeneratedMessage.Builder,
IType extends MessageOrBuilder>
extends AbstractList<BType> implements List<BType> {
 
RepeatedFieldBuilder<MType, BType, IType> builder;
 
BuilderExternalList(
RepeatedFieldBuilder<MType, BType, IType> builder) {
this.builder = builder;
}
 
public int size() {
return this.builder.getCount();
}
 
public BType get(int index) {
return builder.getBuilder(index);
}
 
void incrementModCount() {
modCount++;
}
}
 
/**
* Provides a live view of the builder as a list of builders.
*
* @param <MType> the type of message for the field
* @param <BType> the type of builder for the field
* @param <IType> the common interface for the message and the builder
*/
private static class MessageOrBuilderExternalList<
MType extends GeneratedMessage,
BType extends GeneratedMessage.Builder,
IType extends MessageOrBuilder>
extends AbstractList<IType> implements List<IType> {
 
RepeatedFieldBuilder<MType, BType, IType> builder;
 
MessageOrBuilderExternalList(
RepeatedFieldBuilder<MType, BType, IType> builder) {
this.builder = builder;
}
 
public int size() {
return this.builder.getCount();
}
 
public IType get(int index) {
return builder.getMessageOrBuilder(index);
}
 
void incrementModCount() {
modCount++;
}
}
}
/Android Development/IOIODebuggerServer/src/com/google/protobuf/RpcCallback.java
0,0 → 1,47
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// http://code.google.com/p/protobuf/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
package com.google.protobuf;
 
/**
* Interface for an RPC callback, normally called when an RPC completes.
* {@code ParameterType} is normally the method's response message type.
*
* <p>Starting with version 2.3.0, RPC implementations should not try to build
* on this, but should instead provide code generator plugins which generate
* code specific to the particular RPC implementation. This way the generated
* code can be more appropriate for the implementation in use and can avoid
* unnecessary layers of indirection.
*
* @author kenton@google.com Kenton Varda
*/
public interface RpcCallback<ParameterType> {
void run(ParameterType parameter);
}
/Android Development/IOIODebuggerServer/src/com/google/protobuf/RpcChannel.java
0,0 → 1,71
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// http://code.google.com/p/protobuf/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
package com.google.protobuf;
 
/**
* <p>Abstract interface for an RPC channel. An {@code RpcChannel} represents a
* communication line to a {@link Service} which can be used to call that
* {@link Service}'s methods. The {@link Service} may be running on another
* machine. Normally, you should not call an {@code RpcChannel} directly, but
* instead construct a stub {@link Service} wrapping it. Example:
*
* <pre>
* RpcChannel channel = rpcImpl.newChannel("remotehost.example.com:1234");
* RpcController controller = rpcImpl.newController();
* MyService service = MyService.newStub(channel);
* service.myMethod(controller, request, callback);
* </pre>
*
* <p>Starting with version 2.3.0, RPC implementations should not try to build
* on this, but should instead provide code generator plugins which generate
* code specific to the particular RPC implementation. This way the generated
* code can be more appropriate for the implementation in use and can avoid
* unnecessary layers of indirection.
*
* @author kenton@google.com Kenton Varda
*/
public interface RpcChannel {
/**
* Call the given method of the remote service. This method is similar to
* {@code Service.callMethod()} with one important difference: the caller
* decides the types of the {@code Message} objects, not the callee. The
* request may be of any type as long as
* {@code request.getDescriptor() == method.getInputType()}.
* The response passed to the callback will be of the same type as
* {@code responsePrototype} (which must have
* {@code getDescriptor() == method.getOutputType()}).
*/
void callMethod(Descriptors.MethodDescriptor method,
RpcController controller,
Message request,
Message responsePrototype,
RpcCallback<Message> done);
}
/Android Development/IOIODebuggerServer/src/com/google/protobuf/RpcController.java
0,0 → 1,118
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// http://code.google.com/p/protobuf/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
package com.google.protobuf;
 
/**
* <p>An {@code RpcController} mediates a single method call. The primary
* purpose of the controller is to provide a way to manipulate settings
* specific to the RPC implementation and to find out about RPC-level errors.
*
* <p>Starting with version 2.3.0, RPC implementations should not try to build
* on this, but should instead provide code generator plugins which generate
* code specific to the particular RPC implementation. This way the generated
* code can be more appropriate for the implementation in use and can avoid
* unnecessary layers of indirection.
*
* <p>The methods provided by the {@code RpcController} interface are intended
* to be a "least common denominator" set of features which we expect all
* implementations to support. Specific implementations may provide more
* advanced features (e.g. deadline propagation).
*
* @author kenton@google.com Kenton Varda
*/
public interface RpcController {
// -----------------------------------------------------------------
// These calls may be made from the client side only. Their results
// are undefined on the server side (may throw RuntimeExceptions).
 
/**
* Resets the RpcController to its initial state so that it may be reused in
* a new call. This can be called from the client side only. It must not
* be called while an RPC is in progress.
*/
void reset();
 
/**
* After a call has finished, returns true if the call failed. The possible
* reasons for failure depend on the RPC implementation. {@code failed()}
* most only be called on the client side, and must not be called before a
* call has finished.
*/
boolean failed();
 
/**
* If {@code failed()} is {@code true}, returns a human-readable description
* of the error.
*/
String errorText();
 
/**
* Advises the RPC system that the caller desires that the RPC call be
* canceled. The RPC system may cancel it immediately, may wait awhile and
* then cancel it, or may not even cancel the call at all. If the call is
* canceled, the "done" callback will still be called and the RpcController
* will indicate that the call failed at that time.
*/
void startCancel();
 
// -----------------------------------------------------------------
// These calls may be made from the server side only. Their results
// are undefined on the client side (may throw RuntimeExceptions).
 
/**
* Causes {@code failed()} to return true on the client side. {@code reason}
* will be incorporated into the message returned by {@code errorText()}.
* If you find you need to return machine-readable information about
* failures, you should incorporate it into your response protocol buffer
* and should NOT call {@code setFailed()}.
*/
void setFailed(String reason);
 
/**
* If {@code true}, indicates that the client canceled the RPC, so the server
* may as well give up on replying to it. This method must be called on the
* server side only. The server should still call the final "done" callback.
*/
boolean isCanceled();
 
/**
* Asks that the given callback be called when the RPC is canceled. The
* parameter passed to the callback will always be {@code null}. The
* callback will always be called exactly once. If the RPC completes without
* being canceled, the callback will be called after completion. If the RPC
* has already been canceled when NotifyOnCancel() is called, the callback
* will be called immediately.
*
* <p>{@code notifyOnCancel()} must be called no more than once per request.
* It must be called on the server side only.
*/
void notifyOnCancel(RpcCallback<Object> callback);
}
/Android Development/IOIODebuggerServer/src/com/google/protobuf/RpcUtil.java
0,0 → 1,135
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// http://code.google.com/p/protobuf/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
package com.google.protobuf;
 
/**
* Grab-bag of utility functions useful when dealing with RPCs.
*
* @author kenton@google.com Kenton Varda
*/
public final class RpcUtil {
private RpcUtil() {}
 
/**
* Take an {@code RpcCallback<Message>} and convert it to an
* {@code RpcCallback} accepting a specific message type. This is always
* type-safe (parameter type contravariance).
*/
@SuppressWarnings("unchecked")
public static <Type extends Message> RpcCallback<Type>
specializeCallback(final RpcCallback<Message> originalCallback) {
return (RpcCallback<Type>)originalCallback;
// The above cast works, but only due to technical details of the Java
// implementation. A more theoretically correct -- but less efficient --
// implementation would be as follows:
// return new RpcCallback<Type>() {
// public void run(Type parameter) {
// originalCallback.run(parameter);
// }
// };
}
 
/**
* Take an {@code RpcCallback} accepting a specific message type and convert
* it to an {@code RpcCallback<Message>}. The generalized callback will
* accept any message object which has the same descriptor, and will convert
* it to the correct class before calling the original callback. However,
* if the generalized callback is given a message with a different descriptor,
* an exception will be thrown.
*/
public static <Type extends Message>
RpcCallback<Message> generalizeCallback(
final RpcCallback<Type> originalCallback,
final Class<Type> originalClass,
final Type defaultInstance) {
return new RpcCallback<Message>() {
public void run(final Message parameter) {
Type typedParameter;
try {
typedParameter = originalClass.cast(parameter);
} catch (ClassCastException ignored) {
typedParameter = copyAsType(defaultInstance, parameter);
}
originalCallback.run(typedParameter);
}
};
}
 
/**
* Creates a new message of type "Type" which is a copy of "source". "source"
* must have the same descriptor but may be a different class (e.g.
* DynamicMessage).
*/
@SuppressWarnings("unchecked")
private static <Type extends Message> Type copyAsType(
final Type typeDefaultInstance, final Message source) {
return (Type)typeDefaultInstance.newBuilderForType()
.mergeFrom(source)
.build();
}
 
/**
* Creates a callback which can only be called once. This may be useful for
* security, when passing a callback to untrusted code: most callbacks do
* not expect to be called more than once, so doing so may expose bugs if it
* is not prevented.
*/
public static <ParameterType>
RpcCallback<ParameterType> newOneTimeCallback(
final RpcCallback<ParameterType> originalCallback) {
return new RpcCallback<ParameterType>() {
private boolean alreadyCalled = false;
 
public void run(final ParameterType parameter) {
synchronized(this) {
if (alreadyCalled) {
throw new AlreadyCalledException();
}
alreadyCalled = true;
}
 
originalCallback.run(parameter);
}
};
}
 
/**
* Exception thrown when a one-time callback is called more than once.
*/
public static final class AlreadyCalledException extends RuntimeException {
private static final long serialVersionUID = 5469741279507848266L;
 
public AlreadyCalledException() {
super("This RpcCallback was already called and cannot be called " +
"multiple times.");
}
}
}
/Android Development/IOIODebuggerServer/src/com/google/protobuf/Service.java
0,0 → 1,117
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// http://code.google.com/p/protobuf/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
package com.google.protobuf;
 
/**
* Abstract base interface for protocol-buffer-based RPC services. Services
* themselves are abstract classes (implemented either by servers or as
* stubs), but they subclass this base interface. The methods of this
* interface can be used to call the methods of the service without knowing
* its exact type at compile time (analogous to the Message interface).
*
* <p>Starting with version 2.3.0, RPC implementations should not try to build
* on this, but should instead provide code generator plugins which generate
* code specific to the particular RPC implementation. This way the generated
* code can be more appropriate for the implementation in use and can avoid
* unnecessary layers of indirection.
*
* @author kenton@google.com Kenton Varda
*/
public interface Service {
/**
* Get the {@code ServiceDescriptor} describing this service and its methods.
*/
Descriptors.ServiceDescriptor getDescriptorForType();
 
/**
* <p>Call a method of the service specified by MethodDescriptor. This is
* normally implemented as a simple {@code switch()} that calls the standard
* definitions of the service's methods.
*
* <p>Preconditions:
* <ul>
* <li>{@code method.getService() == getDescriptorForType()}
* <li>{@code request} is of the exact same class as the object returned by
* {@code getRequestPrototype(method)}.
* <li>{@code controller} is of the correct type for the RPC implementation
* being used by this Service. For stubs, the "correct type" depends
* on the RpcChannel which the stub is using. Server-side Service
* implementations are expected to accept whatever type of
* {@code RpcController} the server-side RPC implementation uses.
* </ul>
*
* <p>Postconditions:
* <ul>
* <li>{@code done} will be called when the method is complete. This may be
* before {@code callMethod()} returns or it may be at some point in
* the future.
* <li>The parameter to {@code done} is the response. It must be of the
* exact same type as would be returned by
* {@code getResponsePrototype(method)}.
* <li>If the RPC failed, the parameter to {@code done} will be
* {@code null}. Further details about the failure can be found by
* querying {@code controller}.
* </ul>
*/
void callMethod(Descriptors.MethodDescriptor method,
RpcController controller,
Message request,
RpcCallback<Message> done);
 
/**
* <p>{@code callMethod()} requires that the request passed in is of a
* particular subclass of {@code Message}. {@code getRequestPrototype()}
* gets the default instances of this type for a given method. You can then
* call {@code Message.newBuilderForType()} on this instance to
* construct a builder to build an object which you can then pass to
* {@code callMethod()}.
*
* <p>Example:
* <pre>
* MethodDescriptor method =
* service.getDescriptorForType().findMethodByName("Foo");
* Message request =
* stub.getRequestPrototype(method).newBuilderForType()
* .mergeFrom(input).build();
* service.callMethod(method, request, callback);
* </pre>
*/
Message getRequestPrototype(Descriptors.MethodDescriptor method);
 
/**
* Like {@code getRequestPrototype()}, but gets a prototype of the response
* message. {@code getResponsePrototype()} is generally not needed because
* the {@code Service} implementation constructs the response message itself,
* but it may be useful in some cases to know ahead of time what type of
* object will be returned.
*/
Message getResponsePrototype(Descriptors.MethodDescriptor method);
}
/Android Development/IOIODebuggerServer/src/com/google/protobuf/ServiceException.java
0,0 → 1,52
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// http://code.google.com/p/protobuf/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
package com.google.protobuf;
 
/**
* Thrown by blocking RPC methods when a failure occurs.
*
* @author cpovirk@google.com (Chris Povirk)
*/
public class ServiceException extends Exception {
private static final long serialVersionUID = -1219262335729891920L;
 
public ServiceException(final String message) {
super(message);
}
 
public ServiceException(final Throwable cause) {
super(cause);
}
 
public ServiceException(final String message, final Throwable cause) {
super(message, cause);
}
}
/Android Development/IOIODebuggerServer/src/com/google/protobuf/SingleFieldBuilder.java
0,0 → 1,241
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// http://code.google.com/p/protobuf/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
package com.google.protobuf;
 
/**
* <code>SingleFieldBuilder</code> implements a structure that a protocol
* message uses to hold a single field of another protocol message. It supports
* the classical use case of setting an immutable {@link Message} as the value
* of the field and is highly optimized around this.
* <br>
* It also supports the additional use case of setting a {@link Message.Builder}
* as the field and deferring conversion of that <code>Builder</code>
* to an immutable <code>Message</code>. In this way, it's possible to maintain
* a tree of <code>Builder</code>'s that acts as a fully read/write data
* structure.
* <br>
* Logically, one can think of a tree of builders as converting the entire tree
* to messages when build is called on the root or when any method is called
* that desires a Message instead of a Builder. In terms of the implementation,
* the <code>SingleFieldBuilder</code> and <code>RepeatedFieldBuilder</code>
* classes cache messages that were created so that messages only need to be
* created when some change occured in its builder or a builder for one of its
* descendants.
*
* @param <MType> the type of message for the field
* @param <BType> the type of builder for the field
* @param <IType> the common interface for the message and the builder
*
* @author jonp@google.com (Jon Perlow)
*/
public class SingleFieldBuilder
<MType extends GeneratedMessage,
BType extends GeneratedMessage.Builder,
IType extends MessageOrBuilder>
implements GeneratedMessage.BuilderParent {
 
// Parent to send changes to.
private GeneratedMessage.BuilderParent parent;
 
// Invariant: one of builder or message fields must be non-null.
 
// If set, this is the case where we are backed by a builder. In this case,
// message field represents a cached message for the builder (or null if
// there is no cached message).
private BType builder;
 
// If builder is non-null, this represents a cached message from the builder.
// If builder is null, this is the authoritative message for the field.
private MType message;
 
// Indicates that we've built a message and so we are now obligated
// to dispatch dirty invalidations. See GeneratedMessage.BuilderListener.
private boolean isClean;
 
public SingleFieldBuilder(
MType message,
GeneratedMessage.BuilderParent parent,
boolean isClean) {
if (message == null) {
throw new NullPointerException();
}
this.message = message;
this.parent = parent;
this.isClean = isClean;
}
 
public void dispose() {
// Null out parent so we stop sending it invalidations.
parent = null;
}
 
/**
* Get the message for the field. If the message is currently stored
* as a <code>Builder</code>, it is converted to a <code>Message</code> by
* calling {@link Message.Builder#buildPartial} on it. If no message has
* been set, returns the default instance of the message.
*
* @return the message for the field
*/
@SuppressWarnings("unchecked")
public MType getMessage() {
if (message == null) {
// If message is null, the invariant is that we must be have a builder.
message = (MType) builder.buildPartial();
}
return message;
}
 
/**
* Builds the message and returns it.
*
* @return the message
*/
public MType build() {
// Now that build has been called, we are required to dispatch
// invalidations.
isClean = true;
return getMessage();
}
 
/**
* Gets a builder for the field. If no builder has been created yet, a
* builder is created on demand by calling {@link Message#toBuilder}.
*
* @return The builder for the field
*/
@SuppressWarnings("unchecked")
public BType getBuilder() {
if (builder == null) {
// builder.mergeFrom() on a fresh builder
// does not create any sub-objects with independent clean/dirty states,
// therefore setting the builder itself to clean without actually calling
// build() cannot break any invariants.
builder = (BType) message.newBuilderForType(this);
builder.mergeFrom(message); // no-op if message is the default message
builder.markClean();
}
return builder;
}
 
/**
* Gets the base class interface for the field. This may either be a builder
* or a message. It will return whatever is more efficient.
*
* @return the message or builder for the field as the base class interface
*/
@SuppressWarnings("unchecked")
public IType getMessageOrBuilder() {
if (builder != null) {
return (IType) builder;
} else {
return (IType) message;
}
}
 
/**
* Sets a message for the field replacing any existing value.
*
* @param message the message to set
* @return the builder
*/
public SingleFieldBuilder<MType, BType, IType> setMessage(
MType message) {
if (message == null) {
throw new NullPointerException();
}
this.message = message;
if (builder != null) {
builder.dispose();
builder = null;
}
onChanged();
return this;
}
 
/**
* Merges the field from another field.
*
* @param value the value to merge from
* @return the builder
*/
public SingleFieldBuilder<MType, BType, IType> mergeFrom(
MType value) {
if (builder == null && message == message.getDefaultInstanceForType()) {
message = value;
} else {
getBuilder().mergeFrom(value);
}
onChanged();
return this;
}
 
/**
* Clears the value of the field.
*
* @return the builder
*/
@SuppressWarnings("unchecked")
public SingleFieldBuilder<MType, BType, IType> clear() {
message = (MType) (message != null ?
message.getDefaultInstanceForType() :
builder.getDefaultInstanceForType());
if (builder != null) {
builder.dispose();
builder = null;
}
onChanged();
return this;
}
 
/**
* Called when a the builder or one of its nested children has changed
* and any parent should be notified of its invalidation.
*/
private void onChanged() {
// If builder is null, this is the case where onChanged is being called
// from setMessage or clear.
if (builder != null) {
message = null;
}
if (isClean && parent != null) {
parent.markDirty();
 
// Don't keep dispatching invalidations until build is called again.
isClean = false;
}
}
 
//@Override (Java 1.6 override semantics, but we must support 1.5)
public void markDirty() {
onChanged();
}
}
/Android Development/IOIODebuggerServer/src/com/google/protobuf/SmallSortedMap.java
0,0 → 1,618
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// http://code.google.com/p/protobuf/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
package com.google.protobuf;
 
import java.util.AbstractMap;
import java.util.AbstractSet;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.TreeMap;
import java.util.List;
import java.util.Map;
import java.util.NoSuchElementException;
import java.util.Set;
import java.util.SortedMap;
 
/**
* A custom map implementation from FieldDescriptor to Object optimized to
* minimize the number of memory allocations for instances with a small number
* of mappings. The implementation stores the first {@code k} mappings in an
* array for a configurable value of {@code k}, allowing direct access to the
* corresponding {@code Entry}s without the need to create an Iterator. The
* remaining entries are stored in an overflow map. Iteration over the entries
* in the map should be done as follows:
*
* <pre>
* for (int i = 0; i &lt; fieldMap.getNumArrayEntries(); i++) {
* process(fieldMap.getArrayEntryAt(i));
* }
* for (Map.Entry&lt;K, V&gt; entry : fieldMap.getOverflowEntries()) {
* process(entry);
* }
* </pre>
*
* The resulting iteration is in order of ascending field tag number. The
* object returned by {@link #entrySet()} adheres to the same contract but is
* less efficient as it necessarily involves creating an object for iteration.
* <p>
* The tradeoff for this memory efficiency is that the worst case running time
* of the {@code put()} operation is {@code O(k + lg n)}, which happens when
* entries are added in descending order. {@code k} should be chosen such that
* it covers enough common cases without adversely affecting larger maps. In
* practice, the worst case scenario does not happen for extensions because
* extension fields are serialized and deserialized in order of ascending tag
* number, but the worst case scenario can happen for DynamicMessages.
* <p>
* The running time for all other operations is similar to that of
* {@code TreeMap}.
* <p>
* Instances are not thread-safe until {@link #makeImmutable()} is called,
* after which any modifying operation will result in an
* {@link UnsupportedOperationException}.
*
* @author darick@google.com Darick Tong
*/
// This class is final for all intents and purposes because the constructor is
// private. However, the FieldDescriptor-specific logic is encapsulated in
// a subclass to aid testability of the core logic.
class SmallSortedMap<K extends Comparable<K>, V> extends AbstractMap<K, V> {
 
/**
* Creates a new instance for mapping FieldDescriptors to their values.
* The {@link #makeImmutable()} implementation will convert the List values
* of any repeated fields to unmodifiable lists.
*
* @param arraySize The size of the entry array containing the
* lexicographically smallest mappings.
*/
static <FieldDescriptorType extends
FieldSet.FieldDescriptorLite<FieldDescriptorType>>
SmallSortedMap<FieldDescriptorType, Object> newFieldMap(int arraySize) {
return new SmallSortedMap<FieldDescriptorType, Object>(arraySize) {
@Override
@SuppressWarnings("unchecked")
public void makeImmutable() {
if (!isImmutable()) {
for (int i = 0; i < getNumArrayEntries(); i++) {
final Map.Entry<FieldDescriptorType, Object> entry =
getArrayEntryAt(i);
if (entry.getKey().isRepeated()) {
final List value = (List) entry.getValue();
entry.setValue(Collections.unmodifiableList(value));
}
}
for (Map.Entry<FieldDescriptorType, Object> entry :
getOverflowEntries()) {
if (entry.getKey().isRepeated()) {
final List value = (List) entry.getValue();
entry.setValue(Collections.unmodifiableList(value));
}
}
}
super.makeImmutable();
}
};
}
 
/**
* Creates a new instance for testing.
*
* @param arraySize The size of the entry array containing the
* lexicographically smallest mappings.
*/
static <K extends Comparable<K>, V> SmallSortedMap<K, V> newInstanceForTest(
int arraySize) {
return new SmallSortedMap<K, V>(arraySize);
}
 
private final int maxArraySize;
// The "entry array" is actually a List because generic arrays are not
// allowed. ArrayList also nicely handles the entry shifting on inserts and
// removes.
private List<Entry> entryList;
private Map<K, V> overflowEntries;
private boolean isImmutable;
// The EntrySet is a stateless view of the Map. It's initialized the first
// time it is requested and reused henceforth.
private volatile EntrySet lazyEntrySet;
 
/**
* @code arraySize Size of the array in which the lexicographically smallest
* mappings are stored. (i.e. the {@code k} referred to in the class
* documentation).
*/
private SmallSortedMap(int arraySize) {
this.maxArraySize = arraySize;
this.entryList = Collections.emptyList();
this.overflowEntries = Collections.emptyMap();
}
 
/** Make this map immutable from this point forward. */
public void makeImmutable() {
if (!isImmutable) {
// Note: There's no need to wrap the entryList in an unmodifiableList
// because none of the list's accessors are exposed. The iterator() of
// overflowEntries, on the other hand, is exposed so it must be made
// unmodifiable.
overflowEntries = overflowEntries.isEmpty() ?
Collections.<K, V>emptyMap() :
Collections.unmodifiableMap(overflowEntries);
isImmutable = true;
}
}
 
/** @return Whether {@link #makeImmutable()} has been called. */
public boolean isImmutable() {
return isImmutable;
}
 
/** @return The number of entries in the entry array. */
public int getNumArrayEntries() {
return entryList.size();
}
 
/** @return The array entry at the given {@code index}. */
public Map.Entry<K, V> getArrayEntryAt(int index) {
return entryList.get(index);
}
 
/** @return There number of overflow entries. */
public int getNumOverflowEntries() {
return overflowEntries.size();
}
 
/** @return An iterable over the overflow entries. */
public Iterable<Map.Entry<K, V>> getOverflowEntries() {
return overflowEntries.isEmpty() ?
EmptySet.<Map.Entry<K, V>>iterable() :
overflowEntries.entrySet();
}
 
@Override
public int size() {
return entryList.size() + overflowEntries.size();
}
 
/**
* The implementation throws a {@code ClassCastException} if o is not an
* object of type {@code K}.
*
* {@inheritDoc}
*/
@Override
public boolean containsKey(Object o) {
@SuppressWarnings("unchecked")
final K key = (K) o;
return binarySearchInArray(key) >= 0 || overflowEntries.containsKey(key);
}
 
/**
* The implementation throws a {@code ClassCastException} if o is not an
* object of type {@code K}.
*
* {@inheritDoc}
*/
@Override
public V get(Object o) {
@SuppressWarnings("unchecked")
final K key = (K) o;
final int index = binarySearchInArray(key);
if (index >= 0) {
return entryList.get(index).getValue();
}
return overflowEntries.get(key);
}
 
@Override
public V put(K key, V value) {
checkMutable();
final int index = binarySearchInArray(key);
if (index >= 0) {
// Replace existing array entry.
return entryList.get(index).setValue(value);
}
ensureEntryArrayMutable();
final int insertionPoint = -(index + 1);
if (insertionPoint >= maxArraySize) {
// Put directly in overflow.
return getOverflowEntriesMutable().put(key, value);
}
// Insert new Entry in array.
if (entryList.size() == maxArraySize) {
// Shift the last array entry into overflow.
final Entry lastEntryInArray = entryList.remove(maxArraySize - 1);
getOverflowEntriesMutable().put(lastEntryInArray.getKey(),
lastEntryInArray.getValue());
}
entryList.add(insertionPoint, new Entry(key, value));
return null;
}
 
@Override
public void clear() {
checkMutable();
if (!entryList.isEmpty()) {
entryList.clear();
}
if (!overflowEntries.isEmpty()) {
overflowEntries.clear();
}
}
 
/**
* The implementation throws a {@code ClassCastException} if o is not an
* object of type {@code K}.
*
* {@inheritDoc}
*/
@Override
public V remove(Object o) {
checkMutable();
@SuppressWarnings("unchecked")
final K key = (K) o;
final int index = binarySearchInArray(key);
if (index >= 0) {
return removeArrayEntryAt(index);
}
// overflowEntries might be Collections.unmodifiableMap(), so only
// call remove() if it is non-empty.
if (overflowEntries.isEmpty()) {
return null;
} else {
return overflowEntries.remove(key);
}
}
 
private V removeArrayEntryAt(int index) {
checkMutable();
final V removed = entryList.remove(index).getValue();
if (!overflowEntries.isEmpty()) {
// Shift the first entry in the overflow to be the last entry in the
// array.
final Iterator<Map.Entry<K, V>> iterator =
getOverflowEntriesMutable().entrySet().iterator();
entryList.add(new Entry(iterator.next()));
iterator.remove();
}
return removed;
}
 
/**
* @param key The key to find in the entry array.
* @return The returned integer position follows the same semantics as the
* value returned by {@link java.util.Arrays#binarySearch()}.
*/
private int binarySearchInArray(K key) {
int left = 0;
int right = entryList.size() - 1;
 
// Optimization: For the common case in which entries are added in
// ascending tag order, check the largest element in the array before
// doing a full binary search.
if (right >= 0) {
int cmp = key.compareTo(entryList.get(right).getKey());
if (cmp > 0) {
return -(right + 2); // Insert point is after "right".
} else if (cmp == 0) {
return right;
}
}
 
while (left <= right) {
int mid = (left + right) / 2;
int cmp = key.compareTo(entryList.get(mid).getKey());
if (cmp < 0) {
right = mid - 1;
} else if (cmp > 0) {
left = mid + 1;
} else {
return mid;
}
}
return -(left + 1);
}
 
/**
* Similar to the AbstractMap implementation of {@code keySet()} and
* {@code values()}, the entry set is created the first time this method is
* called, and returned in response to all subsequent calls.
*
* {@inheritDoc}
*/
@Override
public Set<Map.Entry<K, V>> entrySet() {
if (lazyEntrySet == null) {
lazyEntrySet = new EntrySet();
}
return lazyEntrySet;
}
 
/**
* @throws UnsupportedOperationException if {@link #makeImmutable()} has
* has been called.
*/
private void checkMutable() {
if (isImmutable) {
throw new UnsupportedOperationException();
}
}
 
/**
* @return a {@link SortedMap} to which overflow entries mappings can be
* added or removed.
* @throws UnsupportedOperationException if {@link #makeImmutable()} has been
* called.
*/
@SuppressWarnings("unchecked")
private SortedMap<K, V> getOverflowEntriesMutable() {
checkMutable();
if (overflowEntries.isEmpty() && !(overflowEntries instanceof TreeMap)) {
overflowEntries = new TreeMap<K, V>();
}
return (SortedMap<K, V>) overflowEntries;
}
 
/**
* Lazily creates the entry list. Any code that adds to the list must first
* call this method.
*/
private void ensureEntryArrayMutable() {
checkMutable();
if (entryList.isEmpty() && !(entryList instanceof ArrayList)) {
entryList = new ArrayList<Entry>(maxArraySize);
}
}
 
/**
* Entry implementation that implements Comparable in order to support
* binary search witin the entry array. Also checks mutability in
* {@link #setValue()}.
*/
private class Entry implements Map.Entry<K, V>, Comparable<Entry> {
 
private final K key;
private V value;
 
Entry(Map.Entry<K, V> copy) {
this(copy.getKey(), copy.getValue());
}
 
Entry(K key, V value) {
this.key = key;
this.value = value;
}
 
//@Override (Java 1.6 override semantics, but we must support 1.5)
public K getKey() {
return key;
}
 
//@Override (Java 1.6 override semantics, but we must support 1.5)
public V getValue() {
return value;
}
 
//@Override (Java 1.6 override semantics, but we must support 1.5)
public int compareTo(Entry other) {
return getKey().compareTo(other.getKey());
}
 
//@Override (Java 1.6 override semantics, but we must support 1.5)
public V setValue(V newValue) {
checkMutable();
final V oldValue = this.value;
this.value = newValue;
return oldValue;
}
 
@Override
public boolean equals(Object o) {
if (o == this) {
return true;
}
if (!(o instanceof Map.Entry)) {
return false;
}
@SuppressWarnings("unchecked")
Map.Entry<?, ?> other = (Map.Entry<?, ?>) o;
return equals(key, other.getKey()) && equals(value, other.getValue());
}
 
@Override
public int hashCode() {
return (key == null ? 0 : key.hashCode()) ^
(value == null ? 0 : value.hashCode());
}
 
@Override
public String toString() {
return key + "=" + value;
}
 
/** equals() that handles null values. */
private boolean equals(Object o1, Object o2) {
return o1 == null ? o2 == null : o1.equals(o2);
}
}
 
/**
* Stateless view of the entries in the field map.
*/
private class EntrySet extends AbstractSet<Map.Entry<K, V>> {
 
@Override
public Iterator<Map.Entry<K, V>> iterator() {
return new EntryIterator();
}
 
@Override
public int size() {
return SmallSortedMap.this.size();
}
 
/**
* Throws a {@link ClassCastException} if o is not of the expected type.
*
* {@inheritDoc}
*/
@Override
public boolean contains(Object o) {
@SuppressWarnings("unchecked")
final Map.Entry<K, V> entry = (Map.Entry<K, V>) o;
final V existing = get(entry.getKey());
final V value = entry.getValue();
return existing == value ||
(existing != null && existing.equals(value));
}
 
@Override
public boolean add(Map.Entry<K, V> entry) {
if (!contains(entry)) {
put(entry.getKey(), entry.getValue());
return true;
}
return false;
}
 
/**
* Throws a {@link ClassCastException} if o is not of the expected type.
*
* {@inheritDoc}
*/
@Override
public boolean remove(Object o) {
@SuppressWarnings("unchecked")
final Map.Entry<K, V> entry = (Map.Entry<K, V>) o;
if (contains(entry)) {
SmallSortedMap.this.remove(entry.getKey());
return true;
}
return false;
}
 
@Override
public void clear() {
SmallSortedMap.this.clear();
}
}
 
/**
* Iterator implementation that switches from the entry array to the overflow
* entries appropriately.
*/
private class EntryIterator implements Iterator<Map.Entry<K, V>> {
 
private int pos = -1;
private boolean nextCalledBeforeRemove;
private Iterator<Map.Entry<K, V>> lazyOverflowIterator;
 
//@Override (Java 1.6 override semantics, but we must support 1.5)
public boolean hasNext() {
return (pos + 1) < entryList.size() ||
getOverflowIterator().hasNext();
}
 
//@Override (Java 1.6 override semantics, but we must support 1.5)
public Map.Entry<K, V> next() {
nextCalledBeforeRemove = true;
// Always increment pos so that we know whether the last returned value
// was from the array or from overflow.
if (++pos < entryList.size()) {
return entryList.get(pos);
}
return getOverflowIterator().next();
}
 
//@Override (Java 1.6 override semantics, but we must support 1.5)
public void remove() {
if (!nextCalledBeforeRemove) {
throw new IllegalStateException("remove() was called before next()");
}
nextCalledBeforeRemove = false;
checkMutable();
 
if (pos < entryList.size()) {
removeArrayEntryAt(pos--);
} else {
getOverflowIterator().remove();
}
}
 
/**
* It is important to create the overflow iterator only after the array
* entries have been iterated over because the overflow entry set changes
* when the client calls remove() on the array entries, which invalidates
* any existing iterators.
*/
private Iterator<Map.Entry<K, V>> getOverflowIterator() {
if (lazyOverflowIterator == null) {
lazyOverflowIterator = overflowEntries.entrySet().iterator();
}
return lazyOverflowIterator;
}
}
 
/**
* Helper class that holds immutable instances of an Iterable/Iterator that
* we return when the overflow entries is empty. This eliminates the creation
* of an Iterator object when there is nothing to iterate over.
*/
private static class EmptySet {
 
private static final Iterator<Object> ITERATOR = new Iterator<Object>() {
//@Override (Java 1.6 override semantics, but we must support 1.5)
public boolean hasNext() {
return false;
}
//@Override (Java 1.6 override semantics, but we must support 1.5)
public Object next() {
throw new NoSuchElementException();
}
//@Override (Java 1.6 override semantics, but we must support 1.5)
public void remove() {
throw new UnsupportedOperationException();
}
};
 
private static final Iterable<Object> ITERABLE = new Iterable<Object>() {
//@Override (Java 1.6 override semantics, but we must support 1.5)
public Iterator<Object> iterator() {
return ITERATOR;
}
};
 
@SuppressWarnings("unchecked")
static <T> Iterable<T> iterable() {
return (Iterable<T>) ITERABLE;
}
}
}
/Android Development/IOIODebuggerServer/src/com/google/protobuf/TextFormat.java
0,0 → 1,1476
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// http://code.google.com/p/protobuf/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
package com.google.protobuf;
 
import com.google.protobuf.Descriptors.Descriptor;
import com.google.protobuf.Descriptors.FieldDescriptor;
import com.google.protobuf.Descriptors.EnumDescriptor;
import com.google.protobuf.Descriptors.EnumValueDescriptor;
 
import java.io.IOException;
import java.nio.CharBuffer;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
 
/**
* Provide text parsing and formatting support for proto2 instances.
* The implementation largely follows google/protobuf/text_format.cc.
*
* @author wenboz@google.com Wenbo Zhu
* @author kenton@google.com Kenton Varda
*/
public final class TextFormat {
private TextFormat() {}
 
private static final Printer DEFAULT_PRINTER = new Printer(false);
private static final Printer SINGLE_LINE_PRINTER = new Printer(true);
 
/**
* Outputs a textual representation of the Protocol Message supplied into
* the parameter output. (This representation is the new version of the
* classic "ProtocolPrinter" output from the original Protocol Buffer system)
*/
public static void print(final Message message, final Appendable output)
throws IOException {
DEFAULT_PRINTER.print(message, new TextGenerator(output));
}
 
/** Outputs a textual representation of {@code fields} to {@code output}. */
public static void print(final UnknownFieldSet fields,
final Appendable output)
throws IOException {
DEFAULT_PRINTER.printUnknownFields(fields, new TextGenerator(output));
}
 
/**
* Generates a human readable form of this message, useful for debugging and
* other purposes, with no newline characters.
*/
public static String shortDebugString(final Message message) {
try {
final StringBuilder sb = new StringBuilder();
SINGLE_LINE_PRINTER.print(message, new TextGenerator(sb));
// Single line mode currently might have an extra space at the end.
return sb.toString().trim();
} catch (IOException e) {
throw new IllegalStateException(e);
}
}
 
/**
* Generates a human readable form of the unknown fields, useful for debugging
* and other purposes, with no newline characters.
*/
public static String shortDebugString(final UnknownFieldSet fields) {
try {
final StringBuilder sb = new StringBuilder();
SINGLE_LINE_PRINTER.printUnknownFields(fields, new TextGenerator(sb));
// Single line mode currently might have an extra space at the end.
return sb.toString().trim();
} catch (IOException e) {
throw new IllegalStateException(e);
}
}
 
/**
* Like {@code print()}, but writes directly to a {@code String} and
* returns it.
*/
public static String printToString(final Message message) {
try {
final StringBuilder text = new StringBuilder();
print(message, text);
return text.toString();
} catch (IOException e) {
throw new IllegalStateException(e);
}
}
 
/**
* Like {@code print()}, but writes directly to a {@code String} and
* returns it.
*/
public static String printToString(final UnknownFieldSet fields) {
try {
final StringBuilder text = new StringBuilder();
print(fields, text);
return text.toString();
} catch (IOException e) {
throw new IllegalStateException(e);
}
}
 
public static void printField(final FieldDescriptor field,
final Object value,
final Appendable output)
throws IOException {
DEFAULT_PRINTER.printField(field, value, new TextGenerator(output));
}
 
public static String printFieldToString(final FieldDescriptor field,
final Object value) {
try {
final StringBuilder text = new StringBuilder();
printField(field, value, text);
return text.toString();
} catch (IOException e) {
throw new IllegalStateException(e);
}
}
 
/**
* Outputs a textual representation of the value of given field value.
*
* @param field the descriptor of the field
* @param value the value of the field
* @param output the output to which to append the formatted value
* @throws ClassCastException if the value is not appropriate for the
* given field descriptor
* @throws IOException if there is an exception writing to the output
*/
public static void printFieldValue(final FieldDescriptor field,
final Object value,
final Appendable output)
throws IOException {
DEFAULT_PRINTER.printFieldValue(field, value, new TextGenerator(output));
}
 
/**
* Outputs a textual representation of the value of an unknown field.
*
* @param tag the field's tag number
* @param value the value of the field
* @param output the output to which to append the formatted value
* @throws ClassCastException if the value is not appropriate for the
* given field descriptor
* @throws IOException if there is an exception writing to the output
*/
public static void printUnknownFieldValue(final int tag,
final Object value,
final Appendable output)
throws IOException {
printUnknownFieldValue(tag, value, new TextGenerator(output));
}
 
private static void printUnknownFieldValue(final int tag,
final Object value,
final TextGenerator generator)
throws IOException {
switch (WireFormat.getTagWireType(tag)) {
case WireFormat.WIRETYPE_VARINT:
generator.print(unsignedToString((Long) value));
break;
case WireFormat.WIRETYPE_FIXED32:
generator.print(
String.format((Locale) null, "0x%08x", (Integer) value));
break;
case WireFormat.WIRETYPE_FIXED64:
generator.print(String.format((Locale) null, "0x%016x", (Long) value));
break;
case WireFormat.WIRETYPE_LENGTH_DELIMITED:
generator.print("\"");
generator.print(escapeBytes((ByteString) value));
generator.print("\"");
break;
case WireFormat.WIRETYPE_START_GROUP:
DEFAULT_PRINTER.printUnknownFields((UnknownFieldSet) value, generator);
break;
default:
throw new IllegalArgumentException("Bad tag: " + tag);
}
}
 
/** Helper class for converting protobufs to text. */
private static final class Printer {
/** Whether to omit newlines from the output. */
final boolean singleLineMode;
 
private Printer(final boolean singleLineMode) {
this.singleLineMode = singleLineMode;
}
 
private void print(final Message message, final TextGenerator generator)
throws IOException {
for (Map.Entry<FieldDescriptor, Object> field
: message.getAllFields().entrySet()) {
printField(field.getKey(), field.getValue(), generator);
}
printUnknownFields(message.getUnknownFields(), generator);
}
 
private void printField(final FieldDescriptor field, final Object value,
final TextGenerator generator) throws IOException {
if (field.isRepeated()) {
// Repeated field. Print each element.
for (Object element : (List<?>) value) {
printSingleField(field, element, generator);
}
} else {
printSingleField(field, value, generator);
}
}
 
private void printSingleField(final FieldDescriptor field,
final Object value,
final TextGenerator generator)
throws IOException {
if (field.isExtension()) {
generator.print("[");
// We special-case MessageSet elements for compatibility with proto1.
if (field.getContainingType().getOptions().getMessageSetWireFormat()
&& (field.getType() == FieldDescriptor.Type.MESSAGE)
&& (field.isOptional())
// object equality
&& (field.getExtensionScope() == field.getMessageType())) {
generator.print(field.getMessageType().getFullName());
} else {
generator.print(field.getFullName());
}
generator.print("]");
} else {
if (field.getType() == FieldDescriptor.Type.GROUP) {
// Groups must be serialized with their original capitalization.
generator.print(field.getMessageType().getName());
} else {
generator.print(field.getName());
}
}
 
if (field.getJavaType() == FieldDescriptor.JavaType.MESSAGE) {
if (singleLineMode) {
generator.print(" { ");
} else {
generator.print(" {\n");
generator.indent();
}
} else {
generator.print(": ");
}
 
printFieldValue(field, value, generator);
 
if (field.getJavaType() == FieldDescriptor.JavaType.MESSAGE) {
if (singleLineMode) {
generator.print("} ");
} else {
generator.outdent();
generator.print("}\n");
}
} else {
if (singleLineMode) {
generator.print(" ");
} else {
generator.print("\n");
}
}
}
 
private void printFieldValue(final FieldDescriptor field,
final Object value,
final TextGenerator generator)
throws IOException {
switch (field.getType()) {
case INT32:
case SINT32:
case SFIXED32:
generator.print(((Integer) value).toString());
break;
 
case INT64:
case SINT64:
case SFIXED64:
generator.print(((Long) value).toString());
break;
 
case BOOL:
generator.print(((Boolean) value).toString());
break;
 
case FLOAT:
generator.print(((Float) value).toString());
break;
 
case DOUBLE:
generator.print(((Double) value).toString());
break;
 
case UINT32:
case FIXED32:
generator.print(unsignedToString((Integer) value));
break;
 
case UINT64:
case FIXED64:
generator.print(unsignedToString((Long) value));
break;
 
case STRING:
generator.print("\"");
generator.print(escapeText((String) value));
generator.print("\"");
break;
 
case BYTES:
generator.print("\"");
generator.print(escapeBytes((ByteString) value));
generator.print("\"");
break;
 
case ENUM:
generator.print(((EnumValueDescriptor) value).getName());
break;
 
case MESSAGE:
case GROUP:
print((Message) value, generator);
break;
}
}
 
private void printUnknownFields(final UnknownFieldSet unknownFields,
final TextGenerator generator)
throws IOException {
for (Map.Entry<Integer, UnknownFieldSet.Field> entry :
unknownFields.asMap().entrySet()) {
final int number = entry.getKey();
final UnknownFieldSet.Field field = entry.getValue();
printUnknownField(number, WireFormat.WIRETYPE_VARINT,
field.getVarintList(), generator);
printUnknownField(number, WireFormat.WIRETYPE_FIXED32,
field.getFixed32List(), generator);
printUnknownField(number, WireFormat.WIRETYPE_FIXED64,
field.getFixed64List(), generator);
printUnknownField(number, WireFormat.WIRETYPE_LENGTH_DELIMITED,
field.getLengthDelimitedList(), generator);
for (final UnknownFieldSet value : field.getGroupList()) {
generator.print(entry.getKey().toString());
if (singleLineMode) {
generator.print(" { ");
} else {
generator.print(" {\n");
generator.indent();
}
printUnknownFields(value, generator);
if (singleLineMode) {
generator.print("} ");
} else {
generator.outdent();
generator.print("}\n");
}
}
}
}
 
private void printUnknownField(final int number,
final int wireType,
final List<?> values,
final TextGenerator generator)
throws IOException {
for (final Object value : values) {
generator.print(String.valueOf(number));
generator.print(": ");
printUnknownFieldValue(wireType, value, generator);
generator.print(singleLineMode ? " " : "\n");
}
}
}
 
/** Convert an unsigned 32-bit integer to a string. */
private static String unsignedToString(final int value) {
if (value >= 0) {
return Integer.toString(value);
} else {
return Long.toString(((long) value) & 0x00000000FFFFFFFFL);
}
}
 
/** Convert an unsigned 64-bit integer to a string. */
private static String unsignedToString(final long value) {
if (value >= 0) {
return Long.toString(value);
} else {
// Pull off the most-significant bit so that BigInteger doesn't think
// the number is negative, then set it again using setBit().
return BigInteger.valueOf(value & 0x7FFFFFFFFFFFFFFFL)
.setBit(63).toString();
}
}
 
/**
* An inner class for writing text to the output stream.
*/
private static final class TextGenerator {
private final Appendable output;
private final StringBuilder indent = new StringBuilder();
private boolean atStartOfLine = true;
 
private TextGenerator(final Appendable output) {
this.output = output;
}
 
/**
* Indent text by two spaces. After calling Indent(), two spaces will be
* inserted at the beginning of each line of text. Indent() may be called
* multiple times to produce deeper indents.
*/
public void indent() {
indent.append(" ");
}
 
/**
* Reduces the current indent level by two spaces, or crashes if the indent
* level is zero.
*/
public void outdent() {
final int length = indent.length();
if (length == 0) {
throw new IllegalArgumentException(
" Outdent() without matching Indent().");
}
indent.delete(length - 2, length);
}
 
/**
* Print text to the output stream.
*/
public void print(final CharSequence text) throws IOException {
final int size = text.length();
int pos = 0;
 
for (int i = 0; i < size; i++) {
if (text.charAt(i) == '\n') {
write(text.subSequence(pos, size), i - pos + 1);
pos = i + 1;
atStartOfLine = true;
}
}
write(text.subSequence(pos, size), size - pos);
}
 
private void write(final CharSequence data, final int size)
throws IOException {
if (size == 0) {
return;
}
if (atStartOfLine) {
atStartOfLine = false;
output.append(indent);
}
output.append(data);
}
}
 
// =================================================================
// Parsing
 
/**
* Represents a stream of tokens parsed from a {@code String}.
*
* <p>The Java standard library provides many classes that you might think
* would be useful for implementing this, but aren't. For example:
*
* <ul>
* <li>{@code java.io.StreamTokenizer}: This almost does what we want -- or,
* at least, something that would get us close to what we want -- except
* for one fatal flaw: It automatically un-escapes strings using Java
* escape sequences, which do not include all the escape sequences we
* need to support (e.g. '\x').
* <li>{@code java.util.Scanner}: This seems like a great way at least to
* parse regular expressions out of a stream (so we wouldn't have to load
* the entire input into a single string before parsing). Sadly,
* {@code Scanner} requires that tokens be delimited with some delimiter.
* Thus, although the text "foo:" should parse to two tokens ("foo" and
* ":"), {@code Scanner} would recognize it only as a single token.
* Furthermore, {@code Scanner} provides no way to inspect the contents
* of delimiters, making it impossible to keep track of line and column
* numbers.
* </ul>
*
* <p>Luckily, Java's regular expression support does manage to be useful to
* us. (Barely: We need {@code Matcher.usePattern()}, which is new in
* Java 1.5.) So, we can use that, at least. Unfortunately, this implies
* that we need to have the entire input in one contiguous string.
*/
private static final class Tokenizer {
private final CharSequence text;
private final Matcher matcher;
private String currentToken;
 
// The character index within this.text at which the current token begins.
private int pos = 0;
 
// The line and column numbers of the current token.
private int line = 0;
private int column = 0;
 
// The line and column numbers of the previous token (allows throwing
// errors *after* consuming).
private int previousLine = 0;
private int previousColumn = 0;
 
// We use possesive quantifiers (*+ and ++) because otherwise the Java
// regex matcher has stack overflows on large inputs.
private static final Pattern WHITESPACE =
Pattern.compile("(\\s|(#.*$))++", Pattern.MULTILINE);
private static final Pattern TOKEN = Pattern.compile(
"[a-zA-Z_][0-9a-zA-Z_+-]*+|" + // an identifier
"[.]?[0-9+-][0-9a-zA-Z_.+-]*+|" + // a number
"\"([^\"\n\\\\]|\\\\.)*+(\"|\\\\?$)|" + // a double-quoted string
"\'([^\'\n\\\\]|\\\\.)*+(\'|\\\\?$)", // a single-quoted string
Pattern.MULTILINE);
 
private static final Pattern DOUBLE_INFINITY = Pattern.compile(
"-?inf(inity)?",
Pattern.CASE_INSENSITIVE);
private static final Pattern FLOAT_INFINITY = Pattern.compile(
"-?inf(inity)?f?",
Pattern.CASE_INSENSITIVE);
private static final Pattern FLOAT_NAN = Pattern.compile(
"nanf?",
Pattern.CASE_INSENSITIVE);
 
/** Construct a tokenizer that parses tokens from the given text. */
private Tokenizer(final CharSequence text) {
this.text = text;
this.matcher = WHITESPACE.matcher(text);
skipWhitespace();
nextToken();
}
 
/** Are we at the end of the input? */
public boolean atEnd() {
return currentToken.length() == 0;
}
 
/** Advance to the next token. */
public void nextToken() {
previousLine = line;
previousColumn = column;
 
// Advance the line counter to the current position.
while (pos < matcher.regionStart()) {
if (text.charAt(pos) == '\n') {
++line;
column = 0;
} else {
++column;
}
++pos;
}
 
// Match the next token.
if (matcher.regionStart() == matcher.regionEnd()) {
// EOF
currentToken = "";
} else {
matcher.usePattern(TOKEN);
if (matcher.lookingAt()) {
currentToken = matcher.group();
matcher.region(matcher.end(), matcher.regionEnd());
} else {
// Take one character.
currentToken = String.valueOf(text.charAt(pos));
matcher.region(pos + 1, matcher.regionEnd());
}
 
skipWhitespace();
}
}
 
/**
* Skip over any whitespace so that the matcher region starts at the next
* token.
*/
private void skipWhitespace() {
matcher.usePattern(WHITESPACE);
if (matcher.lookingAt()) {
matcher.region(matcher.end(), matcher.regionEnd());
}
}
 
/**
* If the next token exactly matches {@code token}, consume it and return
* {@code true}. Otherwise, return {@code false} without doing anything.
*/
public boolean tryConsume(final String token) {
if (currentToken.equals(token)) {
nextToken();
return true;
} else {
return false;
}
}
 
/**
* If the next token exactly matches {@code token}, consume it. Otherwise,
* throw a {@link ParseException}.
*/
public void consume(final String token) throws ParseException {
if (!tryConsume(token)) {
throw parseException("Expected \"" + token + "\".");
}
}
 
/**
* Returns {@code true} if the next token is an integer, but does
* not consume it.
*/
public boolean lookingAtInteger() {
if (currentToken.length() == 0) {
return false;
}
 
final char c = currentToken.charAt(0);
return ('0' <= c && c <= '9') ||
c == '-' || c == '+';
}
 
/**
* If the next token is an identifier, consume it and return its value.
* Otherwise, throw a {@link ParseException}.
*/
public String consumeIdentifier() throws ParseException {
for (int i = 0; i < currentToken.length(); i++) {
final char c = currentToken.charAt(i);
if (('a' <= c && c <= 'z') ||
('A' <= c && c <= 'Z') ||
('0' <= c && c <= '9') ||
(c == '_') || (c == '.')) {
// OK
} else {
throw parseException("Expected identifier.");
}
}
 
final String result = currentToken;
nextToken();
return result;
}
 
/**
* If the next token is a 32-bit signed integer, consume it and return its
* value. Otherwise, throw a {@link ParseException}.
*/
public int consumeInt32() throws ParseException {
try {
final int result = parseInt32(currentToken);
nextToken();
return result;
} catch (NumberFormatException e) {
throw integerParseException(e);
}
}
 
/**
* If the next token is a 32-bit unsigned integer, consume it and return its
* value. Otherwise, throw a {@link ParseException}.
*/
public int consumeUInt32() throws ParseException {
try {
final int result = parseUInt32(currentToken);
nextToken();
return result;
} catch (NumberFormatException e) {
throw integerParseException(e);
}
}
 
/**
* If the next token is a 64-bit signed integer, consume it and return its
* value. Otherwise, throw a {@link ParseException}.
*/
public long consumeInt64() throws ParseException {
try {
final long result = parseInt64(currentToken);
nextToken();
return result;
} catch (NumberFormatException e) {
throw integerParseException(e);
}
}
 
/**
* If the next token is a 64-bit unsigned integer, consume it and return its
* value. Otherwise, throw a {@link ParseException}.
*/
public long consumeUInt64() throws ParseException {
try {
final long result = parseUInt64(currentToken);
nextToken();
return result;
} catch (NumberFormatException e) {
throw integerParseException(e);
}
}
 
/**
* If the next token is a double, consume it and return its value.
* Otherwise, throw a {@link ParseException}.
*/
public double consumeDouble() throws ParseException {
// We need to parse infinity and nan separately because
// Double.parseDouble() does not accept "inf", "infinity", or "nan".
if (DOUBLE_INFINITY.matcher(currentToken).matches()) {
final boolean negative = currentToken.startsWith("-");
nextToken();
return negative ? Double.NEGATIVE_INFINITY : Double.POSITIVE_INFINITY;
}
if (currentToken.equalsIgnoreCase("nan")) {
nextToken();
return Double.NaN;
}
try {
final double result = Double.parseDouble(currentToken);
nextToken();
return result;
} catch (NumberFormatException e) {
throw floatParseException(e);
}
}
 
/**
* If the next token is a float, consume it and return its value.
* Otherwise, throw a {@link ParseException}.
*/
public float consumeFloat() throws ParseException {
// We need to parse infinity and nan separately because
// Float.parseFloat() does not accept "inf", "infinity", or "nan".
if (FLOAT_INFINITY.matcher(currentToken).matches()) {
final boolean negative = currentToken.startsWith("-");
nextToken();
return negative ? Float.NEGATIVE_INFINITY : Float.POSITIVE_INFINITY;
}
if (FLOAT_NAN.matcher(currentToken).matches()) {
nextToken();
return Float.NaN;
}
try {
final float result = Float.parseFloat(currentToken);
nextToken();
return result;
} catch (NumberFormatException e) {
throw floatParseException(e);
}
}
 
/**
* If the next token is a boolean, consume it and return its value.
* Otherwise, throw a {@link ParseException}.
*/
public boolean consumeBoolean() throws ParseException {
if (currentToken.equals("true") ||
currentToken.equals("t") ||
currentToken.equals("1")) {
nextToken();
return true;
} else if (currentToken.equals("false") ||
currentToken.equals("f") ||
currentToken.equals("0")) {
nextToken();
return false;
} else {
throw parseException("Expected \"true\" or \"false\".");
}
}
 
/**
* If the next token is a string, consume it and return its (unescaped)
* value. Otherwise, throw a {@link ParseException}.
*/
public String consumeString() throws ParseException {
return consumeByteString().toStringUtf8();
}
 
/**
* If the next token is a string, consume it, unescape it as a
* {@link ByteString}, and return it. Otherwise, throw a
* {@link ParseException}.
*/
public ByteString consumeByteString() throws ParseException {
List<ByteString> list = new ArrayList<ByteString>();
consumeByteString(list);
while (currentToken.startsWith("'") || currentToken.startsWith("\"")) {
consumeByteString(list);
}
return ByteString.copyFrom(list);
}
 
/**
* Like {@link #consumeByteString()} but adds each token of the string to
* the given list. String literals (whether bytes or text) may come in
* multiple adjacent tokens which are automatically concatenated, like in
* C or Python.
*/
private void consumeByteString(List<ByteString> list) throws ParseException {
final char quote = currentToken.length() > 0 ? currentToken.charAt(0)
: '\0';
if (quote != '\"' && quote != '\'') {
throw parseException("Expected string.");
}
 
if (currentToken.length() < 2 ||
currentToken.charAt(currentToken.length() - 1) != quote) {
throw parseException("String missing ending quote.");
}
 
try {
final String escaped =
currentToken.substring(1, currentToken.length() - 1);
final ByteString result = unescapeBytes(escaped);
nextToken();
list.add(result);
} catch (InvalidEscapeSequenceException e) {
throw parseException(e.getMessage());
}
}
 
/**
* Returns a {@link ParseException} with the current line and column
* numbers in the description, suitable for throwing.
*/
public ParseException parseException(final String description) {
// Note: People generally prefer one-based line and column numbers.
return new ParseException(
(line + 1) + ":" + (column + 1) + ": " + description);
}
 
/**
* Returns a {@link ParseException} with the line and column numbers of
* the previous token in the description, suitable for throwing.
*/
public ParseException parseExceptionPreviousToken(
final String description) {
// Note: People generally prefer one-based line and column numbers.
return new ParseException(
(previousLine + 1) + ":" + (previousColumn + 1) + ": " + description);
}
 
/**
* Constructs an appropriate {@link ParseException} for the given
* {@code NumberFormatException} when trying to parse an integer.
*/
private ParseException integerParseException(
final NumberFormatException e) {
return parseException("Couldn't parse integer: " + e.getMessage());
}
 
/**
* Constructs an appropriate {@link ParseException} for the given
* {@code NumberFormatException} when trying to parse a float or double.
*/
private ParseException floatParseException(final NumberFormatException e) {
return parseException("Couldn't parse number: " + e.getMessage());
}
}
 
/** Thrown when parsing an invalid text format message. */
public static class ParseException extends IOException {
private static final long serialVersionUID = 3196188060225107702L;
 
public ParseException(final String message) {
super(message);
}
}
 
/**
* Parse a text-format message from {@code input} and merge the contents
* into {@code builder}.
*/
public static void merge(final Readable input,
final Message.Builder builder)
throws IOException {
merge(input, ExtensionRegistry.getEmptyRegistry(), builder);
}
 
/**
* Parse a text-format message from {@code input} and merge the contents
* into {@code builder}.
*/
public static void merge(final CharSequence input,
final Message.Builder builder)
throws ParseException {
merge(input, ExtensionRegistry.getEmptyRegistry(), builder);
}
 
/**
* Parse a text-format message from {@code input} and merge the contents
* into {@code builder}. Extensions will be recognized if they are
* registered in {@code extensionRegistry}.
*/
public static void merge(final Readable input,
final ExtensionRegistry extensionRegistry,
final Message.Builder builder)
throws IOException {
// Read the entire input to a String then parse that.
 
// If StreamTokenizer were not quite so crippled, or if there were a kind
// of Reader that could read in chunks that match some particular regex,
// or if we wanted to write a custom Reader to tokenize our stream, then
// we would not have to read to one big String. Alas, none of these is
// the case. Oh well.
 
merge(toStringBuilder(input), extensionRegistry, builder);
}
 
private static final int BUFFER_SIZE = 4096;
 
// TODO(chrisn): See if working around java.io.Reader#read(CharBuffer)
// overhead is worthwhile
private static StringBuilder toStringBuilder(final Readable input)
throws IOException {
final StringBuilder text = new StringBuilder();
final CharBuffer buffer = CharBuffer.allocate(BUFFER_SIZE);
while (true) {
final int n = input.read(buffer);
if (n == -1) {
break;
}
buffer.flip();
text.append(buffer, 0, n);
}
return text;
}
 
/**
* Parse a text-format message from {@code input} and merge the contents
* into {@code builder}. Extensions will be recognized if they are
* registered in {@code extensionRegistry}.
*/
public static void merge(final CharSequence input,
final ExtensionRegistry extensionRegistry,
final Message.Builder builder)
throws ParseException {
final Tokenizer tokenizer = new Tokenizer(input);
 
while (!tokenizer.atEnd()) {
mergeField(tokenizer, extensionRegistry, builder);
}
}
 
/**
* Parse a single field from {@code tokenizer} and merge it into
* {@code builder}.
*/
private static void mergeField(final Tokenizer tokenizer,
final ExtensionRegistry extensionRegistry,
final Message.Builder builder)
throws ParseException {
FieldDescriptor field;
final Descriptor type = builder.getDescriptorForType();
ExtensionRegistry.ExtensionInfo extension = null;
 
if (tokenizer.tryConsume("[")) {
// An extension.
final StringBuilder name =
new StringBuilder(tokenizer.consumeIdentifier());
while (tokenizer.tryConsume(".")) {
name.append('.');
name.append(tokenizer.consumeIdentifier());
}
 
extension = extensionRegistry.findExtensionByName(name.toString());
 
if (extension == null) {
throw tokenizer.parseExceptionPreviousToken(
"Extension \"" + name + "\" not found in the ExtensionRegistry.");
} else if (extension.descriptor.getContainingType() != type) {
throw tokenizer.parseExceptionPreviousToken(
"Extension \"" + name + "\" does not extend message type \"" +
type.getFullName() + "\".");
}
 
tokenizer.consume("]");
 
field = extension.descriptor;
} else {
final String name = tokenizer.consumeIdentifier();
field = type.findFieldByName(name);
 
// Group names are expected to be capitalized as they appear in the
// .proto file, which actually matches their type names, not their field
// names.
if (field == null) {
// Explicitly specify US locale so that this code does not break when
// executing in Turkey.
final String lowerName = name.toLowerCase(Locale.US);
field = type.findFieldByName(lowerName);
// If the case-insensitive match worked but the field is NOT a group,
if (field != null && field.getType() != FieldDescriptor.Type.GROUP) {
field = null;
}
}
// Again, special-case group names as described above.
if (field != null && field.getType() == FieldDescriptor.Type.GROUP &&
!field.getMessageType().getName().equals(name)) {
field = null;
}
 
if (field == null) {
throw tokenizer.parseExceptionPreviousToken(
"Message type \"" + type.getFullName() +
"\" has no field named \"" + name + "\".");
}
}
 
Object value = null;
 
if (field.getJavaType() == FieldDescriptor.JavaType.MESSAGE) {
tokenizer.tryConsume(":"); // optional
 
final String endToken;
if (tokenizer.tryConsume("<")) {
endToken = ">";
} else {
tokenizer.consume("{");
endToken = "}";
}
 
final Message.Builder subBuilder;
if (extension == null) {
subBuilder = builder.newBuilderForField(field);
} else {
subBuilder = extension.defaultInstance.newBuilderForType();
}
 
while (!tokenizer.tryConsume(endToken)) {
if (tokenizer.atEnd()) {
throw tokenizer.parseException(
"Expected \"" + endToken + "\".");
}
mergeField(tokenizer, extensionRegistry, subBuilder);
}
 
value = subBuilder.build();
 
} else {
tokenizer.consume(":");
 
switch (field.getType()) {
case INT32:
case SINT32:
case SFIXED32:
value = tokenizer.consumeInt32();
break;
 
case INT64:
case SINT64:
case SFIXED64:
value = tokenizer.consumeInt64();
break;
 
case UINT32:
case FIXED32:
value = tokenizer.consumeUInt32();
break;
 
case UINT64:
case FIXED64:
value = tokenizer.consumeUInt64();
break;
 
case FLOAT:
value = tokenizer.consumeFloat();
break;
 
case DOUBLE:
value = tokenizer.consumeDouble();
break;
 
case BOOL:
value = tokenizer.consumeBoolean();
break;
 
case STRING:
value = tokenizer.consumeString();
break;
 
case BYTES:
value = tokenizer.consumeByteString();
break;
 
case ENUM:
final EnumDescriptor enumType = field.getEnumType();
 
if (tokenizer.lookingAtInteger()) {
final int number = tokenizer.consumeInt32();
value = enumType.findValueByNumber(number);
if (value == null) {
throw tokenizer.parseExceptionPreviousToken(
"Enum type \"" + enumType.getFullName() +
"\" has no value with number " + number + '.');
}
} else {
final String id = tokenizer.consumeIdentifier();
value = enumType.findValueByName(id);
if (value == null) {
throw tokenizer.parseExceptionPreviousToken(
"Enum type \"" + enumType.getFullName() +
"\" has no value named \"" + id + "\".");
}
}
 
break;
 
case MESSAGE:
case GROUP:
throw new RuntimeException("Can't get here.");
}
}
 
if (field.isRepeated()) {
builder.addRepeatedField(field, value);
} else {
builder.setField(field, value);
}
}
 
// =================================================================
// Utility functions
//
// Some of these methods are package-private because Descriptors.java uses
// them.
 
/**
* Escapes bytes in the format used in protocol buffer text format, which
* is the same as the format used for C string literals. All bytes
* that are not printable 7-bit ASCII characters are escaped, as well as
* backslash, single-quote, and double-quote characters. Characters for
* which no defined short-hand escape sequence is defined will be escaped
* using 3-digit octal sequences.
*/
static String escapeBytes(final ByteString input) {
final StringBuilder builder = new StringBuilder(input.size());
for (int i = 0; i < input.size(); i++) {
final byte b = input.byteAt(i);
switch (b) {
// Java does not recognize \a or \v, apparently.
case 0x07: builder.append("\\a" ); break;
case '\b': builder.append("\\b" ); break;
case '\f': builder.append("\\f" ); break;
case '\n': builder.append("\\n" ); break;
case '\r': builder.append("\\r" ); break;
case '\t': builder.append("\\t" ); break;
case 0x0b: builder.append("\\v" ); break;
case '\\': builder.append("\\\\"); break;
case '\'': builder.append("\\\'"); break;
case '"' : builder.append("\\\""); break;
default:
// Note: Bytes with the high-order bit set should be escaped. Since
// bytes are signed, such bytes will compare less than 0x20, hence
// the following line is correct.
if (b >= 0x20) {
builder.append((char) b);
} else {
builder.append('\\');
builder.append((char) ('0' + ((b >>> 6) & 3)));
builder.append((char) ('0' + ((b >>> 3) & 7)));
builder.append((char) ('0' + (b & 7)));
}
break;
}
}
return builder.toString();
}
 
/**
* Un-escape a byte sequence as escaped using
* {@link #escapeBytes(ByteString)}. Two-digit hex escapes (starting with
* "\x") are also recognized.
*/
static ByteString unescapeBytes(final CharSequence charString)
throws InvalidEscapeSequenceException {
// First convert the Java characater sequence to UTF-8 bytes.
ByteString input = ByteString.copyFromUtf8(charString.toString());
// Then unescape certain byte sequences introduced by ASCII '\\'. The valid
// escapes can all be expressed with ASCII characters, so it is safe to
// operate on bytes here.
//
// Unescaping the input byte array will result in a byte sequence that's no
// longer than the input. That's because each escape sequence is between
// two and four bytes long and stands for a single byte.
final byte[] result = new byte[input.size()];
int pos = 0;
for (int i = 0; i < input.size(); i++) {
byte c = input.byteAt(i);
if (c == '\\') {
if (i + 1 < input.size()) {
++i;
c = input.byteAt(i);
if (isOctal(c)) {
// Octal escape.
int code = digitValue(c);
if (i + 1 < input.size() && isOctal(input.byteAt(i + 1))) {
++i;
code = code * 8 + digitValue(input.byteAt(i));
}
if (i + 1 < input.size() && isOctal(input.byteAt(i + 1))) {
++i;
code = code * 8 + digitValue(input.byteAt(i));
}
// TODO: Check that 0 <= code && code <= 0xFF.
result[pos++] = (byte)code;
} else {
switch (c) {
case 'a' : result[pos++] = 0x07; break;
case 'b' : result[pos++] = '\b'; break;
case 'f' : result[pos++] = '\f'; break;
case 'n' : result[pos++] = '\n'; break;
case 'r' : result[pos++] = '\r'; break;
case 't' : result[pos++] = '\t'; break;
case 'v' : result[pos++] = 0x0b; break;
case '\\': result[pos++] = '\\'; break;
case '\'': result[pos++] = '\''; break;
case '"' : result[pos++] = '\"'; break;
 
case 'x':
// hex escape
int code = 0;
if (i + 1 < input.size() && isHex(input.byteAt(i + 1))) {
++i;
code = digitValue(input.byteAt(i));
} else {
throw new InvalidEscapeSequenceException(
"Invalid escape sequence: '\\x' with no digits");
}
if (i + 1 < input.size() && isHex(input.byteAt(i + 1))) {
++i;
code = code * 16 + digitValue(input.byteAt(i));
}
result[pos++] = (byte)code;
break;
 
default:
throw new InvalidEscapeSequenceException(
"Invalid escape sequence: '\\" + (char)c + '\'');
}
}
} else {
throw new InvalidEscapeSequenceException(
"Invalid escape sequence: '\\' at end of string.");
}
} else {
result[pos++] = c;
}
}
 
return ByteString.copyFrom(result, 0, pos);
}
 
/**
* Thrown by {@link TextFormat#unescapeBytes} and
* {@link TextFormat#unescapeText} when an invalid escape sequence is seen.
*/
static class InvalidEscapeSequenceException extends IOException {
private static final long serialVersionUID = -8164033650142593304L;
 
InvalidEscapeSequenceException(final String description) {
super(description);
}
}
 
/**
* Like {@link #escapeBytes(ByteString)}, but escapes a text string.
* Non-ASCII characters are first encoded as UTF-8, then each byte is escaped
* individually as a 3-digit octal escape. Yes, it's weird.
*/
static String escapeText(final String input) {
return escapeBytes(ByteString.copyFromUtf8(input));
}
 
/**
* Un-escape a text string as escaped using {@link #escapeText(String)}.
* Two-digit hex escapes (starting with "\x") are also recognized.
*/
static String unescapeText(final String input)
throws InvalidEscapeSequenceException {
return unescapeBytes(input).toStringUtf8();
}
 
/** Is this an octal digit? */
private static boolean isOctal(final byte c) {
return '0' <= c && c <= '7';
}
 
/** Is this a hex digit? */
private static boolean isHex(final byte c) {
return ('0' <= c && c <= '9') ||
('a' <= c && c <= 'f') ||
('A' <= c && c <= 'F');
}
 
/**
* Interpret a character as a digit (in any base up to 36) and return the
* numeric value. This is like {@code Character.digit()} but we don't accept
* non-ASCII digits.
*/
private static int digitValue(final byte c) {
if ('0' <= c && c <= '9') {
return c - '0';
} else if ('a' <= c && c <= 'z') {
return c - 'a' + 10;
} else {
return c - 'A' + 10;
}
}
 
/**
* Parse a 32-bit signed integer from the text. Unlike the Java standard
* {@code Integer.parseInt()}, this function recognizes the prefixes "0x"
* and "0" to signify hexidecimal and octal numbers, respectively.
*/
static int parseInt32(final String text) throws NumberFormatException {
return (int) parseInteger(text, true, false);
}
 
/**
* Parse a 32-bit unsigned integer from the text. Unlike the Java standard
* {@code Integer.parseInt()}, this function recognizes the prefixes "0x"
* and "0" to signify hexidecimal and octal numbers, respectively. The
* result is coerced to a (signed) {@code int} when returned since Java has
* no unsigned integer type.
*/
static int parseUInt32(final String text) throws NumberFormatException {
return (int) parseInteger(text, false, false);
}
 
/**
* Parse a 64-bit signed integer from the text. Unlike the Java standard
* {@code Integer.parseInt()}, this function recognizes the prefixes "0x"
* and "0" to signify hexidecimal and octal numbers, respectively.
*/
static long parseInt64(final String text) throws NumberFormatException {
return parseInteger(text, true, true);
}
 
/**
* Parse a 64-bit unsigned integer from the text. Unlike the Java standard
* {@code Integer.parseInt()}, this function recognizes the prefixes "0x"
* and "0" to signify hexidecimal and octal numbers, respectively. The
* result is coerced to a (signed) {@code long} when returned since Java has
* no unsigned long type.
*/
static long parseUInt64(final String text) throws NumberFormatException {
return parseInteger(text, false, true);
}
 
private static long parseInteger(final String text,
final boolean isSigned,
final boolean isLong)
throws NumberFormatException {
int pos = 0;
 
boolean negative = false;
if (text.startsWith("-", pos)) {
if (!isSigned) {
throw new NumberFormatException("Number must be positive: " + text);
}
++pos;
negative = true;
}
 
int radix = 10;
if (text.startsWith("0x", pos)) {
pos += 2;
radix = 16;
} else if (text.startsWith("0", pos)) {
radix = 8;
}
 
final String numberText = text.substring(pos);
 
long result = 0;
if (numberText.length() < 16) {
// Can safely assume no overflow.
result = Long.parseLong(numberText, radix);
if (negative) {
result = -result;
}
 
// Check bounds.
// No need to check for 64-bit numbers since they'd have to be 16 chars
// or longer to overflow.
if (!isLong) {
if (isSigned) {
if (result > Integer.MAX_VALUE || result < Integer.MIN_VALUE) {
throw new NumberFormatException(
"Number out of range for 32-bit signed integer: " + text);
}
} else {
if (result >= (1L << 32) || result < 0) {
throw new NumberFormatException(
"Number out of range for 32-bit unsigned integer: " + text);
}
}
}
} else {
BigInteger bigValue = new BigInteger(numberText, radix);
if (negative) {
bigValue = bigValue.negate();
}
 
// Check bounds.
if (!isLong) {
if (isSigned) {
if (bigValue.bitLength() > 31) {
throw new NumberFormatException(
"Number out of range for 32-bit signed integer: " + text);
}
} else {
if (bigValue.bitLength() > 32) {
throw new NumberFormatException(
"Number out of range for 32-bit unsigned integer: " + text);
}
}
} else {
if (isSigned) {
if (bigValue.bitLength() > 63) {
throw new NumberFormatException(
"Number out of range for 64-bit signed integer: " + text);
}
} else {
if (bigValue.bitLength() > 64) {
throw new NumberFormatException(
"Number out of range for 64-bit unsigned integer: " + text);
}
}
}
 
result = bigValue.longValue();
}
 
return result;
}
}
/Android Development/IOIODebuggerServer/src/com/google/protobuf/UninitializedMessageException.java
0,0 → 1,99
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// http://code.google.com/p/protobuf/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
package com.google.protobuf;
 
import java.util.Collections;
import java.util.List;
 
/**
* Thrown when attempting to build a protocol message that is missing required
* fields. This is a {@code RuntimeException} because it normally represents
* a programming error: it happens when some code which constructs a message
* fails to set all the fields. {@code parseFrom()} methods <b>do not</b>
* throw this; they throw an {@link InvalidProtocolBufferException} if
* required fields are missing, because it is not a programming error to
* receive an incomplete message. In other words,
* {@code UninitializedMessageException} should never be thrown by correct
* code, but {@code InvalidProtocolBufferException} might be.
*
* @author kenton@google.com Kenton Varda
*/
public class UninitializedMessageException extends RuntimeException {
private static final long serialVersionUID = -7466929953374883507L;
 
public UninitializedMessageException(final MessageLite message) {
super("Message was missing required fields. (Lite runtime could not " +
"determine which fields were missing).");
missingFields = null;
}
 
public UninitializedMessageException(final List<String> missingFields) {
super(buildDescription(missingFields));
this.missingFields = missingFields;
}
 
private final List<String> missingFields;
 
/**
* Get a list of human-readable names of required fields missing from this
* message. Each name is a full path to a field, e.g. "foo.bar[5].baz".
* Returns null if the lite runtime was used, since it lacks the ability to
* find missing fields.
*/
public List<String> getMissingFields() {
return Collections.unmodifiableList(missingFields);
}
 
/**
* Converts this exception to an {@link InvalidProtocolBufferException}.
* When a parsed message is missing required fields, this should be thrown
* instead of {@code UninitializedMessageException}.
*/
public InvalidProtocolBufferException asInvalidProtocolBufferException() {
return new InvalidProtocolBufferException(getMessage());
}
 
/** Construct the description string for this exception. */
private static String buildDescription(final List<String> missingFields) {
final StringBuilder description =
new StringBuilder("Message missing required fields: ");
boolean first = true;
for (final String field : missingFields) {
if (first) {
first = false;
} else {
description.append(", ");
}
description.append(field);
}
return description.toString();
}
}
/Android Development/IOIODebuggerServer/src/com/google/protobuf/UnknownFieldSet.java
0,0 → 1,953
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// http://code.google.com/p/protobuf/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
package com.google.protobuf;
 
import com.google.protobuf.AbstractMessageLite.Builder.LimitedInputStream;
 
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
 
/**
* {@code UnknownFieldSet} is used to keep track of fields which were seen when
* parsing a protocol message but whose field numbers or types are unrecognized.
* This most frequently occurs when new fields are added to a message type
* and then messages containing those feilds are read by old software that was
* compiled before the new types were added.
*
* <p>Every {@link Message} contains an {@code UnknownFieldSet} (and every
* {@link Message.Builder} contains an {@link Builder}).
*
* <p>Most users will never need to use this class.
*
* @author kenton@google.com Kenton Varda
*/
public final class UnknownFieldSet implements MessageLite {
private UnknownFieldSet() {}
 
/** Create a new {@link Builder}. */
public static Builder newBuilder() {
return Builder.create();
}
 
/**
* Create a new {@link Builder} and initialize it to be a copy
* of {@code copyFrom}.
*/
public static Builder newBuilder(final UnknownFieldSet copyFrom) {
return newBuilder().mergeFrom(copyFrom);
}
 
/** Get an empty {@code UnknownFieldSet}. */
public static UnknownFieldSet getDefaultInstance() {
return defaultInstance;
}
public UnknownFieldSet getDefaultInstanceForType() {
return defaultInstance;
}
private static final UnknownFieldSet defaultInstance =
new UnknownFieldSet(Collections.<Integer, Field>emptyMap());
 
/**
* Construct an {@code UnknownFieldSet} around the given map. The map is
* expected to be immutable.
*/
private UnknownFieldSet(final Map<Integer, Field> fields) {
this.fields = fields;
}
private Map<Integer, Field> fields;
 
@Override
public boolean equals(final Object other) {
if (this == other) {
return true;
}
return (other instanceof UnknownFieldSet) &&
fields.equals(((UnknownFieldSet) other).fields);
}
 
@Override
public int hashCode() {
return fields.hashCode();
}
 
/** Get a map of fields in the set by number. */
public Map<Integer, Field> asMap() {
return fields;
}
 
/** Check if the given field number is present in the set. */
public boolean hasField(final int number) {
return fields.containsKey(number);
}
 
/**
* Get a field by number. Returns an empty field if not present. Never
* returns {@code null}.
*/
public Field getField(final int number) {
final Field result = fields.get(number);
return (result == null) ? Field.getDefaultInstance() : result;
}
 
/** Serializes the set and writes it to {@code output}. */
public void writeTo(final CodedOutputStream output) throws IOException {
for (final Map.Entry<Integer, Field> entry : fields.entrySet()) {
entry.getValue().writeTo(entry.getKey(), output);
}
}
 
/**
* Converts the set to a string in protocol buffer text format. This is
* just a trivial wrapper around
* {@link TextFormat#printToString(UnknownFieldSet)}.
*/
@Override
public String toString() {
return TextFormat.printToString(this);
}
 
/**
* Serializes the message to a {@code ByteString} and returns it. This is
* just a trivial wrapper around {@link #writeTo(CodedOutputStream)}.
*/
public ByteString toByteString() {
try {
final ByteString.CodedBuilder out =
ByteString.newCodedBuilder(getSerializedSize());
writeTo(out.getCodedOutput());
return out.build();
} catch (final IOException e) {
throw new RuntimeException(
"Serializing to a ByteString threw an IOException (should " +
"never happen).", e);
}
}
 
/**
* Serializes the message to a {@code byte} array and returns it. This is
* just a trivial wrapper around {@link #writeTo(CodedOutputStream)}.
*/
public byte[] toByteArray() {
try {
final byte[] result = new byte[getSerializedSize()];
final CodedOutputStream output = CodedOutputStream.newInstance(result);
writeTo(output);
output.checkNoSpaceLeft();
return result;
} catch (final IOException e) {
throw new RuntimeException(
"Serializing to a byte array threw an IOException " +
"(should never happen).", e);
}
}
 
/**
* Serializes the message and writes it to {@code output}. This is just a
* trivial wrapper around {@link #writeTo(CodedOutputStream)}.
*/
public void writeTo(final OutputStream output) throws IOException {
final CodedOutputStream codedOutput = CodedOutputStream.newInstance(output);
writeTo(codedOutput);
codedOutput.flush();
}
 
public void writeDelimitedTo(OutputStream output) throws IOException {
final CodedOutputStream codedOutput = CodedOutputStream.newInstance(output);
codedOutput.writeRawVarint32(getSerializedSize());
writeTo(codedOutput);
codedOutput.flush();
}
 
/** Get the number of bytes required to encode this set. */
public int getSerializedSize() {
int result = 0;
for (final Map.Entry<Integer, Field> entry : fields.entrySet()) {
result += entry.getValue().getSerializedSize(entry.getKey());
}
return result;
}
 
/**
* Serializes the set and writes it to {@code output} using
* {@code MessageSet} wire format.
*/
public void writeAsMessageSetTo(final CodedOutputStream output)
throws IOException {
for (final Map.Entry<Integer, Field> entry : fields.entrySet()) {
entry.getValue().writeAsMessageSetExtensionTo(
entry.getKey(), output);
}
}
 
/**
* Get the number of bytes required to encode this set using
* {@code MessageSet} wire format.
*/
public int getSerializedSizeAsMessageSet() {
int result = 0;
for (final Map.Entry<Integer, Field> entry : fields.entrySet()) {
result += entry.getValue().getSerializedSizeAsMessageSetExtension(
entry.getKey());
}
return result;
}
 
public boolean isInitialized() {
// UnknownFieldSets do not have required fields, so they are always
// initialized.
return true;
}
 
/** Parse an {@code UnknownFieldSet} from the given input stream. */
public static UnknownFieldSet parseFrom(final CodedInputStream input)
throws IOException {
return newBuilder().mergeFrom(input).build();
}
 
/** Parse {@code data} as an {@code UnknownFieldSet} and return it. */
public static UnknownFieldSet parseFrom(final ByteString data)
throws InvalidProtocolBufferException {
return newBuilder().mergeFrom(data).build();
}
 
/** Parse {@code data} as an {@code UnknownFieldSet} and return it. */
public static UnknownFieldSet parseFrom(final byte[] data)
throws InvalidProtocolBufferException {
return newBuilder().mergeFrom(data).build();
}
 
/** Parse an {@code UnknownFieldSet} from {@code input} and return it. */
public static UnknownFieldSet parseFrom(final InputStream input)
throws IOException {
return newBuilder().mergeFrom(input).build();
}
 
public Builder newBuilderForType() {
return newBuilder();
}
 
public Builder toBuilder() {
return newBuilder().mergeFrom(this);
}
 
/**
* Builder for {@link UnknownFieldSet}s.
*
* <p>Note that this class maintains {@link Field.Builder}s for all fields
* in the set. Thus, adding one element to an existing {@link Field} does not
* require making a copy. This is important for efficient parsing of
* unknown repeated fields. However, it implies that {@link Field}s cannot
* be constructed independently, nor can two {@link UnknownFieldSet}s share
* the same {@code Field} object.
*
* <p>Use {@link UnknownFieldSet#newBuilder()} to construct a {@code Builder}.
*/
public static final class Builder implements MessageLite.Builder {
// This constructor should never be called directly (except from 'create').
private Builder() {}
 
private Map<Integer, Field> fields;
 
// Optimization: We keep around a builder for the last field that was
// modified so that we can efficiently add to it multiple times in a
// row (important when parsing an unknown repeated field).
private int lastFieldNumber;
private Field.Builder lastField;
 
private static Builder create() {
Builder builder = new Builder();
builder.reinitialize();
return builder;
}
 
/**
* Get a field builder for the given field number which includes any
* values that already exist.
*/
private Field.Builder getFieldBuilder(final int number) {
if (lastField != null) {
if (number == lastFieldNumber) {
return lastField;
}
// Note: addField() will reset lastField and lastFieldNumber.
addField(lastFieldNumber, lastField.build());
}
if (number == 0) {
return null;
} else {
final Field existing = fields.get(number);
lastFieldNumber = number;
lastField = Field.newBuilder();
if (existing != null) {
lastField.mergeFrom(existing);
}
return lastField;
}
}
 
/**
* Build the {@link UnknownFieldSet} and return it.
*
* <p>Once {@code build()} has been called, the {@code Builder} will no
* longer be usable. Calling any method after {@code build()} will result
* in undefined behavior and can cause a {@code NullPointerException} to be
* thrown.
*/
public UnknownFieldSet build() {
getFieldBuilder(0); // Force lastField to be built.
final UnknownFieldSet result;
if (fields.isEmpty()) {
result = getDefaultInstance();
} else {
result = new UnknownFieldSet(Collections.unmodifiableMap(fields));
}
fields = null;
return result;
}
 
public UnknownFieldSet buildPartial() {
// No required fields, so this is the same as build().
return build();
}
 
@Override
public Builder clone() {
getFieldBuilder(0); // Force lastField to be built.
return UnknownFieldSet.newBuilder().mergeFrom(
new UnknownFieldSet(fields));
}
 
public UnknownFieldSet getDefaultInstanceForType() {
return UnknownFieldSet.getDefaultInstance();
}
 
private void reinitialize() {
fields = Collections.emptyMap();
lastFieldNumber = 0;
lastField = null;
}
 
/** Reset the builder to an empty set. */
public Builder clear() {
reinitialize();
return this;
}
 
/**
* Merge the fields from {@code other} into this set. If a field number
* exists in both sets, {@code other}'s values for that field will be
* appended to the values in this set.
*/
public Builder mergeFrom(final UnknownFieldSet other) {
if (other != getDefaultInstance()) {
for (final Map.Entry<Integer, Field> entry : other.fields.entrySet()) {
mergeField(entry.getKey(), entry.getValue());
}
}
return this;
}
 
/**
* Add a field to the {@code UnknownFieldSet}. If a field with the same
* number already exists, the two are merged.
*/
public Builder mergeField(final int number, final Field field) {
if (number == 0) {
throw new IllegalArgumentException("Zero is not a valid field number.");
}
if (hasField(number)) {
getFieldBuilder(number).mergeFrom(field);
} else {
// Optimization: We could call getFieldBuilder(number).mergeFrom(field)
// in this case, but that would create a copy of the Field object.
// We'd rather reuse the one passed to us, so call addField() instead.
addField(number, field);
}
return this;
}
 
/**
* Convenience method for merging a new field containing a single varint
* value. This is used in particular when an unknown enum value is
* encountered.
*/
public Builder mergeVarintField(final int number, final int value) {
if (number == 0) {
throw new IllegalArgumentException("Zero is not a valid field number.");
}
getFieldBuilder(number).addVarint(value);
return this;
}
 
/** Check if the given field number is present in the set. */
public boolean hasField(final int number) {
if (number == 0) {
throw new IllegalArgumentException("Zero is not a valid field number.");
}
return number == lastFieldNumber || fields.containsKey(number);
}
 
/**
* Add a field to the {@code UnknownFieldSet}. If a field with the same
* number already exists, it is removed.
*/
public Builder addField(final int number, final Field field) {
if (number == 0) {
throw new IllegalArgumentException("Zero is not a valid field number.");
}
if (lastField != null && lastFieldNumber == number) {
// Discard this.
lastField = null;
lastFieldNumber = 0;
}
if (fields.isEmpty()) {
fields = new TreeMap<Integer,Field>();
}
fields.put(number, field);
return this;
}
 
/**
* Get all present {@code Field}s as an immutable {@code Map}. If more
* fields are added, the changes may or may not be reflected in this map.
*/
public Map<Integer, Field> asMap() {
getFieldBuilder(0); // Force lastField to be built.
return Collections.unmodifiableMap(fields);
}
 
/**
* Parse an entire message from {@code input} and merge its fields into
* this set.
*/
public Builder mergeFrom(final CodedInputStream input) throws IOException {
while (true) {
final int tag = input.readTag();
if (tag == 0 || !mergeFieldFrom(tag, input)) {
break;
}
}
return this;
}
 
/**
* Parse a single field from {@code input} and merge it into this set.
* @param tag The field's tag number, which was already parsed.
* @return {@code false} if the tag is an engroup tag.
*/
public boolean mergeFieldFrom(final int tag, final CodedInputStream input)
throws IOException {
final int number = WireFormat.getTagFieldNumber(tag);
switch (WireFormat.getTagWireType(tag)) {
case WireFormat.WIRETYPE_VARINT:
getFieldBuilder(number).addVarint(input.readInt64());
return true;
case WireFormat.WIRETYPE_FIXED64:
getFieldBuilder(number).addFixed64(input.readFixed64());
return true;
case WireFormat.WIRETYPE_LENGTH_DELIMITED:
getFieldBuilder(number).addLengthDelimited(input.readBytes());
return true;
case WireFormat.WIRETYPE_START_GROUP:
final Builder subBuilder = newBuilder();
input.readGroup(number, subBuilder,
ExtensionRegistry.getEmptyRegistry());
getFieldBuilder(number).addGroup(subBuilder.build());
return true;
case WireFormat.WIRETYPE_END_GROUP:
return false;
case WireFormat.WIRETYPE_FIXED32:
getFieldBuilder(number).addFixed32(input.readFixed32());
return true;
default:
throw InvalidProtocolBufferException.invalidWireType();
}
}
 
/**
* Parse {@code data} as an {@code UnknownFieldSet} and merge it with the
* set being built. This is just a small wrapper around
* {@link #mergeFrom(CodedInputStream)}.
*/
public Builder mergeFrom(final ByteString data)
throws InvalidProtocolBufferException {
try {
final CodedInputStream input = data.newCodedInput();
mergeFrom(input);
input.checkLastTagWas(0);
return this;
} catch (final InvalidProtocolBufferException e) {
throw e;
} catch (final IOException e) {
throw new RuntimeException(
"Reading from a ByteString threw an IOException (should " +
"never happen).", e);
}
}
 
/**
* Parse {@code data} as an {@code UnknownFieldSet} and merge it with the
* set being built. This is just a small wrapper around
* {@link #mergeFrom(CodedInputStream)}.
*/
public Builder mergeFrom(final byte[] data)
throws InvalidProtocolBufferException {
try {
final CodedInputStream input = CodedInputStream.newInstance(data);
mergeFrom(input);
input.checkLastTagWas(0);
return this;
} catch (final InvalidProtocolBufferException e) {
throw e;
} catch (final IOException e) {
throw new RuntimeException(
"Reading from a byte array threw an IOException (should " +
"never happen).", e);
}
}
 
/**
* Parse an {@code UnknownFieldSet} from {@code input} and merge it with the
* set being built. This is just a small wrapper around
* {@link #mergeFrom(CodedInputStream)}.
*/
public Builder mergeFrom(final InputStream input) throws IOException {
final CodedInputStream codedInput = CodedInputStream.newInstance(input);
mergeFrom(codedInput);
codedInput.checkLastTagWas(0);
return this;
}
 
public boolean mergeDelimitedFrom(InputStream input)
throws IOException {
final int firstByte = input.read();
if (firstByte == -1) {
return false;
}
final int size = CodedInputStream.readRawVarint32(firstByte, input);
final InputStream limitedInput = new LimitedInputStream(input, size);
mergeFrom(limitedInput);
return true;
}
 
public boolean mergeDelimitedFrom(
InputStream input,
ExtensionRegistryLite extensionRegistry) throws IOException {
// UnknownFieldSet has no extensions.
return mergeDelimitedFrom(input);
}
 
public Builder mergeFrom(
CodedInputStream input,
ExtensionRegistryLite extensionRegistry) throws IOException {
// UnknownFieldSet has no extensions.
return mergeFrom(input);
}
 
public Builder mergeFrom(
ByteString data,
ExtensionRegistryLite extensionRegistry)
throws InvalidProtocolBufferException {
// UnknownFieldSet has no extensions.
return mergeFrom(data);
}
 
public Builder mergeFrom(byte[] data, int off, int len)
throws InvalidProtocolBufferException {
try {
final CodedInputStream input =
CodedInputStream.newInstance(data, off, len);
mergeFrom(input);
input.checkLastTagWas(0);
return this;
} catch (InvalidProtocolBufferException e) {
throw e;
} catch (IOException e) {
throw new RuntimeException(
"Reading from a byte array threw an IOException (should " +
"never happen).", e);
}
}
 
public Builder mergeFrom(
byte[] data,
ExtensionRegistryLite extensionRegistry)
throws InvalidProtocolBufferException {
// UnknownFieldSet has no extensions.
return mergeFrom(data);
}
 
public Builder mergeFrom(
byte[] data, int off, int len,
ExtensionRegistryLite extensionRegistry)
throws InvalidProtocolBufferException {
// UnknownFieldSet has no extensions.
return mergeFrom(data, off, len);
}
 
public Builder mergeFrom(
InputStream input,
ExtensionRegistryLite extensionRegistry) throws IOException {
// UnknownFieldSet has no extensions.
return mergeFrom(input);
}
 
public boolean isInitialized() {
// UnknownFieldSets do not have required fields, so they are always
// initialized.
return true;
}
}
 
/**
* Represents a single field in an {@code UnknownFieldSet}.
*
* <p>A {@code Field} consists of five lists of values. The lists correspond
* to the five "wire types" used in the protocol buffer binary format.
* The wire type of each field can be determined from the encoded form alone,
* without knowing the field's declared type. So, we are able to parse
* unknown values at least this far and separate them. Normally, only one
* of the five lists will contain any values, since it is impossible to
* define a valid message type that declares two different types for the
* same field number. However, the code is designed to allow for the case
* where the same unknown field number is encountered using multiple different
* wire types.
*
* <p>{@code Field} is an immutable class. To construct one, you must use a
* {@link Builder}.
*
* @see UnknownFieldSet
*/
public static final class Field {
private Field() {}
 
/** Construct a new {@link Builder}. */
public static Builder newBuilder() {
return Builder.create();
}
 
/**
* Construct a new {@link Builder} and initialize it to a copy of
* {@code copyFrom}.
*/
public static Builder newBuilder(final Field copyFrom) {
return newBuilder().mergeFrom(copyFrom);
}
 
/** Get an empty {@code Field}. */
public static Field getDefaultInstance() {
return fieldDefaultInstance;
}
private static final Field fieldDefaultInstance = newBuilder().build();
 
/** Get the list of varint values for this field. */
public List<Long> getVarintList() { return varint; }
 
/** Get the list of fixed32 values for this field. */
public List<Integer> getFixed32List() { return fixed32; }
 
/** Get the list of fixed64 values for this field. */
public List<Long> getFixed64List() { return fixed64; }
 
/** Get the list of length-delimited values for this field. */
public List<ByteString> getLengthDelimitedList() { return lengthDelimited; }
 
/**
* Get the list of embedded group values for this field. These are
* represented using {@link UnknownFieldSet}s rather than {@link Message}s
* since the group's type is presumably unknown.
*/
public List<UnknownFieldSet> getGroupList() { return group; }
 
@Override
public boolean equals(final Object other) {
if (this == other) {
return true;
}
if (!(other instanceof Field)) {
return false;
}
return Arrays.equals(getIdentityArray(),
((Field) other).getIdentityArray());
}
 
@Override
public int hashCode() {
return Arrays.hashCode(getIdentityArray());
}
 
/**
* Returns the array of objects to be used to uniquely identify this
* {@link Field} instance.
*/
private Object[] getIdentityArray() {
return new Object[] {
varint,
fixed32,
fixed64,
lengthDelimited,
group};
}
 
/**
* Serializes the field, including field number, and writes it to
* {@code output}.
*/
public void writeTo(final int fieldNumber, final CodedOutputStream output)
throws IOException {
for (final long value : varint) {
output.writeUInt64(fieldNumber, value);
}
for (final int value : fixed32) {
output.writeFixed32(fieldNumber, value);
}
for (final long value : fixed64) {
output.writeFixed64(fieldNumber, value);
}
for (final ByteString value : lengthDelimited) {
output.writeBytes(fieldNumber, value);
}
for (final UnknownFieldSet value : group) {
output.writeGroup(fieldNumber, value);
}
}
 
/**
* Get the number of bytes required to encode this field, including field
* number.
*/
public int getSerializedSize(final int fieldNumber) {
int result = 0;
for (final long value : varint) {
result += CodedOutputStream.computeUInt64Size(fieldNumber, value);
}
for (final int value : fixed32) {
result += CodedOutputStream.computeFixed32Size(fieldNumber, value);
}
for (final long value : fixed64) {
result += CodedOutputStream.computeFixed64Size(fieldNumber, value);
}
for (final ByteString value : lengthDelimited) {
result += CodedOutputStream.computeBytesSize(fieldNumber, value);
}
for (final UnknownFieldSet value : group) {
result += CodedOutputStream.computeGroupSize(fieldNumber, value);
}
return result;
}
 
/**
* Serializes the field, including field number, and writes it to
* {@code output}, using {@code MessageSet} wire format.
*/
public void writeAsMessageSetExtensionTo(
final int fieldNumber,
final CodedOutputStream output)
throws IOException {
for (final ByteString value : lengthDelimited) {
output.writeRawMessageSetExtension(fieldNumber, value);
}
}
 
/**
* Get the number of bytes required to encode this field, including field
* number, using {@code MessageSet} wire format.
*/
public int getSerializedSizeAsMessageSetExtension(final int fieldNumber) {
int result = 0;
for (final ByteString value : lengthDelimited) {
result += CodedOutputStream.computeRawMessageSetExtensionSize(
fieldNumber, value);
}
return result;
}
 
private List<Long> varint;
private List<Integer> fixed32;
private List<Long> fixed64;
private List<ByteString> lengthDelimited;
private List<UnknownFieldSet> group;
 
/**
* Used to build a {@link Field} within an {@link UnknownFieldSet}.
*
* <p>Use {@link Field#newBuilder()} to construct a {@code Builder}.
*/
public static final class Builder {
// This constructor should never be called directly (except from 'create').
private Builder() {}
 
private static Builder create() {
Builder builder = new Builder();
builder.result = new Field();
return builder;
}
 
private Field result;
 
/**
* Build the field. After {@code build()} has been called, the
* {@code Builder} is no longer usable. Calling any other method will
* result in undefined behavior and can cause a
* {@code NullPointerException} to be thrown.
*/
public Field build() {
if (result.varint == null) {
result.varint = Collections.emptyList();
} else {
result.varint = Collections.unmodifiableList(result.varint);
}
if (result.fixed32 == null) {
result.fixed32 = Collections.emptyList();
} else {
result.fixed32 = Collections.unmodifiableList(result.fixed32);
}
if (result.fixed64 == null) {
result.fixed64 = Collections.emptyList();
} else {
result.fixed64 = Collections.unmodifiableList(result.fixed64);
}
if (result.lengthDelimited == null) {
result.lengthDelimited = Collections.emptyList();
} else {
result.lengthDelimited =
Collections.unmodifiableList(result.lengthDelimited);
}
if (result.group == null) {
result.group = Collections.emptyList();
} else {
result.group = Collections.unmodifiableList(result.group);
}
 
final Field returnMe = result;
result = null;
return returnMe;
}
 
/** Discard the field's contents. */
public Builder clear() {
result = new Field();
return this;
}
 
/**
* Merge the values in {@code other} into this field. For each list
* of values, {@code other}'s values are append to the ones in this
* field.
*/
public Builder mergeFrom(final Field other) {
if (!other.varint.isEmpty()) {
if (result.varint == null) {
result.varint = new ArrayList<Long>();
}
result.varint.addAll(other.varint);
}
if (!other.fixed32.isEmpty()) {
if (result.fixed32 == null) {
result.fixed32 = new ArrayList<Integer>();
}
result.fixed32.addAll(other.fixed32);
}
if (!other.fixed64.isEmpty()) {
if (result.fixed64 == null) {
result.fixed64 = new ArrayList<Long>();
}
result.fixed64.addAll(other.fixed64);
}
if (!other.lengthDelimited.isEmpty()) {
if (result.lengthDelimited == null) {
result.lengthDelimited = new ArrayList<ByteString>();
}
result.lengthDelimited.addAll(other.lengthDelimited);
}
if (!other.group.isEmpty()) {
if (result.group == null) {
result.group = new ArrayList<UnknownFieldSet>();
}
result.group.addAll(other.group);
}
return this;
}
 
/** Add a varint value. */
public Builder addVarint(final long value) {
if (result.varint == null) {
result.varint = new ArrayList<Long>();
}
result.varint.add(value);
return this;
}
 
/** Add a fixed32 value. */
public Builder addFixed32(final int value) {
if (result.fixed32 == null) {
result.fixed32 = new ArrayList<Integer>();
}
result.fixed32.add(value);
return this;
}
 
/** Add a fixed64 value. */
public Builder addFixed64(final long value) {
if (result.fixed64 == null) {
result.fixed64 = new ArrayList<Long>();
}
result.fixed64.add(value);
return this;
}
 
/** Add a length-delimited value. */
public Builder addLengthDelimited(final ByteString value) {
if (result.lengthDelimited == null) {
result.lengthDelimited = new ArrayList<ByteString>();
}
result.lengthDelimited.add(value);
return this;
}
 
/** Add an embedded group. */
public Builder addGroup(final UnknownFieldSet value) {
if (result.group == null) {
result.group = new ArrayList<UnknownFieldSet>();
}
result.group.add(value);
return this;
}
}
}
}
/Android Development/IOIODebuggerServer/src/com/google/protobuf/UnmodifiableLazyStringList.java
0,0 → 1,146
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// http://code.google.com/p/protobuf/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
package com.google.protobuf;
 
import java.util.AbstractList;
import java.util.RandomAccess;
import java.util.ListIterator;
import java.util.Iterator;
 
/**
* An implementation of {@link LazyStringList} that wraps another
* {@link LazyStringList} such that it cannot be modified via the wrapper.
*
* @author jonp@google.com (Jon Perlow)
*/
public class UnmodifiableLazyStringList extends AbstractList<String>
implements LazyStringList, RandomAccess {
 
private final LazyStringList list;
 
public UnmodifiableLazyStringList(LazyStringList list) {
this.list = list;
}
 
@Override
public String get(int index) {
return list.get(index);
}
 
@Override
public int size() {
return list.size();
}
 
//@Override (Java 1.6 override semantics, but we must support 1.5)
public ByteString getByteString(int index) {
return list.getByteString(index);
}
 
//@Override (Java 1.6 override semantics, but we must support 1.5)
public void add(ByteString element) {
throw new UnsupportedOperationException();
}
 
//@Override (Java 1.6 override semantics, but we must support 1.5)
public ListIterator<String> listIterator(final int index) {
return new ListIterator<String>() {
ListIterator<String> iter = list.listIterator(index);
 
//@Override (Java 1.6 override semantics, but we must support 1.5)
public boolean hasNext() {
return iter.hasNext();
}
 
//@Override (Java 1.6 override semantics, but we must support 1.5)
public String next() {
return iter.next();
}
 
//@Override (Java 1.6 override semantics, but we must support 1.5)
public boolean hasPrevious() {
return iter.hasPrevious();
}
 
//@Override (Java 1.6 override semantics, but we must support 1.5)
public String previous() {
return iter.previous();
}
 
//@Override (Java 1.6 override semantics, but we must support 1.5)
public int nextIndex() {
return iter.nextIndex();
}
 
//@Override (Java 1.6 override semantics, but we must support 1.5)
public int previousIndex() {
return iter.previousIndex();
}
 
//@Override (Java 1.6 override semantics, but we must support 1.5)
public void remove() {
throw new UnsupportedOperationException();
}
 
//@Override (Java 1.6 override semantics, but we must support 1.5)
public void set(String o) {
throw new UnsupportedOperationException();
}
 
//@Override (Java 1.6 override semantics, but we must support 1.5)
public void add(String o) {
throw new UnsupportedOperationException();
}
};
}
 
@Override
public Iterator<String> iterator() {
return new Iterator<String>() {
Iterator<String> iter = list.iterator();
 
//@Override (Java 1.6 override semantics, but we must support 1.5)
public boolean hasNext() {
return iter.hasNext();
}
 
//@Override (Java 1.6 override semantics, but we must support 1.5)
public String next() {
return iter.next();
}
 
//@Override (Java 1.6 override semantics, but we must support 1.5)
public void remove() {
throw new UnsupportedOperationException();
}
};
}
}
/Android Development/IOIODebuggerServer/src/com/google/protobuf/WireFormat.java
0,0 → 1,163
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// http://code.google.com/p/protobuf/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
package com.google.protobuf;
 
/**
* This class is used internally by the Protocol Buffer library and generated
* message implementations. It is public only because those generated messages
* do not reside in the {@code protobuf} package. Others should not use this
* class directly.
*
* This class contains constants and helper functions useful for dealing with
* the Protocol Buffer wire format.
*
* @author kenton@google.com Kenton Varda
*/
public final class WireFormat {
// Do not allow instantiation.
private WireFormat() {}
 
public static final int WIRETYPE_VARINT = 0;
public static final int WIRETYPE_FIXED64 = 1;
public static final int WIRETYPE_LENGTH_DELIMITED = 2;
public static final int WIRETYPE_START_GROUP = 3;
public static final int WIRETYPE_END_GROUP = 4;
public static final int WIRETYPE_FIXED32 = 5;
 
static final int TAG_TYPE_BITS = 3;
static final int TAG_TYPE_MASK = (1 << TAG_TYPE_BITS) - 1;
 
/** Given a tag value, determines the wire type (the lower 3 bits). */
static int getTagWireType(final int tag) {
return tag & TAG_TYPE_MASK;
}
 
/** Given a tag value, determines the field number (the upper 29 bits). */
public static int getTagFieldNumber(final int tag) {
return tag >>> TAG_TYPE_BITS;
}
 
/** Makes a tag value given a field number and wire type. */
static int makeTag(final int fieldNumber, final int wireType) {
return (fieldNumber << TAG_TYPE_BITS) | wireType;
}
 
/**
* Lite equivalent to {@link Descriptors.FieldDescriptor.JavaType}. This is
* only here to support the lite runtime and should not be used by users.
*/
public enum JavaType {
INT(0),
LONG(0L),
FLOAT(0F),
DOUBLE(0D),
BOOLEAN(false),
STRING(""),
BYTE_STRING(ByteString.EMPTY),
ENUM(null),
MESSAGE(null);
 
JavaType(final Object defaultDefault) {
this.defaultDefault = defaultDefault;
}
 
/**
* The default default value for fields of this type, if it's a primitive
* type.
*/
Object getDefaultDefault() {
return defaultDefault;
}
 
private final Object defaultDefault;
}
 
/**
* Lite equivalent to {@link Descriptors.FieldDescriptor.Type}. This is
* only here to support the lite runtime and should not be used by users.
*/
public enum FieldType {
DOUBLE (JavaType.DOUBLE , WIRETYPE_FIXED64 ),
FLOAT (JavaType.FLOAT , WIRETYPE_FIXED32 ),
INT64 (JavaType.LONG , WIRETYPE_VARINT ),
UINT64 (JavaType.LONG , WIRETYPE_VARINT ),
INT32 (JavaType.INT , WIRETYPE_VARINT ),
FIXED64 (JavaType.LONG , WIRETYPE_FIXED64 ),
FIXED32 (JavaType.INT , WIRETYPE_FIXED32 ),
BOOL (JavaType.BOOLEAN , WIRETYPE_VARINT ),
STRING (JavaType.STRING , WIRETYPE_LENGTH_DELIMITED) {
public boolean isPackable() { return false; }
},
GROUP (JavaType.MESSAGE , WIRETYPE_START_GROUP ) {
public boolean isPackable() { return false; }
},
MESSAGE (JavaType.MESSAGE , WIRETYPE_LENGTH_DELIMITED) {
public boolean isPackable() { return false; }
},
BYTES (JavaType.BYTE_STRING, WIRETYPE_LENGTH_DELIMITED) {
public boolean isPackable() { return false; }
},
UINT32 (JavaType.INT , WIRETYPE_VARINT ),
ENUM (JavaType.ENUM , WIRETYPE_VARINT ),
SFIXED32(JavaType.INT , WIRETYPE_FIXED32 ),
SFIXED64(JavaType.LONG , WIRETYPE_FIXED64 ),
SINT32 (JavaType.INT , WIRETYPE_VARINT ),
SINT64 (JavaType.LONG , WIRETYPE_VARINT );
 
FieldType(final JavaType javaType, final int wireType) {
this.javaType = javaType;
this.wireType = wireType;
}
 
private final JavaType javaType;
private final int wireType;
 
public JavaType getJavaType() { return javaType; }
public int getWireType() { return wireType; }
 
public boolean isPackable() { return true; }
}
 
// Field numbers for feilds in MessageSet wire format.
static final int MESSAGE_SET_ITEM = 1;
static final int MESSAGE_SET_TYPE_ID = 2;
static final int MESSAGE_SET_MESSAGE = 3;
 
// Tag numbers.
static final int MESSAGE_SET_ITEM_TAG =
makeTag(MESSAGE_SET_ITEM, WIRETYPE_START_GROUP);
static final int MESSAGE_SET_ITEM_END_TAG =
makeTag(MESSAGE_SET_ITEM, WIRETYPE_END_GROUP);
static final int MESSAGE_SET_TYPE_ID_TAG =
makeTag(MESSAGE_SET_TYPE_ID, WIRETYPE_VARINT);
static final int MESSAGE_SET_MESSAGE_TAG =
makeTag(MESSAGE_SET_MESSAGE, WIRETYPE_LENGTH_DELIMITED);
}
/Android Development/IOIODebuggerServer/src/ioio/debugger/server/Debug Protocol Details.txt
0,0 → 1,24
Network Debug Protocol Message Type Details:
 
Type# Description
1 General ACK_SUCCESS
2 General ACK_FAILURE
 
 
10 Check if connection is ok
11 Connection ok response
12 Connection not ok response
13 Reset board (hard reset)
 
50 Start pin
Type: InAnalog Pin:# Freq:#
Type: InDigital Pin:# Freq:# Mode:[Float/Pull Up/Pull Down]
Type: OutDigital Pin:# State:[Low/High] Boolean:[True/False]
51 Stop pin
Pin:#
52 Remove pin
Pin:#
70 Send new data
Pin:# Data:#
/Android Development/IOIODebuggerServer/src/ioio/debugger/server/IOIODebuggerServer.java
0,0 → 1,33
package ioio.debugger.server;
 
import java.net.InetSocketAddress;
import java.util.concurrent.Executors;
 
import org.jboss.netty.bootstrap.ServerBootstrap;
import org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory;
 
public class IOIODebuggerServer {
 
private ServerBootstrap bootstrap;
private IOIODebuggerServerPipelineFactory pipeline;
public IOIODebuggerServer(int port) {
pipeline = new IOIODebuggerServerPipelineFactory();
// Configure the server.
bootstrap = new ServerBootstrap(
new NioServerSocketChannelFactory(
Executors.newCachedThreadPool(),
Executors.newCachedThreadPool()));
 
// Configure the pipeline factory.
bootstrap.setPipelineFactory(pipeline);
 
// Bind and start to accept incoming connections.
bootstrap.bind(new InetSocketAddress(port));
}
public IOIODebuggerServerPipelineFactory getPipeline() {
return pipeline;
}
}
/Android Development/IOIODebuggerServer/src/ioio/debugger/server/IOIODebuggerServerHandler.java
0,0 → 1,231
/**************************************************************************
* Copyright 2011 Jules White
*
* Licensed 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.
***************************************************************************/
package ioio.debugger.server;
 
import ioio.debugger.server.NetworkIOIOProtocol.Message;
import ioio.debugger.server.NetworkIOIOProtocol.Message.Builder;
import ioio.debugger.server.NetworkIOIOProtocol.TrackingMessage;
 
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
 
import org.jboss.netty.channel.Channel;
import org.jboss.netty.channel.ChannelEvent;
import org.jboss.netty.channel.ChannelHandlerContext;
import org.jboss.netty.channel.ChannelStateEvent;
import org.jboss.netty.channel.ExceptionEvent;
import org.jboss.netty.channel.MessageEvent;
import org.jboss.netty.channel.SimpleChannelUpstreamHandler;
import org.jboss.netty.channel.group.ChannelGroup;
import org.jboss.netty.channel.group.DefaultChannelGroup;
 
public class IOIODebuggerServerHandler extends SimpleChannelUpstreamHandler {
 
private static final Logger logger = Logger.getLogger(IOIODebuggerServerHandler.class.getName());
 
static final ChannelGroup channels = new DefaultChannelGroup();
 
private ServerHelper helperClass;
private boolean clientConnected;
public void setServerHelper(ServerHelper helper) {
helperClass = helper;
}
@Override
public void handleUpstream(ChannelHandlerContext ctx, ChannelEvent e)
throws Exception {
if (e instanceof ChannelStateEvent) {
logger.info(e.toString());
}
super.handleUpstream(ctx, e);
}
 
public void broadcast(TrackingMessage msg) {
for (Channel c : channels) {
c.write(msg);
}
}
@Override
public void channelConnected(ChannelHandlerContext ctx, ChannelStateEvent e)
throws Exception {
 
channels.add(e.getChannel());
}
 
@Override
public void channelDisconnected(ChannelHandlerContext ctx, ChannelStateEvent e) throws Exception {
// Unregister the channel from the global channel list
// so the channel does not receive messages anymore.
channels.remove(e.getChannel());
clientConnected = false;
}
 
@Override
public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) {
TrackingMessage tmsg = (TrackingMessage) e.getMessage();
List<Message> msgList;
// Handle each message depending on the type
switch (tmsg.getType()) {
case 10:
// If there are no clients connected, reply with an ok reponse
if (!clientConnected) {
System.out.println("No clients currently connected, allowing connection");
clientConnected = true;
TrackingMessage newMsg = TrackingMessage.newBuilder()
.setId(0)
.setType(11)
.build();
e.getChannel().write(newMsg);
// Otherwise reply with an error response
} else {
System.out.println("Client currently connected, rejecting connection");
TrackingMessage newMsg = TrackingMessage.newBuilder()
.setId(0)
.setType(12)
.build();
e.getChannel().write(newMsg);
}
break;
case 50:
msgList = tmsg.getMessageList();
for (Message msg : msgList) {
if (msg.getType().compareTo("InAnalog") == 0) {
helperClass.AddNewAnalogIn(msg.getPin(), msg.getFreq());
} else if (msg.getType().compareTo("InDigital") == 0) {
helperClass.AddNewDigitalIn(msg.getPin(), msg.getFreq(), msg.getMode());
} else if (msg.getType().compareTo("OutDigital") == 0) {
helperClass.AddNewDigitalOut(msg.getPin(), msg.getState(), msg.getBoolean());
}
}
break;
case 51:
msgList = tmsg.getMessageList();
for (Message msg : msgList) {
helperClass.StopPin(msg.getPin());
}
break;
case 52:
msgList = tmsg.getMessageList();
for (Message msg : msgList) {
helperClass.RemovePin(msg.getPin());
}
break;
case 70:
msgList = tmsg.getMessageList();
for (Message msg : msgList) {
List<Double> dataList = msg.getDataList();
helperClass.DataRecieved(msg.getPin(), dataList);
}
break;
}
}
 
@Override
public void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent e) {
logger.log(Level.WARNING, "Unexpected exception from downstream.",
e.getCause());
e.getChannel().close();
}
/** Queries if clients are currently connected to the server
*
* @return true if there are clients connected, false otherwise
* */
public boolean areClientsConnected() {
return clientConnected;
}
/** Sends a command to the client to add a new analog input
*
* @param pin - Pin number to add
* @param freq - Frequency that pin should update
*/
public void sendAddNewAnalogIn(int pin, long freq) {
System.out.println("Sending command to add new analog input Pin: " + pin + " Freq: " + freq);
Builder message = Message.newBuilder()
.setPin(pin)
.setFreq(freq)
.setType("InAnalog");
TrackingMessage newMsg = TrackingMessage.newBuilder()
.setId(0)
.setType(50)
.addMessage(message)
.build();
broadcast(newMsg);
}
/** Sends a command to the client to add a new digital input
*
* @param pin - Pin number to add
* @param freq - Frequency that pin should update
* @param mode - Mode that pin should be started in [Float/Pull Up/Pull Down]
*/
public void sendAddNewDigitalIn(int pin, long freq, String mode) {
System.out.println("Sending command to add new digital input Pin: " + pin + " Freq: " + freq + "Mode: " + mode);
Builder message = Message.newBuilder()
.setPin(pin)
.setFreq(freq)
.setMode(mode)
.setType("InDigital");
TrackingMessage newMsg = TrackingMessage.newBuilder()
.setId(0)
.setType(50)
.addMessage(message)
.build();
broadcast(newMsg);
}
/** Sends a command to the client to add a new digital output
*
* @param pin - Pin number to add
* @param state - Initial state of pin [Low/High]
* @param openDrain - Option to start pin in open drain mode [true if yes, false if no]
*/
public void sendAddNewDigitalOut(int pin, String state, boolean openDrain) {
System.out.println("Sending command to add new analog input Pin: " + pin + " InitialState: " + state + " OpenDrainMode: " + openDrain);
Builder message = Message.newBuilder()
.setPin(pin)
.setState(state)
.setBoolean(openDrain)
.setType("OutDigital");
TrackingMessage newMsg = TrackingMessage.newBuilder()
.setId(0)
.setType(50)
.addMessage(message)
.build();
broadcast(newMsg);
}
/** Sends a command to the client to execute a hard reset */
public void sendHardReset() {
TrackingMessage newMsg = TrackingMessage.newBuilder()
.setId(0)
.setType(13)
.build();
broadcast(newMsg);
}
}
/Android Development/IOIODebuggerServer/src/ioio/debugger/server/IOIODebuggerServerPipelineFactory.java
0,0 → 1,65
/**************************************************************************
* Copyright 2011 Jules White
*
* Licensed 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.
***************************************************************************/
package ioio.debugger.server;
 
import static org.jboss.netty.channel.Channels.*;
 
import org.jboss.netty.channel.ChannelPipeline;
import org.jboss.netty.channel.ChannelPipelineFactory;
import org.jboss.netty.handler.codec.protobuf.ProtobufDecoder;
import org.jboss.netty.handler.codec.protobuf.ProtobufEncoder;
import org.jboss.netty.handler.codec.protobuf.ProtobufVarint32FrameDecoder;
import org.jboss.netty.handler.codec.protobuf.ProtobufVarint32LengthFieldPrepender;
 
/**
* Creates a newly configured {@link ChannelPipeline} for a new channel.
*
* @author <a href="http://www.jboss.org/netty/">The Netty Project</a>
* @author <a href="http://gleamynode.net/">Trustin Lee</a>
*
* @version $Rev: 2080 $, $Date: 2010-01-26 18:04:19 +0900 (Tue, 26 Jan 2010) $
*
*/
public class IOIODebuggerServerPipelineFactory implements ChannelPipelineFactory {
 
private IOIODebuggerServerHandler handler;
public IOIODebuggerServerPipelineFactory() {
handler = new IOIODebuggerServerHandler();
}
public ChannelPipeline getPipeline() throws Exception {
ChannelPipeline pipeline = pipeline();
 
 
pipeline.addLast("frameDecoder", new ProtobufVarint32FrameDecoder());
pipeline.addLast("protobufDecoder", new ProtobufDecoder(
NetworkIOIOProtocol.TrackingMessage.getDefaultInstance()));
 
pipeline.addLast("frameEncoder",
new ProtobufVarint32LengthFieldPrepender());
pipeline.addLast("protobufEncoder", new ProtobufEncoder());
 
// and then business logic.
pipeline.addLast("handler", handler);
 
return pipeline;
}
public IOIODebuggerServerHandler getUpstreamHandler() {
return handler;
}
}
/Android Development/IOIODebuggerServer/src/ioio/debugger/server/Main.java
0,0 → 1,63
package ioio.debugger.server;
 
import java.io.IOException;
import java.util.Timer;
import java.util.TimerTask;
 
public class Main {
 
/**
* @param args
*/
public static void main(String[] args) {
/** Dont Change **/
// Initialize and start the server
IOIODebuggerServer server = new IOIODebuggerServer(8080);
// Setup the message handler class
IOIODebuggerServerHandler msgHandler = server.getPipeline().getUpstreamHandler();
final ServerHelper msgHelper = new ServerHelper(msgHandler);
msgHandler.setServerHelper(msgHelper);
/** Dont Change **/
/** Initialize the GUI here **/
// I would suggest you pass msgHelper into your GUI so you can call its functions
/** Initialize the GUI here **/
/** Test/Example Code **/
try {
while (true) {
byte[] b = new byte[100];
System.in.read(b);
msgHelper.sendAddNewAnalogIn(40, 5000);
System.in.read(b);
msgHelper.sendAddNewAnalogIn(41, 5000);
System.in.read(b);
msgHelper.sendAddNewDigitalIn(20, 5000, "Float");
System.in.read(b);
msgHelper.sendAddNewDigitalIn(21, 5000, "Pull Up");
System.in.read(b);
msgHelper.sendAddNewDigitalIn(22, 5000, "Pull Down");
System.in.read(b);
msgHelper.sendAddNewDigitalOut(1, "Low", true);
System.in.read(b);
msgHelper.sendAddNewDigitalOut(2, "High", false);
System.in.read(b);
msgHelper.sendHardReset();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
/** Test/Example Code **/
}
 
}
/Android Development/IOIODebuggerServer/src/ioio/debugger/server/NetworkIOIOProtocol.java
0,0 → 1,1592
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: NetworkIOIOProtocol.proto
 
package ioio.debugger.server;
 
public final class NetworkIOIOProtocol {
private NetworkIOIOProtocol() {}
public static void registerAllExtensions(
com.google.protobuf.ExtensionRegistry registry) {
}
public interface TrackingMessageOrBuilder
extends com.google.protobuf.MessageOrBuilder {
// required int32 id = 1;
boolean hasId();
int getId();
// required int32 type = 2;
boolean hasType();
int getType();
// repeated .ioio.debugger.server.Message message = 3;
java.util.List<ioio.debugger.server.NetworkIOIOProtocol.Message>
getMessageList();
ioio.debugger.server.NetworkIOIOProtocol.Message getMessage(int index);
int getMessageCount();
java.util.List<? extends ioio.debugger.server.NetworkIOIOProtocol.MessageOrBuilder>
getMessageOrBuilderList();
ioio.debugger.server.NetworkIOIOProtocol.MessageOrBuilder getMessageOrBuilder(
int index);
}
public static final class TrackingMessage extends
com.google.protobuf.GeneratedMessage
implements TrackingMessageOrBuilder {
// Use TrackingMessage.newBuilder() to construct.
private TrackingMessage(Builder builder) {
super(builder);
}
private TrackingMessage(boolean noInit) {}
private static final TrackingMessage defaultInstance;
public static TrackingMessage getDefaultInstance() {
return defaultInstance;
}
public TrackingMessage getDefaultInstanceForType() {
return defaultInstance;
}
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return ioio.debugger.server.NetworkIOIOProtocol.internal_static_ioio_debugger_server_TrackingMessage_descriptor;
}
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
return ioio.debugger.server.NetworkIOIOProtocol.internal_static_ioio_debugger_server_TrackingMessage_fieldAccessorTable;
}
private int bitField0_;
// required int32 id = 1;
public static final int ID_FIELD_NUMBER = 1;
private int id_;
public boolean hasId() {
return ((bitField0_ & 0x00000001) == 0x00000001);
}
public int getId() {
return id_;
}
// required int32 type = 2;
public static final int TYPE_FIELD_NUMBER = 2;
private int type_;
public boolean hasType() {
return ((bitField0_ & 0x00000002) == 0x00000002);
}
public int getType() {
return type_;
}
// repeated .ioio.debugger.server.Message message = 3;
public static final int MESSAGE_FIELD_NUMBER = 3;
private java.util.List<ioio.debugger.server.NetworkIOIOProtocol.Message> message_;
public java.util.List<ioio.debugger.server.NetworkIOIOProtocol.Message> getMessageList() {
return message_;
}
public java.util.List<? extends ioio.debugger.server.NetworkIOIOProtocol.MessageOrBuilder>
getMessageOrBuilderList() {
return message_;
}
public int getMessageCount() {
return message_.size();
}
public ioio.debugger.server.NetworkIOIOProtocol.Message getMessage(int index) {
return message_.get(index);
}
public ioio.debugger.server.NetworkIOIOProtocol.MessageOrBuilder getMessageOrBuilder(
int index) {
return message_.get(index);
}
private void initFields() {
id_ = 0;
type_ = 0;
message_ = java.util.Collections.emptyList();
}
private byte memoizedIsInitialized = -1;
public final boolean isInitialized() {
byte isInitialized = memoizedIsInitialized;
if (isInitialized != -1) return isInitialized == 1;
if (!hasId()) {
memoizedIsInitialized = 0;
return false;
}
if (!hasType()) {
memoizedIsInitialized = 0;
return false;
}
memoizedIsInitialized = 1;
return true;
}
public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException {
getSerializedSize();
if (((bitField0_ & 0x00000001) == 0x00000001)) {
output.writeInt32(1, id_);
}
if (((bitField0_ & 0x00000002) == 0x00000002)) {
output.writeInt32(2, type_);
}
for (int i = 0; i < message_.size(); i++) {
output.writeMessage(3, message_.get(i));
}
getUnknownFields().writeTo(output);
}
private int memoizedSerializedSize = -1;
public int getSerializedSize() {
int size = memoizedSerializedSize;
if (size != -1) return size;
size = 0;
if (((bitField0_ & 0x00000001) == 0x00000001)) {
size += com.google.protobuf.CodedOutputStream
.computeInt32Size(1, id_);
}
if (((bitField0_ & 0x00000002) == 0x00000002)) {
size += com.google.protobuf.CodedOutputStream
.computeInt32Size(2, type_);
}
for (int i = 0; i < message_.size(); i++) {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(3, message_.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 ioio.debugger.server.NetworkIOIOProtocol.TrackingMessage parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data).buildParsed();
}
public static ioio.debugger.server.NetworkIOIOProtocol.TrackingMessage parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data, extensionRegistry)
.buildParsed();
}
public static ioio.debugger.server.NetworkIOIOProtocol.TrackingMessage parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data).buildParsed();
}
public static ioio.debugger.server.NetworkIOIOProtocol.TrackingMessage parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data, extensionRegistry)
.buildParsed();
}
public static ioio.debugger.server.NetworkIOIOProtocol.TrackingMessage parseFrom(java.io.InputStream input)
throws java.io.IOException {
return newBuilder().mergeFrom(input).buildParsed();
}
public static ioio.debugger.server.NetworkIOIOProtocol.TrackingMessage parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return newBuilder().mergeFrom(input, extensionRegistry)
.buildParsed();
}
public static ioio.debugger.server.NetworkIOIOProtocol.TrackingMessage parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
Builder builder = newBuilder();
if (builder.mergeDelimitedFrom(input)) {
return builder.buildParsed();
} else {
return null;
}
}
public static ioio.debugger.server.NetworkIOIOProtocol.TrackingMessage 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 ioio.debugger.server.NetworkIOIOProtocol.TrackingMessage parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return newBuilder().mergeFrom(input).buildParsed();
}
public static ioio.debugger.server.NetworkIOIOProtocol.TrackingMessage 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(ioio.debugger.server.NetworkIOIOProtocol.TrackingMessage 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 ioio.debugger.server.NetworkIOIOProtocol.TrackingMessageOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return ioio.debugger.server.NetworkIOIOProtocol.internal_static_ioio_debugger_server_TrackingMessage_descriptor;
}
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
return ioio.debugger.server.NetworkIOIOProtocol.internal_static_ioio_debugger_server_TrackingMessage_fieldAccessorTable;
}
// Construct using ioio.debugger.server.NetworkIOIOProtocol.TrackingMessage.newBuilder()
private Builder() {
maybeForceBuilderInitialization();
}
private Builder(BuilderParent parent) {
super(parent);
maybeForceBuilderInitialization();
}
private void maybeForceBuilderInitialization() {
if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
getMessageFieldBuilder();
}
}
private static Builder create() {
return new Builder();
}
public Builder clear() {
super.clear();
id_ = 0;
bitField0_ = (bitField0_ & ~0x00000001);
type_ = 0;
bitField0_ = (bitField0_ & ~0x00000002);
if (messageBuilder_ == null) {
message_ = java.util.Collections.emptyList();
bitField0_ = (bitField0_ & ~0x00000004);
} else {
messageBuilder_.clear();
}
return this;
}
public Builder clone() {
return create().mergeFrom(buildPartial());
}
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
return ioio.debugger.server.NetworkIOIOProtocol.TrackingMessage.getDescriptor();
}
public ioio.debugger.server.NetworkIOIOProtocol.TrackingMessage getDefaultInstanceForType() {
return ioio.debugger.server.NetworkIOIOProtocol.TrackingMessage.getDefaultInstance();
}
public ioio.debugger.server.NetworkIOIOProtocol.TrackingMessage build() {
ioio.debugger.server.NetworkIOIOProtocol.TrackingMessage result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(result);
}
return result;
}
private ioio.debugger.server.NetworkIOIOProtocol.TrackingMessage buildParsed()
throws com.google.protobuf.InvalidProtocolBufferException {
ioio.debugger.server.NetworkIOIOProtocol.TrackingMessage result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(
result).asInvalidProtocolBufferException();
}
return result;
}
public ioio.debugger.server.NetworkIOIOProtocol.TrackingMessage buildPartial() {
ioio.debugger.server.NetworkIOIOProtocol.TrackingMessage result = new ioio.debugger.server.NetworkIOIOProtocol.TrackingMessage(this);
int from_bitField0_ = bitField0_;
int to_bitField0_ = 0;
if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
to_bitField0_ |= 0x00000001;
}
result.id_ = id_;
if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
to_bitField0_ |= 0x00000002;
}
result.type_ = type_;
if (messageBuilder_ == null) {
if (((bitField0_ & 0x00000004) == 0x00000004)) {
message_ = java.util.Collections.unmodifiableList(message_);
bitField0_ = (bitField0_ & ~0x00000004);
}
result.message_ = message_;
} else {
result.message_ = messageBuilder_.build();
}
result.bitField0_ = to_bitField0_;
onBuilt();
return result;
}
public Builder mergeFrom(com.google.protobuf.Message other) {
if (other instanceof ioio.debugger.server.NetworkIOIOProtocol.TrackingMessage) {
return mergeFrom((ioio.debugger.server.NetworkIOIOProtocol.TrackingMessage)other);
} else {
super.mergeFrom(other);
return this;
}
}
public Builder mergeFrom(ioio.debugger.server.NetworkIOIOProtocol.TrackingMessage other) {
if (other == ioio.debugger.server.NetworkIOIOProtocol.TrackingMessage.getDefaultInstance()) return this;
if (other.hasId()) {
setId(other.getId());
}
if (other.hasType()) {
setType(other.getType());
}
if (messageBuilder_ == null) {
if (!other.message_.isEmpty()) {
if (message_.isEmpty()) {
message_ = other.message_;
bitField0_ = (bitField0_ & ~0x00000004);
} else {
ensureMessageIsMutable();
message_.addAll(other.message_);
}
onChanged();
}
} else {
if (!other.message_.isEmpty()) {
if (messageBuilder_.isEmpty()) {
messageBuilder_.dispose();
messageBuilder_ = null;
message_ = other.message_;
bitField0_ = (bitField0_ & ~0x00000004);
messageBuilder_ =
com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
getMessageFieldBuilder() : null;
} else {
messageBuilder_.addAllMessages(other.message_);
}
}
}
this.mergeUnknownFields(other.getUnknownFields());
return this;
}
public final boolean isInitialized() {
if (!hasId()) {
return false;
}
if (!hasType()) {
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(
this.getUnknownFields());
while (true) {
int tag = input.readTag();
switch (tag) {
case 0:
this.setUnknownFields(unknownFields.build());
onChanged();
return this;
default: {
if (!parseUnknownField(input, unknownFields,
extensionRegistry, tag)) {
this.setUnknownFields(unknownFields.build());
onChanged();
return this;
}
break;
}
case 8: {
bitField0_ |= 0x00000001;
id_ = input.readInt32();
break;
}
case 16: {
bitField0_ |= 0x00000002;
type_ = input.readInt32();
break;
}
case 26: {
ioio.debugger.server.NetworkIOIOProtocol.Message.Builder subBuilder = ioio.debugger.server.NetworkIOIOProtocol.Message.newBuilder();
input.readMessage(subBuilder, extensionRegistry);
addMessage(subBuilder.buildPartial());
break;
}
}
}
}
private int bitField0_;
// required int32 id = 1;
private int id_ ;
public boolean hasId() {
return ((bitField0_ & 0x00000001) == 0x00000001);
}
public int getId() {
return id_;
}
public Builder setId(int value) {
bitField0_ |= 0x00000001;
id_ = value;
onChanged();
return this;
}
public Builder clearId() {
bitField0_ = (bitField0_ & ~0x00000001);
id_ = 0;
onChanged();
return this;
}
// required int32 type = 2;
private int type_ ;
public boolean hasType() {
return ((bitField0_ & 0x00000002) == 0x00000002);
}
public int getType() {
return type_;
}
public Builder setType(int value) {
bitField0_ |= 0x00000002;
type_ = value;
onChanged();
return this;
}
public Builder clearType() {
bitField0_ = (bitField0_ & ~0x00000002);
type_ = 0;
onChanged();
return this;
}
// repeated .ioio.debugger.server.Message message = 3;
private java.util.List<ioio.debugger.server.NetworkIOIOProtocol.Message> message_ =
java.util.Collections.emptyList();
private void ensureMessageIsMutable() {
if (!((bitField0_ & 0x00000004) == 0x00000004)) {
message_ = new java.util.ArrayList<ioio.debugger.server.NetworkIOIOProtocol.Message>(message_);
bitField0_ |= 0x00000004;
}
}
private com.google.protobuf.RepeatedFieldBuilder<
ioio.debugger.server.NetworkIOIOProtocol.Message, ioio.debugger.server.NetworkIOIOProtocol.Message.Builder, ioio.debugger.server.NetworkIOIOProtocol.MessageOrBuilder> messageBuilder_;
public java.util.List<ioio.debugger.server.NetworkIOIOProtocol.Message> getMessageList() {
if (messageBuilder_ == null) {
return java.util.Collections.unmodifiableList(message_);
} else {
return messageBuilder_.getMessageList();
}
}
public int getMessageCount() {
if (messageBuilder_ == null) {
return message_.size();
} else {
return messageBuilder_.getCount();
}
}
public ioio.debugger.server.NetworkIOIOProtocol.Message getMessage(int index) {
if (messageBuilder_ == null) {
return message_.get(index);
} else {
return messageBuilder_.getMessage(index);
}
}
public Builder setMessage(
int index, ioio.debugger.server.NetworkIOIOProtocol.Message value) {
if (messageBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureMessageIsMutable();
message_.set(index, value);
onChanged();
} else {
messageBuilder_.setMessage(index, value);
}
return this;
}
public Builder setMessage(
int index, ioio.debugger.server.NetworkIOIOProtocol.Message.Builder builderForValue) {
if (messageBuilder_ == null) {
ensureMessageIsMutable();
message_.set(index, builderForValue.build());
onChanged();
} else {
messageBuilder_.setMessage(index, builderForValue.build());
}
return this;
}
public Builder addMessage(ioio.debugger.server.NetworkIOIOProtocol.Message value) {
if (messageBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureMessageIsMutable();
message_.add(value);
onChanged();
} else {
messageBuilder_.addMessage(value);
}
return this;
}
public Builder addMessage(
int index, ioio.debugger.server.NetworkIOIOProtocol.Message value) {
if (messageBuilder_ == null) {
if (value == null) {
throw new NullPointerException();
}
ensureMessageIsMutable();
message_.add(index, value);
onChanged();
} else {
messageBuilder_.addMessage(index, value);
}
return this;
}
public Builder addMessage(
ioio.debugger.server.NetworkIOIOProtocol.Message.Builder builderForValue) {
if (messageBuilder_ == null) {
ensureMessageIsMutable();
message_.add(builderForValue.build());
onChanged();
} else {
messageBuilder_.addMessage(builderForValue.build());
}
return this;
}
public Builder addMessage(
int index, ioio.debugger.server.NetworkIOIOProtocol.Message.Builder builderForValue) {
if (messageBuilder_ == null) {
ensureMessageIsMutable();
message_.add(index, builderForValue.build());
onChanged();
} else {
messageBuilder_.addMessage(index, builderForValue.build());
}
return this;
}
public Builder addAllMessage(
java.lang.Iterable<? extends ioio.debugger.server.NetworkIOIOProtocol.Message> values) {
if (messageBuilder_ == null) {
ensureMessageIsMutable();
super.addAll(values, message_);
onChanged();
} else {
messageBuilder_.addAllMessages(values);
}
return this;
}
public Builder clearMessage() {
if (messageBuilder_ == null) {
message_ = java.util.Collections.emptyList();
bitField0_ = (bitField0_ & ~0x00000004);
onChanged();
} else {
messageBuilder_.clear();
}
return this;
}
public Builder removeMessage(int index) {
if (messageBuilder_ == null) {
ensureMessageIsMutable();
message_.remove(index);
onChanged();
} else {
messageBuilder_.remove(index);
}
return this;
}
public ioio.debugger.server.NetworkIOIOProtocol.Message.Builder getMessageBuilder(
int index) {
return getMessageFieldBuilder().getBuilder(index);
}
public ioio.debugger.server.NetworkIOIOProtocol.MessageOrBuilder getMessageOrBuilder(
int index) {
if (messageBuilder_ == null) {
return message_.get(index); } else {
return messageBuilder_.getMessageOrBuilder(index);
}
}
public java.util.List<? extends ioio.debugger.server.NetworkIOIOProtocol.MessageOrBuilder>
getMessageOrBuilderList() {
if (messageBuilder_ != null) {
return messageBuilder_.getMessageOrBuilderList();
} else {
return java.util.Collections.unmodifiableList(message_);
}
}
public ioio.debugger.server.NetworkIOIOProtocol.Message.Builder addMessageBuilder() {
return getMessageFieldBuilder().addBuilder(
ioio.debugger.server.NetworkIOIOProtocol.Message.getDefaultInstance());
}
public ioio.debugger.server.NetworkIOIOProtocol.Message.Builder addMessageBuilder(
int index) {
return getMessageFieldBuilder().addBuilder(
index, ioio.debugger.server.NetworkIOIOProtocol.Message.getDefaultInstance());
}
public java.util.List<ioio.debugger.server.NetworkIOIOProtocol.Message.Builder>
getMessageBuilderList() {
return getMessageFieldBuilder().getBuilderList();
}
private com.google.protobuf.RepeatedFieldBuilder<
ioio.debugger.server.NetworkIOIOProtocol.Message, ioio.debugger.server.NetworkIOIOProtocol.Message.Builder, ioio.debugger.server.NetworkIOIOProtocol.MessageOrBuilder>
getMessageFieldBuilder() {
if (messageBuilder_ == null) {
messageBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
ioio.debugger.server.NetworkIOIOProtocol.Message, ioio.debugger.server.NetworkIOIOProtocol.Message.Builder, ioio.debugger.server.NetworkIOIOProtocol.MessageOrBuilder>(
message_,
((bitField0_ & 0x00000004) == 0x00000004),
getParentForChildren(),
isClean());
message_ = null;
}
return messageBuilder_;
}
// @@protoc_insertion_point(builder_scope:ioio.debugger.server.TrackingMessage)
}
static {
defaultInstance = new TrackingMessage(true);
defaultInstance.initFields();
}
// @@protoc_insertion_point(class_scope:ioio.debugger.server.TrackingMessage)
}
public interface MessageOrBuilder
extends com.google.protobuf.MessageOrBuilder {
// optional int32 pin = 1;
boolean hasPin();
int getPin();
// repeated double data = 2;
java.util.List<java.lang.Double> getDataList();
int getDataCount();
double getData(int index);
// optional string type = 3;
boolean hasType();
String getType();
// optional int64 freq = 4;
boolean hasFreq();
long getFreq();
// optional string mode = 5;
boolean hasMode();
String getMode();
// optional string state = 6;
boolean hasState();
String getState();
// optional bool boolean = 7;
boolean hasBoolean();
boolean getBoolean();
}
public static final class Message extends
com.google.protobuf.GeneratedMessage
implements MessageOrBuilder {
// Use Message.newBuilder() to construct.
private Message(Builder builder) {
super(builder);
}
private Message(boolean noInit) {}
private static final Message defaultInstance;
public static Message getDefaultInstance() {
return defaultInstance;
}
public Message getDefaultInstanceForType() {
return defaultInstance;
}
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return ioio.debugger.server.NetworkIOIOProtocol.internal_static_ioio_debugger_server_Message_descriptor;
}
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
return ioio.debugger.server.NetworkIOIOProtocol.internal_static_ioio_debugger_server_Message_fieldAccessorTable;
}
private int bitField0_;
// optional int32 pin = 1;
public static final int PIN_FIELD_NUMBER = 1;
private int pin_;
public boolean hasPin() {
return ((bitField0_ & 0x00000001) == 0x00000001);
}
public int getPin() {
return pin_;
}
// repeated double data = 2;
public static final int DATA_FIELD_NUMBER = 2;
private java.util.List<java.lang.Double> data_;
public java.util.List<java.lang.Double>
getDataList() {
return data_;
}
public int getDataCount() {
return data_.size();
}
public double getData(int index) {
return data_.get(index);
}
// optional string type = 3;
public static final int TYPE_FIELD_NUMBER = 3;
private java.lang.Object type_;
public boolean hasType() {
return ((bitField0_ & 0x00000002) == 0x00000002);
}
public String getType() {
java.lang.Object ref = type_;
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)) {
type_ = s;
}
return s;
}
}
private com.google.protobuf.ByteString getTypeBytes() {
java.lang.Object ref = type_;
if (ref instanceof String) {
com.google.protobuf.ByteString b =
com.google.protobuf.ByteString.copyFromUtf8((String) ref);
type_ = b;
return b;
} else {
return (com.google.protobuf.ByteString) ref;
}
}
// optional int64 freq = 4;
public static final int FREQ_FIELD_NUMBER = 4;
private long freq_;
public boolean hasFreq() {
return ((bitField0_ & 0x00000004) == 0x00000004);
}
public long getFreq() {
return freq_;
}
// optional string mode = 5;
public static final int MODE_FIELD_NUMBER = 5;
private java.lang.Object mode_;
public boolean hasMode() {
return ((bitField0_ & 0x00000008) == 0x00000008);
}
public String getMode() {
java.lang.Object ref = mode_;
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)) {
mode_ = s;
}
return s;
}
}
private com.google.protobuf.ByteString getModeBytes() {
java.lang.Object ref = mode_;
if (ref instanceof String) {
com.google.protobuf.ByteString b =
com.google.protobuf.ByteString.copyFromUtf8((String) ref);
mode_ = b;
return b;
} else {
return (com.google.protobuf.ByteString) ref;
}
}
// optional string state = 6;
public static final int STATE_FIELD_NUMBER = 6;
private java.lang.Object state_;
public boolean hasState() {
return ((bitField0_ & 0x00000010) == 0x00000010);
}
public String getState() {
java.lang.Object ref = state_;
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)) {
state_ = s;
}
return s;
}
}
private com.google.protobuf.ByteString getStateBytes() {
java.lang.Object ref = state_;
if (ref instanceof String) {
com.google.protobuf.ByteString b =
com.google.protobuf.ByteString.copyFromUtf8((String) ref);
state_ = b;
return b;
} else {
return (com.google.protobuf.ByteString) ref;
}
}
// optional bool boolean = 7;
public static final int BOOLEAN_FIELD_NUMBER = 7;
private boolean boolean_;
public boolean hasBoolean() {
return ((bitField0_ & 0x00000020) == 0x00000020);
}
public boolean getBoolean() {
return boolean_;
}
private void initFields() {
pin_ = 0;
data_ = java.util.Collections.emptyList();;
type_ = "";
freq_ = 0L;
mode_ = "";
state_ = "";
boolean_ = false;
}
private byte memoizedIsInitialized = -1;
public final boolean isInitialized() {
byte isInitialized = memoizedIsInitialized;
if (isInitialized != -1) return isInitialized == 1;
memoizedIsInitialized = 1;
return true;
}
public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException {
getSerializedSize();
if (((bitField0_ & 0x00000001) == 0x00000001)) {
output.writeInt32(1, pin_);
}
for (int i = 0; i < data_.size(); i++) {
output.writeDouble(2, data_.get(i));
}
if (((bitField0_ & 0x00000002) == 0x00000002)) {
output.writeBytes(3, getTypeBytes());
}
if (((bitField0_ & 0x00000004) == 0x00000004)) {
output.writeInt64(4, freq_);
}
if (((bitField0_ & 0x00000008) == 0x00000008)) {
output.writeBytes(5, getModeBytes());
}
if (((bitField0_ & 0x00000010) == 0x00000010)) {
output.writeBytes(6, getStateBytes());
}
if (((bitField0_ & 0x00000020) == 0x00000020)) {
output.writeBool(7, boolean_);
}
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
.computeInt32Size(1, pin_);
}
{
int dataSize = 0;
dataSize = 8 * getDataList().size();
size += dataSize;
size += 1 * getDataList().size();
}
if (((bitField0_ & 0x00000002) == 0x00000002)) {
size += com.google.protobuf.CodedOutputStream
.computeBytesSize(3, getTypeBytes());
}
if (((bitField0_ & 0x00000004) == 0x00000004)) {
size += com.google.protobuf.CodedOutputStream
.computeInt64Size(4, freq_);
}
if (((bitField0_ & 0x00000008) == 0x00000008)) {
size += com.google.protobuf.CodedOutputStream
.computeBytesSize(5, getModeBytes());
}
if (((bitField0_ & 0x00000010) == 0x00000010)) {
size += com.google.protobuf.CodedOutputStream
.computeBytesSize(6, getStateBytes());
}
if (((bitField0_ & 0x00000020) == 0x00000020)) {
size += com.google.protobuf.CodedOutputStream
.computeBoolSize(7, boolean_);
}
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 ioio.debugger.server.NetworkIOIOProtocol.Message parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data).buildParsed();
}
public static ioio.debugger.server.NetworkIOIOProtocol.Message parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data, extensionRegistry)
.buildParsed();
}
public static ioio.debugger.server.NetworkIOIOProtocol.Message parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data).buildParsed();
}
public static ioio.debugger.server.NetworkIOIOProtocol.Message parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return newBuilder().mergeFrom(data, extensionRegistry)
.buildParsed();
}
public static ioio.debugger.server.NetworkIOIOProtocol.Message parseFrom(java.io.InputStream input)
throws java.io.IOException {
return newBuilder().mergeFrom(input).buildParsed();
}
public static ioio.debugger.server.NetworkIOIOProtocol.Message parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return newBuilder().mergeFrom(input, extensionRegistry)
.buildParsed();
}
public static ioio.debugger.server.NetworkIOIOProtocol.Message parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
Builder builder = newBuilder();
if (builder.mergeDelimitedFrom(input)) {
return builder.buildParsed();
} else {
return null;
}
}
public static ioio.debugger.server.NetworkIOIOProtocol.Message 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 ioio.debugger.server.NetworkIOIOProtocol.Message parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return newBuilder().mergeFrom(input).buildParsed();
}
public static ioio.debugger.server.NetworkIOIOProtocol.Message 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(ioio.debugger.server.NetworkIOIOProtocol.Message 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 ioio.debugger.server.NetworkIOIOProtocol.MessageOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return ioio.debugger.server.NetworkIOIOProtocol.internal_static_ioio_debugger_server_Message_descriptor;
}
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
return ioio.debugger.server.NetworkIOIOProtocol.internal_static_ioio_debugger_server_Message_fieldAccessorTable;
}
// Construct using ioio.debugger.server.NetworkIOIOProtocol.Message.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();
pin_ = 0;
bitField0_ = (bitField0_ & ~0x00000001);
data_ = java.util.Collections.emptyList();;
bitField0_ = (bitField0_ & ~0x00000002);
type_ = "";
bitField0_ = (bitField0_ & ~0x00000004);
freq_ = 0L;
bitField0_ = (bitField0_ & ~0x00000008);
mode_ = "";
bitField0_ = (bitField0_ & ~0x00000010);
state_ = "";
bitField0_ = (bitField0_ & ~0x00000020);
boolean_ = false;
bitField0_ = (bitField0_ & ~0x00000040);
return this;
}
public Builder clone() {
return create().mergeFrom(buildPartial());
}
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
return ioio.debugger.server.NetworkIOIOProtocol.Message.getDescriptor();
}
public ioio.debugger.server.NetworkIOIOProtocol.Message getDefaultInstanceForType() {
return ioio.debugger.server.NetworkIOIOProtocol.Message.getDefaultInstance();
}
public ioio.debugger.server.NetworkIOIOProtocol.Message build() {
ioio.debugger.server.NetworkIOIOProtocol.Message result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(result);
}
return result;
}
private ioio.debugger.server.NetworkIOIOProtocol.Message buildParsed()
throws com.google.protobuf.InvalidProtocolBufferException {
ioio.debugger.server.NetworkIOIOProtocol.Message result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(
result).asInvalidProtocolBufferException();
}
return result;
}
public ioio.debugger.server.NetworkIOIOProtocol.Message buildPartial() {
ioio.debugger.server.NetworkIOIOProtocol.Message result = new ioio.debugger.server.NetworkIOIOProtocol.Message(this);
int from_bitField0_ = bitField0_;
int to_bitField0_ = 0;
if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
to_bitField0_ |= 0x00000001;
}
result.pin_ = pin_;
if (((bitField0_ & 0x00000002) == 0x00000002)) {
data_ = java.util.Collections.unmodifiableList(data_);
bitField0_ = (bitField0_ & ~0x00000002);
}
result.data_ = data_;
if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
to_bitField0_ |= 0x00000002;
}
result.type_ = type_;
if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
to_bitField0_ |= 0x00000004;
}
result.freq_ = freq_;
if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
to_bitField0_ |= 0x00000008;
}
result.mode_ = mode_;
if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
to_bitField0_ |= 0x00000010;
}
result.state_ = state_;
if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
to_bitField0_ |= 0x00000020;
}
result.boolean_ = boolean_;
result.bitField0_ = to_bitField0_;
onBuilt();
return result;
}
public Builder mergeFrom(com.google.protobuf.Message other) {
if (other instanceof ioio.debugger.server.NetworkIOIOProtocol.Message) {
return mergeFrom((ioio.debugger.server.NetworkIOIOProtocol.Message)other);
} else {
super.mergeFrom(other);
return this;
}
}
public Builder mergeFrom(ioio.debugger.server.NetworkIOIOProtocol.Message other) {
if (other == ioio.debugger.server.NetworkIOIOProtocol.Message.getDefaultInstance()) return this;
if (other.hasPin()) {
setPin(other.getPin());
}
if (!other.data_.isEmpty()) {
if (data_.isEmpty()) {
data_ = other.data_;
bitField0_ = (bitField0_ & ~0x00000002);
} else {
ensureDataIsMutable();
data_.addAll(other.data_);
}
onChanged();
}
if (other.hasType()) {
setType(other.getType());
}
if (other.hasFreq()) {
setFreq(other.getFreq());
}
if (other.hasMode()) {
setMode(other.getMode());
}
if (other.hasState()) {
setState(other.getState());
}
if (other.hasBoolean()) {
setBoolean(other.getBoolean());
}
this.mergeUnknownFields(other.getUnknownFields());
return this;
}
public final boolean isInitialized() {
return true;
}
public Builder mergeFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
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());
onChanged();
return this;
default: {
if (!parseUnknownField(input, unknownFields,
extensionRegistry, tag)) {
this.setUnknownFields(unknownFields.build());
onChanged();
return this;
}
break;
}
case 8: {
bitField0_ |= 0x00000001;
pin_ = input.readInt32();
break;
}
case 17: {
ensureDataIsMutable();
data_.add(input.readDouble());
break;
}
case 18: {
int length = input.readRawVarint32();
int limit = input.pushLimit(length);
while (input.getBytesUntilLimit() > 0) {
addData(input.readDouble());
}
input.popLimit(limit);
break;
}
case 26: {
bitField0_ |= 0x00000004;
type_ = input.readBytes();
break;
}
case 32: {
bitField0_ |= 0x00000008;
freq_ = input.readInt64();
break;
}
case 42: {
bitField0_ |= 0x00000010;
mode_ = input.readBytes();
break;
}
case 50: {
bitField0_ |= 0x00000020;
state_ = input.readBytes();
break;
}
case 56: {
bitField0_ |= 0x00000040;
boolean_ = input.readBool();
break;
}
}
}
}
private int bitField0_;
// optional int32 pin = 1;
private int pin_ ;
public boolean hasPin() {
return ((bitField0_ & 0x00000001) == 0x00000001);
}
public int getPin() {
return pin_;
}
public Builder setPin(int value) {
bitField0_ |= 0x00000001;
pin_ = value;
onChanged();
return this;
}
public Builder clearPin() {
bitField0_ = (bitField0_ & ~0x00000001);
pin_ = 0;
onChanged();
return this;
}
// repeated double data = 2;
private java.util.List<java.lang.Double> data_ = java.util.Collections.emptyList();;
private void ensureDataIsMutable() {
if (!((bitField0_ & 0x00000002) == 0x00000002)) {
data_ = new java.util.ArrayList<java.lang.Double>(data_);
bitField0_ |= 0x00000002;
}
}
public java.util.List<java.lang.Double>
getDataList() {
return java.util.Collections.unmodifiableList(data_);
}
public int getDataCount() {
return data_.size();
}
public double getData(int index) {
return data_.get(index);
}
public Builder setData(
int index, double value) {
ensureDataIsMutable();
data_.set(index, value);
onChanged();
return this;
}
public Builder addData(double value) {
ensureDataIsMutable();
data_.add(value);
onChanged();
return this;
}
public Builder addAllData(
java.lang.Iterable<? extends java.lang.Double> values) {
ensureDataIsMutable();
super.addAll(values, data_);
onChanged();
return this;
}
public Builder clearData() {
data_ = java.util.Collections.emptyList();;
bitField0_ = (bitField0_ & ~0x00000002);
onChanged();
return this;
}
// optional string type = 3;
private java.lang.Object type_ = "";
public boolean hasType() {
return ((bitField0_ & 0x00000004) == 0x00000004);
}
public String getType() {
java.lang.Object ref = type_;
if (!(ref instanceof String)) {
String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
type_ = s;
return s;
} else {
return (String) ref;
}
}
public Builder setType(String value) {
if (value == null) {
throw new NullPointerException();
}
bitField0_ |= 0x00000004;
type_ = value;
onChanged();
return this;
}
public Builder clearType() {
bitField0_ = (bitField0_ & ~0x00000004);
type_ = getDefaultInstance().getType();
onChanged();
return this;
}
void setType(com.google.protobuf.ByteString value) {
bitField0_ |= 0x00000004;
type_ = value;
onChanged();
}
// optional int64 freq = 4;
private long freq_ ;
public boolean hasFreq() {
return ((bitField0_ & 0x00000008) == 0x00000008);
}
public long getFreq() {
return freq_;
}
public Builder setFreq(long value) {
bitField0_ |= 0x00000008;
freq_ = value;
onChanged();
return this;
}
public Builder clearFreq() {
bitField0_ = (bitField0_ & ~0x00000008);
freq_ = 0L;
onChanged();
return this;
}
// optional string mode = 5;
private java.lang.Object mode_ = "";
public boolean hasMode() {
return ((bitField0_ & 0x00000010) == 0x00000010);
}
public String getMode() {
java.lang.Object ref = mode_;
if (!(ref instanceof String)) {
String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
mode_ = s;
return s;
} else {
return (String) ref;
}
}
public Builder setMode(String value) {
if (value == null) {
throw new NullPointerException();
}
bitField0_ |= 0x00000010;
mode_ = value;
onChanged();
return this;
}
public Builder clearMode() {
bitField0_ = (bitField0_ & ~0x00000010);
mode_ = getDefaultInstance().getMode();
onChanged();
return this;
}
void setMode(com.google.protobuf.ByteString value) {
bitField0_ |= 0x00000010;
mode_ = value;
onChanged();
}
// optional string state = 6;
private java.lang.Object state_ = "";
public boolean hasState() {
return ((bitField0_ & 0x00000020) == 0x00000020);
}
public String getState() {
java.lang.Object ref = state_;
if (!(ref instanceof String)) {
String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
state_ = s;
return s;
} else {
return (String) ref;
}
}
public Builder setState(String value) {
if (value == null) {
throw new NullPointerException();
}
bitField0_ |= 0x00000020;
state_ = value;
onChanged();
return this;
}
public Builder clearState() {
bitField0_ = (bitField0_ & ~0x00000020);
state_ = getDefaultInstance().getState();
onChanged();
return this;
}
void setState(com.google.protobuf.ByteString value) {
bitField0_ |= 0x00000020;
state_ = value;
onChanged();
}
// optional bool boolean = 7;
private boolean boolean_ ;
public boolean hasBoolean() {
return ((bitField0_ & 0x00000040) == 0x00000040);
}
public boolean getBoolean() {
return boolean_;
}
public Builder setBoolean(boolean value) {
bitField0_ |= 0x00000040;
boolean_ = value;
onChanged();
return this;
}
public Builder clearBoolean() {
bitField0_ = (bitField0_ & ~0x00000040);
boolean_ = false;
onChanged();
return this;
}
// @@protoc_insertion_point(builder_scope:ioio.debugger.server.Message)
}
static {
defaultInstance = new Message(true);
defaultInstance.initFields();
}
// @@protoc_insertion_point(class_scope:ioio.debugger.server.Message)
}
private static com.google.protobuf.Descriptors.Descriptor
internal_static_ioio_debugger_server_TrackingMessage_descriptor;
private static
com.google.protobuf.GeneratedMessage.FieldAccessorTable
internal_static_ioio_debugger_server_TrackingMessage_fieldAccessorTable;
private static com.google.protobuf.Descriptors.Descriptor
internal_static_ioio_debugger_server_Message_descriptor;
private static
com.google.protobuf.GeneratedMessage.FieldAccessorTable
internal_static_ioio_debugger_server_Message_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\031NetworkIOIOProtocol.proto\022\024ioio.debugg" +
"er.server\"[\n\017TrackingMessage\022\n\n\002id\030\001 \002(\005" +
"\022\014\n\004type\030\002 \002(\005\022.\n\007message\030\003 \003(\0132\035.ioio.d" +
"ebugger.server.Message\"n\n\007Message\022\013\n\003pin" +
"\030\001 \001(\005\022\014\n\004data\030\002 \003(\001\022\014\n\004type\030\003 \001(\t\022\014\n\004fr" +
"eq\030\004 \001(\003\022\014\n\004mode\030\005 \001(\t\022\r\n\005state\030\006 \001(\t\022\017\n" +
"\007boolean\030\007 \001(\010"
};
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_ioio_debugger_server_TrackingMessage_descriptor =
getDescriptor().getMessageTypes().get(0);
internal_static_ioio_debugger_server_TrackingMessage_fieldAccessorTable = new
com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_ioio_debugger_server_TrackingMessage_descriptor,
new java.lang.String[] { "Id", "Type", "Message", },
ioio.debugger.server.NetworkIOIOProtocol.TrackingMessage.class,
ioio.debugger.server.NetworkIOIOProtocol.TrackingMessage.Builder.class);
internal_static_ioio_debugger_server_Message_descriptor =
getDescriptor().getMessageTypes().get(1);
internal_static_ioio_debugger_server_Message_fieldAccessorTable = new
com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_ioio_debugger_server_Message_descriptor,
new java.lang.String[] { "Pin", "Data", "Type", "Freq", "Mode", "State", "Boolean", },
ioio.debugger.server.NetworkIOIOProtocol.Message.class,
ioio.debugger.server.NetworkIOIOProtocol.Message.Builder.class);
return null;
}
};
com.google.protobuf.Descriptors.FileDescriptor
.internalBuildGeneratedFileFrom(descriptorData,
new com.google.protobuf.Descriptors.FileDescriptor[] {
}, assigner);
}
// @@protoc_insertion_point(outer_class_scope)
}
/Android Development/IOIODebuggerServer/src/ioio/debugger/server/NetworkIOIOProtocol.proto
0,0 → 1,17
package ioio.debugger.server;
 
message TrackingMessage {
required int32 id = 1;
required int32 type = 2;
repeated Message message = 3;
}
 
message Message {
optional int32 pin = 1;
repeated double data = 2;
optional string type = 3;
optional int64 freq = 4;
optional string mode = 5;
optional string state = 6;
optional bool boolean = 7;
}
/Android Development/IOIODebuggerServer/src/ioio/debugger/server/ServerHelper.java
0,0 → 1,65
package ioio.debugger.server;
 
import java.util.List;
 
public class ServerHelper {
 
private IOIODebuggerServerHandler msgHandler;
public ServerHelper(IOIODebuggerServerHandler handler) {
msgHandler = handler;
}
public boolean checkClientsConnected() {
return msgHandler.areClientsConnected();
}
public void AddNewAnalogIn(int pin, long freq) {
// Implement this
System.out.println("Command recieved to add new Analog In. Pin: " + pin + " Freq: " + freq);
}
public void AddNewDigitalIn(int pin, long freq, String mode) {
// Implement this
System.out.println("Command recieved to add new Digital In. Pin: " + pin + " Freq: " + freq + " Mode: " + mode);
}
public void AddNewDigitalOut(int pin, String state, boolean openDrain) {
// Implement this
System.out.println("Command recieved to add new Digital Out. Pin: " + pin + " InitialState: " + state + " OpenDrain: " + openDrain);
}
public void DataRecieved(int pin, List<Double> data) {
// Implement this
System.out.print("Data Recieved from pin: " + pin + " Data: ");
for (Double d : data)
System.out.print(d + " ");
System.out.print("\n");
}
public void StopPin(int pin) {
// Implement this
System.out.println("Command recieved to stop Pin: " + pin);
}
public void RemovePin(int pin) {
// Implement this
System.out.println("Command recieved to remove Pin: " + pin);
}
public void sendAddNewAnalogIn(int pin, long freq) {
msgHandler.sendAddNewAnalogIn(pin, freq);
}
public void sendAddNewDigitalIn(int pin, long freq, String mode) {
msgHandler.sendAddNewDigitalIn(pin, freq, mode);
}
public void sendAddNewDigitalOut(int pin, String state, boolean openDrain) {
msgHandler.sendAddNewDigitalOut(pin, state, openDrain);
}
public void sendHardReset() {
msgHandler.sendHardReset();
}
}
/Android Development/IOIODebuggerServer/src/ioio/debugger/server/build_protocol.sh
0,0 → 1,0
protoc NetworkIOIOProtocol.proto --java_out=../../../