Package com.google.protobuf
Class Utf8.SafeProcessor
- java.lang.Object
-
- com.google.protobuf.Utf8.Processor
-
- com.google.protobuf.Utf8.SafeProcessor
-
- Enclosing class:
- Utf8
static final class Utf8.SafeProcessor extends Utf8.Processor
Utf8.Processorimplementation that does not use anysun.misc.Unsafemethods.
-
-
Constructor Summary
Constructors Constructor Description SafeProcessor()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) java.lang.StringdecodeUtf8(byte[] bytes, int index, int size)Decodes the given byte array slice into aString.(package private) java.lang.StringdecodeUtf8Direct(java.nio.ByteBuffer buffer, int index, int size)Decodes directByteBufferinstances intoString.(package private) intencodeUtf8(java.lang.String in, byte[] out, int offset, int length)Encodes an input character sequence (in) to UTF-8 in the target array (out).protected voidencodeUtf8Internal(java.lang.String in, java.nio.ByteBuffer out)Encodes the input character sequence to a directByteBufferinstance.booleanisValidUtf8(byte[] bytes, int index, int limit)Returnstrueif the given byte array slice is a well-formed UTF-8 byte sequence.private static booleanisValidUtf8NonAscii(byte[] bytes, int index, int limit)-
Methods inherited from class com.google.protobuf.Utf8.Processor
decodeUtf8, decodeUtf8Default, encodeUtf8, encodeUtf8Naive, encodeUtf8Naive, isValidUtf8BufferDefault, isValidUtf8BufferDirect
-
-
-
-
Method Detail
-
isValidUtf8
public boolean isValidUtf8(byte[] bytes, int index, int limit)Description copied from class:Utf8.ProcessorReturnstrueif the given byte array slice is a well-formed UTF-8 byte sequence. The range of bytes to be checked extends from indexindex, inclusive, tolimit, exclusive.- Specified by:
isValidUtf8in classUtf8.Processor
-
decodeUtf8
java.lang.String decodeUtf8(byte[] bytes, int index, int size) throws InvalidProtocolBufferExceptionDescription copied from class:Utf8.ProcessorDecodes the given byte array slice into aString.- Specified by:
decodeUtf8in classUtf8.Processor- Throws:
InvalidProtocolBufferException- if the byte array slice is not valid UTF-8
-
decodeUtf8Direct
java.lang.String decodeUtf8Direct(java.nio.ByteBuffer buffer, int index, int size) throws InvalidProtocolBufferExceptionDescription copied from class:Utf8.ProcessorDecodes directByteBufferinstances intoString.- Specified by:
decodeUtf8Directin classUtf8.Processor- Throws:
InvalidProtocolBufferException
-
encodeUtf8
int encodeUtf8(java.lang.String in, byte[] out, int offset, int length)Description copied from class:Utf8.ProcessorEncodes an input character sequence (in) to UTF-8 in the target array (out). For a string, this method is functionally identical to
but may be implemented differently for efficiency purposes.byte[] a = string.getBytes(UTF_8); System.arraycopy(a, 0, bytes, offset, a.length); return offset + a.length;Matching
String.getBytes(UTF_8)this replaces unpaired surrogates with a replacement character.To ensure sufficient space in the output buffer, either call
Utf8.encodedLength(java.lang.String)to compute the exact amount needed, or leave room forUtf8.MAX_BYTES_PER_CHAR * sequence.length(), which is the largest possible number of bytes that any input can be encoded to.- Specified by:
encodeUtf8in classUtf8.Processor- Parameters:
in- the input character sequence to be encodedout- the target arrayoffset- the starting offset inbytesto start writing atlength- the length of thebytes, starting fromoffset- Returns:
- the new offset, equivalent to
offset + Utf8.encodedLength(sequence)
-
encodeUtf8Internal
protected void encodeUtf8Internal(java.lang.String in, java.nio.ByteBuffer out)Description copied from class:Utf8.ProcessorEncodes the input character sequence to a directByteBufferinstance.- Specified by:
encodeUtf8Internalin classUtf8.Processor
-
isValidUtf8NonAscii
private static boolean isValidUtf8NonAscii(byte[] bytes, int index, int limit)
-
-