public interface Literal extends RDFTerm
Modifier and Type | Method and Description |
---|---|
boolean |
equals(Object other)
Check it this Literal is equal to another Literal.
|
IRI |
getDatatype()
The IRI identifying the datatype that determines how the lexical form
maps to a literal value.
|
Optional<String> |
getLanguageTag()
If and only if the datatype IRI is
http://www.w3.org/1999/02/22-rdf-syntax-ns#langString, the language
tag for this Literal is a non-empty language tag as defined by
BCP47.
If the datatype IRI is not http://www.w3.org/1999/02/22-rdf-syntax-ns#langString, this method must return Optional.empty() . |
String |
getLexicalForm()
The lexical form of this literal, represented by a
Unicode string.
|
int |
hashCode()
Calculate a hash code for this Literal.
|
ntriplesString
String getLexicalForm()
IRI getDatatype()
getLanguageTag()
must not return Optional.empty()
, and
it must return a valid
BCP47 language tag.Optional<String> getLanguageTag()
Optional.empty()
.
The value space of language tags is always in lower case; although
RDF implementations MAY convert all language tags to lower case,
safe comparisons of language tags should be done using
String.toLowerCase(Locale)
with the locale
Locale.ROOT
.
Implementation note: If your application requires Serializable
objects, it is best not to store an Optional
in a field. It is
recommended to use Optional.ofNullable(Object)
to create the
return value for this method.
Optional
language tag for this literal. If
Optional.isPresent()
returns true, the value returned by
Optional.get()
must be a non-empty language tag string
conforming to BCP47.boolean equals(Object other)
Literal term equality: Two literals are term-equal (the same RDF literal) if and only if the two lexical forms, the two datatype IRIs, and the two language tags (if any) compare equal, character by character. Thus, two literals can have the same value without being the same RDF term.As the value space for language tags is lower-space, if they are present, they MUST be compared character by character using the equivalent of
String.toLowerCase(java.util.Locale)
with
the locale Locale.ROOT
.
Implementations MUST also override hashCode()
so that two equal
Literals produce the same hash code.
equals
in interface RDFTerm
equals
in class Object
other
- Another objectObject.equals(Object)
int hashCode()
The returned hash code MUST be equal to the result of
Objects.hash(Object...)
with the arguments
getLexicalForm()
, getDatatype()
,
getLanguageTag()
.map(s->s.toLowerString(Locale.ROOT))
.
This method MUST be implemented in conjunction with
equals(Object)
so that two equal Literals produce the same hash
code.
hashCode
in interface RDFTerm
hashCode
in class Object
Object.hashCode()
,
Objects.hash(Object...)
Copyright © 2015–2018 The Apache Software Foundation. All rights reserved.