/*
* Copyright Aduna (http://www.aduna-software.com/) (c) 2007.
*
* Licensed under the Aduna BSD-style license.
*/
package org.openrdf.sail.memory.model;
import org.openrdf.model.URI;
import org.openrdf.model.vocabulary.XMLSchema;
/**
* An extension of MemLiteral that stores a numeric value to avoid parsing.
*
* @author David Huynh
* @author Arjohn Kampman
*/
public class NumericMemLiteral extends MemLiteral {
/*-----------*
* Variables *
*-----------*/
/**
*
*/
private static final long serialVersionUID = -4077489124945558638L;
private Number number;
/*--------------*
* Constructors *
*--------------*/
public NumericMemLiteral(Object creator, String label, Number number, URI datatype) {
super(creator, label, datatype);
this.number = number;
}
public NumericMemLiteral(Object creator, Number number, URI datatype) {
this(creator, number.toString(), number, datatype);
}
public NumericMemLiteral(Object creator, byte number) {
this(creator, number, XMLSchema.BYTE);
}
public NumericMemLiteral(Object creator, short number) {
this(creator, number, XMLSchema.SHORT);
}
public NumericMemLiteral(Object creator, int number) {
this(creator, number, XMLSchema.INT);
}
public NumericMemLiteral(Object creator, long n) {
this(creator, n, XMLSchema.LONG);
}
public NumericMemLiteral(Object creator, float n) {
this(creator, n, XMLSchema.FLOAT);
}
public NumericMemLiteral(Object creator, double n) {
this(creator, n, XMLSchema.DOUBLE);
}
/*---------*
* Methods *
*---------*/
@Override
public byte byteValue()
{
return number.byteValue();
}
@Override
public short shortValue()
{
return number.shortValue();
}
@Override
public int intValue()
{
return number.intValue();
}
@Override
public long longValue()
{
return number.longValue();
}
@Override
public float floatValue()
{
return number.floatValue();
}
@Override
public double doubleValue()
{
return number.doubleValue();
}
}