/*
* (c) Copyright 2010-2011 AgileBirds
*
* This file is part of OpenFlexo.
*
* OpenFlexo is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* OpenFlexo is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with OpenFlexo. If not, see <http://www.gnu.org/licenses/>.
*
*/
package org.openflexo.foundation.ontology;
import com.hp.hpl.jena.rdf.model.Literal;
public enum OntologicDataType implements W3URIDefinitions {
// TODO: see http://www.w3.org/TR/xmlschema-2/ to complete list
String {
@Override
public Class<?> getAccessedType() {
return String.class;
}
@Override
public java.lang.String getURI() {
return W3_STRING_DATATYPE_URI;
}
@Override
public Object valueFromLiteral(Literal literal) {
return literal.getString();
}
},
Integer {
@Override
public Class<?> getAccessedType() {
return Integer.class;
}
@Override
public java.lang.String getURI() {
return W3_INTEGER_DATATYPE_URI;
}
@Override
public Object valueFromLiteral(Literal literal) {
return literal.getInt();
}
},
Int {
@Override
public Class<?> getAccessedType() {
return Integer.class;
}
@Override
public java.lang.String getURI() {
return W3_INT_DATATYPE_URI;
}
@Override
public Object valueFromLiteral(Literal literal) {
return literal.getInt();
}
},
Short {
@Override
public Class<?> getAccessedType() {
return Short.class;
}
@Override
public java.lang.String getURI() {
return W3_SHORT_DATATYPE_URI;
}
@Override
public Object valueFromLiteral(Literal literal) {
return literal.getShort();
}
},
Long {
@Override
public Class<?> getAccessedType() {
return Long.class;
}
@Override
public java.lang.String getURI() {
return W3_LONG_DATATYPE_URI;
}
@Override
public Object valueFromLiteral(Literal literal) {
return literal.getLong();
}
},
Byte {
@Override
public Class<?> getAccessedType() {
return Byte.class;
}
@Override
public java.lang.String getURI() {
return W3_BYTE_DATATYPE_URI;
}
@Override
public Object valueFromLiteral(Literal literal) {
return literal.getByte();
}
},
Float {
@Override
public Class<?> getAccessedType() {
return Float.class;
}
@Override
public java.lang.String getURI() {
return W3_FLOAT_DATATYPE_URI;
}
@Override
public Object valueFromLiteral(Literal literal) {
return literal.getFloat();
}
},
Double {
@Override
public Class<?> getAccessedType() {
return Double.class;
}
@Override
public java.lang.String getURI() {
return W3_DOUBLE_DATATYPE_URI;
}
@Override
public Object valueFromLiteral(Literal literal) {
return literal.getDouble();
}
},
Boolean {
@Override
public Class<?> getAccessedType() {
return Boolean.class;
}
@Override
public java.lang.String getURI() {
return W3_BOOLEAN_DATATYPE_URI;
}
@Override
public Object valueFromLiteral(Literal literal) {
return literal.getBoolean();
}
};
public abstract Class<?> getAccessedType();
public abstract String getURI();
public abstract Object valueFromLiteral(Literal literal);
public static OntologicDataType fromURI(String uri) {
for (OntologicDataType dt : values()) {
if (dt.getURI().equals(uri)) {
return dt;
}
}
return null;
}
}