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 ProtobufException . invalidWireType ( ) ; } }
Reads and discards a single field given its tag value .