| /* |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| */ |
| package org.apache.commons.rdf; |
| |
| |
| /** |
| * Represents a literal value that can be a node in an RDF Graph. |
| * Literals are used to identify values such as numbers and dates by |
| * means of a lexical representation. There are two types of literals |
| * represented by the subinterfaces {@link PlainLiteral} |
| * and {@link TypedLiteral} |
| * |
| * @author reto |
| */ |
| public interface Literal extends RdfTerm { |
| |
| /** |
| * The lexical form of this literal, represented by a <a |
| * href="http://www.unicode.org/versions/latest/">Unicode string</a>. |
| * |
| * @return The lexical form of this literal. |
| * @see <a |
| * href="http://www.w3.org/TR/rdf11-concepts/#dfn-lexical-form">RDF-1.1 |
| * Literal lexical form</a> |
| */ |
| String getLexicalForm(); |
| |
| /** |
| * The IRI identifying the datatype that determines how the lexical form |
| * maps to a literal value. |
| * |
| * @return The datatype IRI for this literal. |
| * @see <a |
| * href="http://www.w3.org/TR/rdf11-concepts/#dfn-datatype-iri">RDF-1.1 |
| * Literal datatype IRI</a> |
| */ |
| Iri getDataType(); |
| |
| /** |
| * If and only if the datatype IRI is <a |
| * href="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString" |
| * >http://www.w3.org/1999/02/22-rdf-syntax-ns#langString</a>, the language |
| * tag for this Literal is a language tag as defined by <a |
| * href="http://tools.ietf.org/html/bcp47">BCP47</a>.<br> |
| * If the datatype IRI is not <a |
| * href="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString" |
| * >http://www.w3.org/1999/02/22-rdf-syntax-ns#langString</a>, this method |
| * must null. |
| * |
| * @return The language tag of the literal or null if no language tag is defined |
| * @see <a |
| * href="http://www.w3.org/TR/rdf11-concepts/#dfn-language-tag">RDF-1.1 |
| * Literal language tag</a> |
| */ |
| public Language getLanguage(); |
| |
| /** |
| * Returns true if <code>obj</code> is an instance of |
| * <code>literal</code> that is term-equal with this, false otherwise |
| * |
| * 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. |
| * |
| * @return true if obj equals this, false otherwise. |
| */ |
| public boolean equals(Object obj); |
| |
| /** |
| * Returns the hash code of the lexical form plus the hash code of the |
| * datatype plus if the literal has a language the hash code of the |
| * language. |
| * |
| * @return hash code |
| */ |
| public int hashCode(); |
| } |