|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.bigdata.rdf.internal.impl.AbstractIV<V,T>
com.bigdata.rdf.internal.impl.AbstractInlineIV<V,T>
com.bigdata.rdf.internal.impl.literal.AbstractLiteralIV<V,T>
com.bigdata.rdf.internal.impl.literal.NumericIV<V,BigDecimal>
com.bigdata.rdf.internal.impl.literal.XSDDecimalIV<V>
public class XSDDecimalIV<V extends BigdataLiteral>
Implementation for inline xsd:decimal.
| Field Summary |
|---|
| Fields inherited from class com.bigdata.rdf.internal.impl.AbstractIV |
|---|
flags |
| Constructor Summary | |
|---|---|
XSDDecimalIV(BigDecimal value)
|
|
| Method Summary | |
|---|---|
int |
_compareTo(IV o)
Compare two IVs having the same intrinsic datatype. |
V |
asValue(LexiconRelation lex)
If the value is not already cached, then inflate an inline RDF value to a BigdataValue and cache it on a private field. |
boolean |
booleanValue()
Implement Literal.booleanValue(). |
int |
byteLength()
The byte length of the encoded IV. |
byte |
byteValue()
Implement Literal.byteValue(). |
IV<V,BigDecimal> |
clone(boolean clearCache)
Return a copy of this IV. |
BigDecimal |
decimalValue()
Implement Literal.decimalValue(). |
double |
doubleValue()
Implement Literal.doubleValue(). |
boolean |
equals(Object o)
Return true iff the two values are the same point in the same value space. |
float |
floatValue()
Implement Literal.floatValue(). |
BigDecimal |
getInlineValue()
Return the Java Object corresponding to the inline value. |
String |
getLabel()
Use toPlainString to avoid expression with exponent value that would imply xsd:double rather than xsd:decimal |
int |
hashCode()
Return the hash code of the value returned by BigDecimal.stripTrailingZeros(). |
BigInteger |
integerValue()
Implement Literal.integerValue(). |
int |
intValue()
Implement Literal.intValue(). |
long |
longValue()
Implement Literal.longValue(). |
short |
shortValue()
Implement Literal.shortValue(). |
| Methods inherited from class com.bigdata.rdf.internal.impl.literal.AbstractLiteralIV |
|---|
calendarValue, getDatatype, getLanguage, needsMaterialization, stringValue, toString |
| Methods inherited from class com.bigdata.rdf.internal.impl.AbstractInlineIV |
|---|
isInline |
| Methods inherited from class com.bigdata.rdf.internal.impl.AbstractIV |
|---|
compareTo, encode, flags, getDTE, getInternalDataTypeEnum, getInternalValueTypeEnum, getValue, getValueCache, getVTE, getVTE, hasValue, isBigNumeric, isBNode, isExtension, isExtension, isFixedNumeric, isFloatingPointNumeric, isInline, isLiteral, isNullIV, isNumeric, isResource, isSignedNumeric, isStatement, isUnsignedNumeric, isURI, isVocabulary, setValue, toFlags |
| Methods inherited from class java.lang.Object |
|---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
| Methods inherited from interface org.openrdf.model.Literal |
|---|
calendarValue, getDatatype, getLanguage |
| Methods inherited from interface org.openrdf.model.Value |
|---|
stringValue |
| Constructor Detail |
|---|
public XSDDecimalIV(BigDecimal value)
| Method Detail |
|---|
public IV<V,BigDecimal> clone(boolean clearCache)
IVCacheIV.
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 IVs which embed other IVs.
clone in interface IVCache<V extends BigdataLiteral,BigDecimal>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 final BigDecimal getInlineValue()
IVObject corresponding to the inline value.
getInlineValue in interface IV<V extends BigdataLiteral,BigDecimal>Object.public String getLabel()
getLabel in interface LiteralgetLabel in class AbstractLiteralIV<V extends BigdataLiteral,BigDecimal>public boolean booleanValue()
AbstractLiteralIVLiteral.booleanValue().
booleanValue in interface LiteralbooleanValue in class AbstractLiteralIV<V extends BigdataLiteral,BigDecimal>public byte byteValue()
AbstractLiteralIVLiteral.byteValue().
byteValue in interface LiteralbyteValue in class AbstractLiteralIV<V extends BigdataLiteral,BigDecimal>public short shortValue()
AbstractLiteralIVLiteral.shortValue().
shortValue in interface LiteralshortValue in class AbstractLiteralIV<V extends BigdataLiteral,BigDecimal>public int intValue()
AbstractLiteralIVLiteral.intValue().
intValue in interface LiteralintValue in class AbstractLiteralIV<V extends BigdataLiteral,BigDecimal>public final long longValue()
AbstractLiteralIVLiteral.longValue().
longValue in interface LiterallongValue in class AbstractLiteralIV<V extends BigdataLiteral,BigDecimal>public float floatValue()
AbstractLiteralIVLiteral.floatValue().
floatValue in interface LiteralfloatValue in class AbstractLiteralIV<V extends BigdataLiteral,BigDecimal>public double doubleValue()
AbstractLiteralIVLiteral.doubleValue().
doubleValue in interface LiteraldoubleValue in class AbstractLiteralIV<V extends BigdataLiteral,BigDecimal>public BigInteger integerValue()
AbstractLiteralIVLiteral.integerValue().
integerValue in interface LiteralintegerValue in class AbstractLiteralIV<V extends BigdataLiteral,BigDecimal>public BigDecimal decimalValue()
AbstractLiteralIVLiteral.decimalValue().
decimalValue in interface LiteraldecimalValue in class AbstractLiteralIV<V extends BigdataLiteral,BigDecimal>public V asValue(LexiconRelation lex)
IVCacheBigdataValue and cache it on a private field.
Note: Query plans are responsible for ensuring that IVs have been
materialized before operators are evaluated which invoke this method.
This pattern ensures that efficient batch operators are used to
materialize Values, and thereby avoids heavy RMI overhead in
scale-out, and provides operators which use IVCache.getValue() with a
simple method signature which does not require access to the lexicon.
Query plans are also responsible for dropping variables once they are no
longer needed or, in the case of large values and BLOBs, dropping the
cached BigdataValue when possible in order to avoid excess
network and heap overhead.
asValue in interface IVCache<V extends BigdataLiteral,BigDecimal>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.public boolean equals(Object o)
AbstractIV
equals in interface Literalequals in class AbstractIV<V extends BigdataLiteral,BigDecimal>public int hashCode()
BigDecimal.stripTrailingZeros().
Note: normalization is necessary to have a stable hash code when encoding
and decoding for much the same reason that we have to use
BigDecimal.compareTo(BigDecimal) in equals(Object).
hashCode in interface LiteralhashCode in class AbstractIV<V extends BigdataLiteral,BigDecimal>public int byteLength()
IVIV.
byteLength in interface IV<V extends BigdataLiteral,BigDecimal>public int _compareTo(IV o)
AbstractIVIVs having the same intrinsic datatype.
_compareTo in class AbstractIV<V extends BigdataLiteral,BigDecimal>
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||