@Override public IRI process(Object... values) { Object value = values[0]; if (value instanceof Literal) { return ((Literal) value).getDataType(); } return null; } };
private boolean isDataTypeLiteral(RDFTerm resource){ return resource instanceof Literal && !STRING_DATATYPES.contains(((Literal)resource).getDataType()); }
private boolean isDataTypeLiteral(RDFTerm resource){ return resource instanceof Literal && !STRING_DATATYPES.contains(((Literal)resource).getDataType()); }
@Override public Integer createObject(Literal literal) { if (!decimalTypes.contains(literal.getDataType())) { throw new InvalidLiteralTypeException(Integer.class, literal.getDataType()); } return new Integer(literal.getLexicalForm()); } }
@Override public Long createObject(Literal literal) { if (!decimalTypes.contains(literal.getDataType())) { throw new InvalidLiteralTypeException(Long.class, literal.getDataType()); } return new Long(literal.getLexicalForm()); } }
@Override public URI getLiteralType(RDFTerm resource) { if (resource instanceof Literal) { IRI type = ((Literal) resource).getDataType(); return type != null ? XSD.getXsdURI(type) : null; } else { throw new IllegalArgumentException("Value " + resource.toString() + " is not a literal"); } }
@Override public Long createObject(Literal literal) { if (!decimalTypes.contains(literal.getDataType())) { throw new InvalidLiteralTypeException(Long.class, literal.getDataType()); } return new Long(literal.getLexicalForm()); } }
@Override public Float createObject(Literal literal) { if (!literal.getDataType().equals(xsdFloat)) { throw new InvalidLiteralTypeException(Float.class, literal.getDataType()); } return Float.valueOf(literal.getLexicalForm()); } }
@Override public BigInteger createObject(Literal literal) { if (!literal.getDataType().equals(xsdInteger)) { throw new InvalidLiteralTypeException(Double.class, literal.getDataType()); } return new BigInteger(literal.getLexicalForm()); } }
@Override public Boolean createObject(Literal literal) { if (literal == TRUE) return true; else if (literal == FALSE) return false; else if (!literal.getDataType().equals(booleanUri)) { throw new InvalidLiteralTypeException(Boolean.class, literal.getDataType()); } return Boolean.valueOf(literal.getLexicalForm()); } }
@Override public Double createObject(Literal literal) { if (!literal.getDataType().equals(xsdDouble)) { throw new InvalidLiteralTypeException(Double.class, literal.getDataType()); } return new Double(literal.getLexicalForm()); } }
@Override public Double createObject(Literal literal) { if (!literal.getDataType().equals(xsdDouble)) { throw new InvalidLiteralTypeException(Double.class, literal.getDataType()); } return new Double(literal.getLexicalForm()); } }
@Override public Float createObject(Literal literal) { if (!literal.getDataType().equals(xsdFloat)) { throw new InvalidLiteralTypeException(Float.class, literal.getDataType()); } return Float.valueOf(literal.getLexicalForm()); } }
@Override public BigInteger createObject(Literal literal) { if (!literal.getDataType().equals(xsdInteger)) { throw new InvalidLiteralTypeException(Double.class, literal.getDataType()); } return new BigInteger(literal.getLexicalForm()); } }
@Override public Date createObject(Literal literal) { if (!literal.getDataType().equals(dateTimeUri)) { throw new InvalidLiteralTypeException(Date.class, literal.getDataType()); } try { return DATE_FORMAT.parse(literal.getLexicalForm()); } catch (ParseException ex) { throw new RuntimeException("Exception parsing literal as date", ex); } }
@Override public Boolean createObject(Literal literal) { if (literal == TRUE) return true; else if (literal == FALSE) return false; else if (!literal.getDataType().equals(booleanUri)) { throw new InvalidLiteralTypeException(Boolean.class, literal.getDataType()); } return Boolean.valueOf(literal.getLexicalForm()); } }
@Override public String createObject(Literal literal) { if (!literal.getDataType().equals(stringUri)) { throw new InvalidLiteralTypeException(String.class, literal.getDataType()); } return literal.getLexicalForm(); } }
@Override public IRI createObject(Literal literal) { if (!literal.getDataType().equals(xsdAnyURI)) { throw new InvalidLiteralTypeException(IRI.class, literal.getDataType()); } return new IRI(literal.getLexicalForm()); } }
@Override public IRI createObject(Literal literal) { if (!literal.getDataType().equals(xsdAnyURI)) { throw new InvalidLiteralTypeException(IRI.class, literal.getDataType()); } return new IRI(literal.getLexicalForm()); } }
@Override public byte[] createObject(Literal literal) { if (!literal.getDataType().equals(base64Uri)) { throw new InvalidLiteralTypeException(byteArrayType, literal.getDataType()); } return (byte[])Base64.decode(literal.getLexicalForm()); }