public boolean isBce() { return isBc(); }
@Override public Year fromString(String str) { return new Year(str); }
private LIT toRDFLiteral(Object o) { if (o instanceof LIT) { return (LIT) o; } UID dataType = configuration.getConverterRegistry().getDatatype(o.getClass()); return new LIT(configuration.getConverterRegistry().toString(o), dataType); }
@Test public void LocalDate() { assertEquals("2000-01-01", converter.toString(new LocalDate(2000, 1, 1))); } }
private Object convertValue(NODE node, Class<?> targetClass) { UID targetType = configuration.getConverterRegistry().getDatatype(targetClass); if (targetClass.isAssignableFrom(node.getClass())) { return node; } else if (targetType != null && node.isLiteral()) { // TODO : make sure this works also with untyped literals etc if (((LIT) node).getDatatype().equals(targetType)) { return configuration.getConverterRegistry().fromString(node.getValue(), targetClass); } else { throw new IllegalArgumentException("Literal " + node + " is not of type " + targetType); } } else if (targetType == null && node.isURI()) { return get(targetClass, node.asURI()); } else { throw new IllegalArgumentException("Node " + node + " could not be converted to " + targetClass.getName()); } }
@Test public void FromString() { assertEquals(new Year(2000), converter.fromString("2000")); }
private <T> void register(UID type, Converter<T> converter) { register(type, converter.getJavaType()); classToConverter.put(converter.getJavaType(), converter); Class<?> primitiveType = Primitives.unwrap(converter.getJavaType()); if (!primitiveType.equals(converter.getJavaType())) { register(type, primitiveType); classToConverter.put(primitiveType, converter); } }
@Test public void FromString() { assertEquals(Locale.ENGLISH, converter.fromString("en")); }
@Test public void GetJavaType() { assertEquals(Year.class, converter.getJavaType()); }
@Test public void ToStringLocale() { assertEquals("en", converter.toString(Locale.ENGLISH)); }
@SuppressWarnings("unchecked") private <RT> RT getAsProjectionValue(NODE node, Class<RT> type) { if (node.isResource()) { if (type.equals(String.class)) { // TODO : always return LID ? return (RT) session.getLID(node.asResource()).getId(); } else { return session.get(type, node.asResource()); } } else { return converterRegistry.fromString(node.getValue(), type); } }
@Override public NODE visit(Constant<?> expr, Bindings bindings) { if (expr.getType().equals(String.class)) { return new LIT(expr.getConstant().toString()); } else if (NODE.class.isAssignableFrom(expr.getType())) { return (NODE) expr.getConstant(); } else { UID datatype = ConverterRegistryImpl.DEFAULT.getDatatype(expr.getType()); String value = ConverterRegistryImpl.DEFAULT.toString(expr.getConstant()); return new LIT(value, datatype); } }
@Override public Var visit(Constant<?> expr, QueryMetadata md) { Var var = constantToVar.get(expr); if (NODE.class.isAssignableFrom(expr.getType())) { var = new Var(varNames.next(), dialect.getNode((NODE) expr.getConstant())); } else if (expr.getType().equals(String.class)) { var = new Var(varNames.next(), dialect.getNode(new LIT(expr.getConstant().toString()))); } else { UID datatype = ConverterRegistryImpl.DEFAULT.getDatatype(expr.getType()); String value = ConverterRegistryImpl.DEFAULT.toString(expr.getConstant()); var = new Var(varNames.next(), dialect.getNode(new LIT(value, datatype))); } return var; }
@Override public Var visit(Constant<?> expr, QueryMetadata md) { Var var = constantToVar.get(expr); if (var == null) { if (NODE.class.isAssignableFrom(expr.getType())) { var = new Var(varNames.next(), dialect.getNode((NODE) expr.getConstant())); } else if (expr.getType().equals(String.class)) { var = new Var(varNames.next(), dialect.getNode(new LIT(expr.getConstant().toString()))); } else { UID datatype = ConverterRegistryImpl.DEFAULT.getDatatype(expr.getType()); String value = ConverterRegistryImpl.DEFAULT.toString(expr.getConstant()); var = new Var(varNames.next(), dialect.getNode(new LIT(value, datatype))); } var.setAnonymous(true); constantToVar.put(expr, var); } return var; }
@Override public Var visit(Constant<?> expr, QueryMetadata md) { Var var = constantToVar.get(expr); if (var == null){ if (NODE.class.isAssignableFrom(expr.getType())){ var = new Var(varNames.next(), dialect.getNode((NODE)expr.getConstant())); }else if (expr.getType().equals(String.class)){ var = new Var(varNames.next(), dialect.getNode(new LIT(expr.getConstant().toString()))); }else{ UID datatype = ConverterRegistryImpl.DEFAULT.getDatatype(expr.getType()); String value = ConverterRegistryImpl.DEFAULT.toString(expr.getConstant()); var = new Var(varNames.next(), dialect.getNode(new LIT(value, datatype))); } var.setAnonymous(true); constantToVar.put(expr, var); } return var; }