Package org.apache.solr.common.util
Class ByteArrayUtf8CharSequence
- java.lang.Object
-
- org.apache.solr.common.util.ByteArrayUtf8CharSequence
-
- All Implemented Interfaces:
CharSequence,Cloneable,Comparable<Utf8CharSequence>,Utf8CharSequence
public class ByteArrayUtf8CharSequence extends Object implements Utf8CharSequence
A mutable byte[] backed Utf8CharSequence. This is quite similar to the BytesRef of Lucene Do not alter the contents of the byte[] . it may be inconsistent with the cached String This is designed for single-threaded use
-
-
Field Summary
Fields Modifier and Type Field Description protected byte[]bufprotected inthashCodeprotected intlengthprotected intoffsetFunction<ByteArrayUtf8CharSequence,String>stringProviderprotected Stringutf16
-
Constructor Summary
Constructors Constructor Description ByteArrayUtf8CharSequence(byte[] buf, int offset, int length)ByteArrayUtf8CharSequence(String utf16)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static boolean_equals(byte[] a, int aFromIndex, int aToIndex, byte[] b, int bFromIndex, int bToIndex)Behaves like Java 9's Arrays.equalsbytebyteAt(int idx)charcharAt(int index)ByteArrayUtf8CharSequenceclone()static ObjectconvertCharSeq(Object o)static CollectionconvertCharSeq(Collection<?> vals)static Map.EntryconvertCharSeq(Map.Entry e)ByteArrayUtf8CharSequencedeepCopy()booleanequals(Object other)byte[]getBuf()StringgetStringOrNull()this is for internal use to get a cached string value.inthashCode()booleanisValid()Performs internal consistency checks.intlength()intoffset()ByteArrayUtf8CharSequencereset(byte[] bytes, int offset, int length, String str)intsize()The size of utf8 bytesCharSequencesubSequence(int start, int end)StringtoString()static booleanutf8Equals(Utf8CharSequence utf8_1, Utf8CharSequence utf8_2)intwrite(int start, byte[] buffer, int pos)Write the bytes into a buffer.-
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface java.lang.CharSequence
chars, codePoints
-
Methods inherited from interface org.apache.solr.common.util.Utf8CharSequence
compareTo, write
-
-
-
-
Field Detail
-
buf
protected byte[] buf
-
offset
protected int offset
-
hashCode
protected int hashCode
-
length
protected int length
-
utf16
protected volatile String utf16
-
stringProvider
public Function<ByteArrayUtf8CharSequence,String> stringProvider
-
-
Constructor Detail
-
ByteArrayUtf8CharSequence
public ByteArrayUtf8CharSequence(String utf16)
-
ByteArrayUtf8CharSequence
public ByteArrayUtf8CharSequence(byte[] buf, int offset, int length)
-
-
Method Detail
-
getBuf
public byte[] getBuf()
-
offset
public int offset()
-
byteAt
public byte byteAt(int idx)
- Specified by:
byteAtin interfaceUtf8CharSequence
-
getStringOrNull
public String getStringOrNull()
this is for internal use to get a cached string value. returns null if There is no cached String value
-
write
public int write(int start, byte[] buffer, int pos)Description copied from interface:Utf8CharSequenceWrite the bytes into a buffer. The objective is to avoid the local bytes being exposed to other classes if the implementation is expected to be immutable. It writes as many bytes as possible into the buffer and then return how many bytes were written. It's the responsibility of the caller to call this method repeatedly and ensure that everything is completely written- Specified by:
writein interfaceUtf8CharSequence- Parameters:
start- position from which to start writingbuffer- the buffer to which to write topos- position to start writing- Returns:
- no:of bytes written
-
size
public int size()
Description copied from interface:Utf8CharSequenceThe size of utf8 bytes- Specified by:
sizein interfaceUtf8CharSequence- Returns:
- the size
-
length
public int length()
- Specified by:
lengthin interfaceCharSequence
-
utf8Equals
public static boolean utf8Equals(Utf8CharSequence utf8_1, Utf8CharSequence utf8_2)
-
charAt
public char charAt(int index)
- Specified by:
charAtin interfaceCharSequence
-
subSequence
public CharSequence subSequence(int start, int end)
- Specified by:
subSequencein interfaceCharSequence
-
clone
public ByteArrayUtf8CharSequence clone()
- Specified by:
clonein interfaceUtf8CharSequence- Overrides:
clonein classObject
-
deepCopy
public ByteArrayUtf8CharSequence deepCopy()
-
convertCharSeq
public static Collection convertCharSeq(Collection<?> vals)
-
toString
public String toString()
- Specified by:
toStringin interfaceCharSequence- Overrides:
toStringin classObject
-
_equals
public static boolean _equals(byte[] a, int aFromIndex, int aToIndex, byte[] b, int bFromIndex, int bToIndex)Behaves like Java 9's Arrays.equals- See Also:
- Arrays.equals
-
reset
public ByteArrayUtf8CharSequence reset(byte[] bytes, int offset, int length, String str)
-
isValid
public boolean isValid()
Performs internal consistency checks. Always returns true (or throws IllegalStateException)
-
-