public class LiteralArrayIV extends AbstractLiteralIV<BigdataLiteral,Object[]>
Encoded as flags, DTE.ARRAY, array length, array. The array length is encoded using a single byte, so the maximum array length is 256 elements (empty arrays are not allowed).
LiteralExtensionIV}
,
URIExtensionIV}
,
InlineURIHandler}
,
IExtension}
,
Serialized Formflags
Constructor and Description |
---|
LiteralArrayIV(InlineLiteralIV<?,?>... ivs)
Construct an instance using the supplied inline literal IVs.
|
Modifier and Type | Method and Description |
---|---|
int |
_compareTo(IV o)
Compare two
IV s having the same intrinsic datatype. |
BigdataLiteral |
asValue(LexiconRelation lex)
This IV cannot be materialized on its own.
|
int |
byteLength()
The byte length of the encoded
IV . |
LiteralArrayIV |
clone(boolean clearCache)
Return a copy of this
IV . |
boolean |
equals(Object obj)
Return true iff the two
IV s are the same point in the same value
space. |
DTEExtension |
getDTEX()
IFF
IV.getDTE() returns DTE.Extension then this method will
report the DTEExtension value that specifies the intrinsic
datatype for this IV. |
Object[] |
getInlineValue()
We could theoretically get all the inline values from the inline IVs
and return them here.
|
InlineLiteralIV<?,?>[] |
getIVs() |
String |
getLabel()
Implement
Literal.getLabel() for logging. |
int |
hashCode()
Return a hash code based on the value of the point in the value space.
|
booleanValue, byteValue, calendarValue, decimalValue, doubleValue, floatValue, getDatatype, getLanguage, integerValue, intValue, longValue, needsMaterialization, shortValue, stringValue, toString
isInline
compareTo, encode, flags, getDTE, getDTE, getInternalValueTypeEnum, getValue, getValueCache, getVTE, getVTE, hasValue, isBigNumeric, isBNode, isExtension, isExtension, isFixedNumeric, isFloatingPointNumeric, isInline, isLiteral, isNullIV, isNumeric, isResource, isSignedNumeric, isStatement, isUnsignedNumeric, isURI, isVocabulary, setValue, toFlags
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
encode, flags, getDTE, getVTE, isBigNumeric, isBNode, isExtension, isFixedNumeric, isFloatingPointNumeric, isInline, isLiteral, isNullIV, isNumeric, isResource, isSignedNumeric, isStatement, isUnsignedNumeric, isURI, isVocabulary
compareTo
public LiteralArrayIV(InlineLiteralIV<?,?>... ivs)
ivs
- the inline literal IVspublic DTEExtension getDTEX()
IV
IV.getDTE()
returns DTE.Extension
then this method will
report the DTEExtension
value that specifies the intrinsic
datatype for this IV.getDTEX
in interface IV<BigdataLiteral,Object[]>
getDTEX
in class AbstractIV<BigdataLiteral,Object[]>
(Implement support for DTE extension types for URIs)
,
( DTEExtension for compressed timestamp)
public InlineLiteralIV<?,?>[] getIVs()
public int byteLength()
IV
IV
.public LiteralArrayIV clone(boolean clearCache)
IVCache
IV
.
Note: This method exists to defeat the hard reference from the IV
to the cached BigdataValue
in order to avoid a memory leak when
the IV
is used as the key in a weak value cache whose value is
the BigdataValue
. Therefore, certain IV
implementations
MAY return this when they are used for limited collections. The
vocabulary IVs are the primary example. For the same reason, we do not
need to recursively break the link from the IV
to the
BigdataValue
for IV
s which embed other IV
s.
clearCache
- When true
the cached reference (if any) will NOT
be set on the copy.(Thread-local
cache combined with unbounded thread pools causes effective memory
leak)
public int _compareTo(IV o)
AbstractIV
IV
s having the same intrinsic datatype._compareTo
in class AbstractIV<BigdataLiteral,Object[]>
public int hashCode()
AbstractIV
Note: The IV
implementations typically DO NOT return hash codes
that are consistent with BigdataValue#hashCode()
. Therefore you
MUST NOT mix IV
s and BigdataValue
s in the keys of a map
or the values of a set.
hashCode
in interface org.openrdf.model.Literal
hashCode
in class AbstractIV<BigdataLiteral,Object[]>
public boolean equals(Object obj)
AbstractIV
IV
s are the same point in the same value
space. Points in different value spaces (as identified by different
datatype URIs) are NOT equal even if they have the same value in the
corresponding primitive data type.
Note: The IV
implementations typically DO NOT compare equals()
with BigdataValue
s. Therefore you MUST NOT mix IV
s and
BigdataValue
s in the keys of a map or the values of a set.
equals
in interface org.openrdf.model.Literal
equals
in class AbstractIV<BigdataLiteral,Object[]>
public String getLabel()
Literal.getLabel()
for logging. Superclass uses
inline value.getLabel
in interface org.openrdf.model.Literal
getLabel
in class AbstractLiteralIV<BigdataLiteral,Object[]>
public Object[] getInlineValue() throws UnsupportedOperationException
Object
.UnsupportedOperationException
- unless the RDF value is inline.public BigdataLiteral asValue(LexiconRelation lex) throws UnsupportedOperationException
URIExtensionIV
or
LiteralExtensionIV
as the delegate in cases where the extension
mechanism needs an array of inline IVs to represent its URI or Literal
respectively.lex
- The lexicon relation (this is required in order to access the
BigdataValueFactory
for the namespace associated with
lexicon when we materialize an inline IV
).BigdataValue
.UnsupportedOperationException
- if the IV
does not represent something which can be
materialized. For example, a dummy value or a "null".Copyright © 2006–2019 SYSTAP, LLC DBA Blazegraph. All rights reserved.