AbstractParser.java
Go to the documentation of this file.
1 // Protocol Buffers - Google's data interchange format
2 // Copyright 2008 Google Inc. All rights reserved.
3 // https://developers.google.com/protocol-buffers/
4 //
5 // Redistribution and use in source and binary forms, with or without
6 // modification, are permitted provided that the following conditions are
7 // met:
8 //
9 // * Redistributions of source code must retain the above copyright
10 // notice, this list of conditions and the following disclaimer.
11 // * Redistributions in binary form must reproduce the above
12 // copyright notice, this list of conditions and the following disclaimer
13 // in the documentation and/or other materials provided with the
14 // distribution.
15 // * Neither the name of Google Inc. nor the names of its
16 // contributors may be used to endorse or promote products derived from
17 // this software without specific prior written permission.
18 //
19 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 
31 package com.google.protobuf;
32 
34 import java.io.IOException;
35 import java.io.InputStream;
36 import java.nio.ByteBuffer;
37 
48 public abstract class AbstractParser<MessageType extends MessageLite>
49  implements Parser<MessageType> {
52  if (message instanceof AbstractMessageLite) {
53  return ((AbstractMessageLite) message).newUninitializedMessageException();
54  }
56  }
57 
64  private MessageType checkMessageInitialized(MessageType message)
66  if (message != null && !message.isInitialized()) {
70  }
71  return message;
72  }
73 
74  private static final ExtensionRegistryLite EMPTY_REGISTRY =
76 
77  @Override
81  }
82 
83  @Override
84  public MessageType parseFrom(CodedInputStream input, ExtensionRegistryLite extensionRegistry)
86  return checkMessageInitialized(parsePartialFrom(input, extensionRegistry));
87  }
88 
89  @Override
92  }
93 
94  @Override
95  public MessageType parsePartialFrom(ByteString data, ExtensionRegistryLite extensionRegistry)
97  MessageType message;
98  try {
99  CodedInputStream input = data.newCodedInput();
100  message = parsePartialFrom(input, extensionRegistry);
101  try {
102  input.checkLastTagWas(0);
103  } catch (InvalidProtocolBufferException e) {
104  throw e.setUnfinishedMessage(message);
105  }
106  return message;
107  } catch (InvalidProtocolBufferException e) {
108  throw e;
109  }
110  }
111 
112  @Override
115  }
116 
117  @Override
118  public MessageType parseFrom(ByteString data, ExtensionRegistryLite extensionRegistry)
120  return checkMessageInitialized(parsePartialFrom(data, extensionRegistry));
121  }
122 
123  @Override
125  return parseFrom(data, EMPTY_REGISTRY);
126  }
127 
128  @Override
129  public MessageType parseFrom(ByteBuffer data, ExtensionRegistryLite extensionRegistry)
131  MessageType message;
132  try {
134  message = parsePartialFrom(input, extensionRegistry);
135  try {
136  input.checkLastTagWas(0);
137  } catch (InvalidProtocolBufferException e) {
138  throw e.setUnfinishedMessage(message);
139  }
140  } catch (InvalidProtocolBufferException e) {
141  throw e;
142  }
143 
145  }
146 
147  @Override
148  public MessageType parseFrom(ByteBuffer data) throws InvalidProtocolBufferException {
149  return parseFrom(data, EMPTY_REGISTRY);
150  }
151 
152  @Override
153  public MessageType parsePartialFrom(
154  byte[] data, int off, int len, ExtensionRegistryLite extensionRegistry)
156  try {
158  MessageType message = parsePartialFrom(input, extensionRegistry);
159  try {
160  input.checkLastTagWas(0);
161  } catch (InvalidProtocolBufferException e) {
162  throw e.setUnfinishedMessage(message);
163  }
164  return message;
165  } catch (InvalidProtocolBufferException e) {
166  throw e;
167  }
168  }
169 
170  @Override
171  public MessageType parsePartialFrom(byte[] data, int off, int len)
173  return parsePartialFrom(data, off, len, EMPTY_REGISTRY);
174  }
175 
176  @Override
177  public MessageType parsePartialFrom(byte[] data, ExtensionRegistryLite extensionRegistry)
179  return parsePartialFrom(data, 0, data.length, extensionRegistry);
180  }
181 
182  @Override
183  public MessageType parsePartialFrom(byte[] data) throws InvalidProtocolBufferException {
184  return parsePartialFrom(data, 0, data.length, EMPTY_REGISTRY);
185  }
186 
187  @Override
188  public MessageType parseFrom(
189  byte[] data, int off, int len, ExtensionRegistryLite extensionRegistry)
191  return checkMessageInitialized(parsePartialFrom(data, off, len, extensionRegistry));
192  }
193 
194  @Override
195  public MessageType parseFrom(byte[] data, int off, int len)
197  return parseFrom(data, off, len, EMPTY_REGISTRY);
198  }
199 
200  @Override
201  public MessageType parseFrom(byte[] data, ExtensionRegistryLite extensionRegistry)
203  return parseFrom(data, 0, data.length, extensionRegistry);
204  }
205 
206  @Override
207  public MessageType parseFrom(byte[] data) throws InvalidProtocolBufferException {
208  return parseFrom(data, EMPTY_REGISTRY);
209  }
210 
211  @Override
212  public MessageType parsePartialFrom(InputStream input, ExtensionRegistryLite extensionRegistry)
215  MessageType message = parsePartialFrom(codedInput, extensionRegistry);
216  try {
217  codedInput.checkLastTagWas(0);
218  } catch (InvalidProtocolBufferException e) {
219  throw e.setUnfinishedMessage(message);
220  }
221  return message;
222  }
223 
224  @Override
225  public MessageType parsePartialFrom(InputStream input) throws InvalidProtocolBufferException {
227  }
228 
229  @Override
230  public MessageType parseFrom(InputStream input, ExtensionRegistryLite extensionRegistry)
232  return checkMessageInitialized(parsePartialFrom(input, extensionRegistry));
233  }
234 
235  @Override
236  public MessageType parseFrom(InputStream input) throws InvalidProtocolBufferException {
237  return parseFrom(input, EMPTY_REGISTRY);
238  }
239 
240  @Override
241  public MessageType parsePartialDelimitedFrom(
242  InputStream input, ExtensionRegistryLite extensionRegistry)
244  int size;
245  try {
246  int firstByte = input.read();
247  if (firstByte == -1) {
248  return null;
249  }
251  } catch (IOException e) {
252  throw new InvalidProtocolBufferException(e);
253  }
254  InputStream limitedInput = new LimitedInputStream(input, size);
255  return parsePartialFrom(limitedInput, extensionRegistry);
256  }
257 
258  @Override
259  public MessageType parsePartialDelimitedFrom(InputStream input)
262  }
263 
264  @Override
265  public MessageType parseDelimitedFrom(InputStream input, ExtensionRegistryLite extensionRegistry)
267  return checkMessageInitialized(parsePartialDelimitedFrom(input, extensionRegistry));
268  }
269 
270  @Override
271  public MessageType parseDelimitedFrom(InputStream input) throws InvalidProtocolBufferException {
273  }
274 }
com.google.protobuf.AbstractParser.checkMessageInitialized
MessageType checkMessageInitialized(MessageType message)
Definition: AbstractParser.java:64
com.google.protobuf.AbstractParser.parsePartialDelimitedFrom
MessageType parsePartialDelimitedFrom(InputStream input, ExtensionRegistryLite extensionRegistry)
Definition: AbstractParser.java:241
com.google.protobuf.CodedInputStream.newInstance
static CodedInputStream newInstance(final InputStream input)
Definition: CodedInputStream.java:79
input
std::string input
Definition: tokenizer_unittest.cc:197
com.google.protobuf.CodedInputStream.checkLastTagWas
abstract void checkLastTagWas(final int value)
com.google.protobuf
Definition: ProtoCaliperBenchmark.java:2
com.google.protobuf.AbstractParser.parseFrom
MessageType parseFrom(InputStream input)
Definition: AbstractParser.java:236
com.google.protobuf.UninitializedMessageException
Definition: UninitializedMessageException.java:47
com.google.protobuf.AbstractParser.parseFrom
MessageType parseFrom(byte[] data, int off, int len, ExtensionRegistryLite extensionRegistry)
Definition: AbstractParser.java:188
com.google.protobuf.AbstractParser.parsePartialFrom
MessageType parsePartialFrom(byte[] data, int off, int len, ExtensionRegistryLite extensionRegistry)
Definition: AbstractParser.java:153
com.google.protobuf.UninitializedMessageException.asInvalidProtocolBufferException
InvalidProtocolBufferException asInvalidProtocolBufferException()
Definition: UninitializedMessageException.java:78
com.google.protobuf.AbstractParser.parseFrom
MessageType parseFrom(byte[] data, int off, int len)
Definition: AbstractParser.java:195
com.google.protobuf.Parser
Definition: Parser.java:47
com.google.protobuf.CodedInputStream
Definition: CodedInputStream.java:61
com.google.protobuf.AbstractParser.parsePartialFrom
MessageType parsePartialFrom(CodedInputStream input)
Definition: AbstractParser.java:78
com.google.protobuf.AbstractMessageLite.Builder
Definition: AbstractMessageLite.java:154
com.google.protobuf.AbstractParser.parseFrom
MessageType parseFrom(ByteString data)
Definition: AbstractParser.java:124
com.google.protobuf.AbstractParser.parsePartialFrom
MessageType parsePartialFrom(ByteString data)
Definition: AbstractParser.java:113
com.google.protobuf.AbstractParser.parsePartialFrom
MessageType parsePartialFrom(InputStream input, ExtensionRegistryLite extensionRegistry)
Definition: AbstractParser.java:212
com.google.protobuf.AbstractParser.parseFrom
MessageType parseFrom(CodedInputStream input)
Definition: AbstractParser.java:90
com.google.protobuf.AbstractParser.parseFrom
MessageType parseFrom(byte[] data)
Definition: AbstractParser.java:207
com.google.protobuf.AbstractMessageLite
Definition: AbstractMessageLite.java:49
size
#define size
Definition: glcorearb.h:2944
com.google.protobuf.AbstractParser.parseFrom
MessageType parseFrom(InputStream input, ExtensionRegistryLite extensionRegistry)
Definition: AbstractParser.java:230
com.google.protobuf.AbstractParser.parsePartialFrom
MessageType parsePartialFrom(byte[] data, ExtensionRegistryLite extensionRegistry)
Definition: AbstractParser.java:177
com.google.protobuf.AbstractParser.parseFrom
MessageType parseFrom(ByteBuffer data, ExtensionRegistryLite extensionRegistry)
Definition: AbstractParser.java:129
com.google.protobuf.ExtensionRegistryLite
Definition: ExtensionRegistryLite.java:70
com.google.protobuf.AbstractParser.parseDelimitedFrom
MessageType parseDelimitedFrom(InputStream input)
Definition: AbstractParser.java:271
com.google.protobuf.AbstractParser.parseFrom
MessageType parseFrom(ByteString data, ExtensionRegistryLite extensionRegistry)
Definition: AbstractParser.java:118
com.google.protobuf.AbstractMessageLite.Builder.LimitedInputStream
Definition: AbstractMessageLite.java:270
com.google.protobuf.AbstractParser.parsePartialFrom
MessageType parsePartialFrom(InputStream input)
Definition: AbstractParser.java:225
java
com.google.protobuf.AbstractParser.parseFrom
MessageType parseFrom(byte[] data, ExtensionRegistryLite extensionRegistry)
Definition: AbstractParser.java:201
com.google.protobuf.AbstractParser.parsePartialFrom
MessageType parsePartialFrom(byte[] data, int off, int len)
Definition: AbstractParser.java:171
len
int len
Definition: php/ext/google/protobuf/map.c:206
com.google.protobuf.AbstractParser.newUninitializedMessageException
UninitializedMessageException newUninitializedMessageException(MessageType message)
Definition: AbstractParser.java:51
com.google.protobuf.AbstractParser.parseFrom
MessageType parseFrom(CodedInputStream input, ExtensionRegistryLite extensionRegistry)
Definition: AbstractParser.java:84
size
GLsizeiptr size
Definition: glcorearb.h:2943
com.google.protobuf.AbstractParser.parseDelimitedFrom
MessageType parseDelimitedFrom(InputStream input, ExtensionRegistryLite extensionRegistry)
Definition: AbstractParser.java:265
com.google.protobuf.InvalidProtocolBufferException.setUnfinishedMessage
InvalidProtocolBufferException setUnfinishedMessage(MessageLite unfinishedMessage)
Definition: InvalidProtocolBufferException.java:63
com.google.protobuf.AbstractParser.parsePartialFrom
MessageType parsePartialFrom(byte[] data)
Definition: AbstractParser.java:183
com.google
com
com.google.protobuf.AbstractParser.parsePartialFrom
MessageType parsePartialFrom(ByteString data, ExtensionRegistryLite extensionRegistry)
Definition: AbstractParser.java:95
com.google.protobuf.AbstractParser
Definition: AbstractParser.java:48
data
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: glcorearb.h:2879
com.google.protobuf.InvalidProtocolBufferException
Definition: InvalidProtocolBufferException.java:41
com.google.protobuf.AbstractParser.parseFrom
MessageType parseFrom(ByteBuffer data)
Definition: AbstractParser.java:148
com.google.protobuf.AbstractParser.parsePartialDelimitedFrom
MessageType parsePartialDelimitedFrom(InputStream input)
Definition: AbstractParser.java:259
com.google.protobuf.ExtensionRegistryLite.getEmptyRegistry
static ExtensionRegistryLite getEmptyRegistry()
Definition: ExtensionRegistryLite.java:125
com.google.protobuf.CodedInputStream.readRawVarint32
abstract int readRawVarint32()
message
GLenum GLuint GLenum GLsizei const GLchar * message
Definition: glcorearb.h:2695
com.google.protobuf.MessageLite
Definition: MessageLite.java:65
com.google.protobuf.ByteString
Definition: ByteString.java:67
com.google.protobuf.AbstractParser.EMPTY_REGISTRY
static final ExtensionRegistryLite EMPTY_REGISTRY
Definition: AbstractParser.java:74


libaditof
Author(s):
autogenerated on Wed May 21 2025 02:06:47