Literal.java :  » RSS-RDF » sesame » org » openrdf » model » Java Open Source

Java Open Source » RSS RDF » sesame 
sesame » org » openrdf » model » Literal.java
/*
 * Copyright Aduna (http://www.aduna-software.com/) (c) 1997-2007.
 *
 * Licensed under the Aduna BSD-style license.
 */
package org.openrdf.model;

import java.math.BigDecimal;
import java.math.BigInteger;

import javax.xml.datatype.XMLGregorianCalendar;

/**
 * An RDF literal consisting of a label (the value) and optionally a language
 * tag or a datatype (but not both).
 * 
 * @author Arjohn Kampman
 */
public interface Literal extends Value {

  /**
   * Gets the label of this literal.
   * 
   * @return The literal's label.
   */
  public String getLabel();

  /**
   * Gets the language tag for this literal, normalized to lower case.
   * 
   * @return The language tag for this literal, or <tt>null</tt> if it
   *         doesn't have one.
   */
  public String getLanguage();

  /**
   * Gets the datatype for this literal.
   * 
   * @return The datatype for this literal, or <tt>null</tt> if it doesn't
   *         have one.
   */
  public URI getDatatype();

  /**
   * Compares a literal object to another object.
   * 
   * @param other
   *        The object to compare this literal to.
   * @return <tt>true</tt> if the other object is an instance of
   *         {@link Literal} and if their labels, language tags and datatypes
   *         are equal.
   */
  public boolean equals(Object other);

  /**
   * Returns the literal's hash code. The hash code of a literal is defined as
   * the hash code of its label: <tt>label.hashCode()</tt>.
   * 
   * @return A hash code for the literal.
   */
  public int hashCode();

  /**
   * Returns the <tt>byte</tt> value of this literal.
   * 
   * @return The <tt>byte value of the literal.
   * @throws NumberFormatException If the literal cannot be represented by a <tt>byte</tt>.
   */
  public byte byteValue();

  /**
   * Returns the <tt>short</tt> value of this literal.
   * 
   * @return The <tt>short</tt> value of the literal.
   * @throws NumberFormatException
   *         If the literal's label cannot be represented by a <tt>short</tt>.
   */
  public short shortValue();

  /**
   * Returns the <tt>int</tt> value of this literal.
   * 
   * @return The <tt>int</tt> value of the literal.
   * @throws NumberFormatException
   *         If the literal's label cannot be represented by a <tt>int</tt>.
   */
  public int intValue();

  /**
   * Returns the <tt>long</tt> value of this literal.
   * 
   * @return The <tt>long</tt> value of the literal.
   * @throws NumberFormatException
   *         If the literal's label cannot be represented by to a <tt>long</tt>.
   */
  public long longValue();

  /**
   * Returns the integer value of this literal.
   * 
   * @return The integer value of the literal.
   * @throws NumberFormatException
   *         If the literal's label is not a valid integer.
   */
  public BigInteger integerValue();

  /**
   * Returns the decimal value of this literal.
   * 
   * @return The decimal value of the literal.
   * @throws NumberFormatException
   *         If the literal's label is not a valid decimal.
   */
  public BigDecimal decimalValue();

  /**
   * Returns the <tt>float</tt> value of this literal.
   * 
   * @return The <tt>float</tt> value of the literal.
   * @throws NumberFormatException
   *         If the literal's label cannot be represented by a <tt>float</tt>.
   */
  public float floatValue();

  /**
   * Returns the <tt>double</tt> value of this literal.
   * 
   * @return The <tt>double</tt> value of the literal.
   * @throws NumberFormatException
   *         If the literal's label cannot be represented by a <tt>double</tt>.
   */
  public double doubleValue();

  /**
   * Returns the <tt>boolean</tt> value of this literal.
   * 
   * @return The <tt>long</tt> value of the literal.
   * @throws IllegalArgumentException
   *         If the literal's label cannot be represented by a <tt>boolean</tt>.
   */
  public boolean booleanValue();

  /**
   * Returns the {@link XMLGregorianCalendar} value of this literal. A calendar
   * representation can be given for literals whose label conforms to the
   * syntax of the following <a href="http://www.w3.org/TR/xmlschema-2/">XML
   * Schema datatypes</a>: <tt>dateTime</tt>, <tt>time</tt>,
   * <tt>date</tt>, <tt>gYearMonth</tt>, <tt>gMonthDay</tt>,
   * <tt>gYear</tt>, <tt>gMonth</tt> or <tt>gDay</tt>.
   * 
   * @return The calendar value of the literal.
   * @throws IllegalArgumentException
   *         If the literal cannot be represented by a
   *         {@link XMLGregorianCalendar}.
   */
  public XMLGregorianCalendar calendarValue();
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.