private Value castValue(Type type, Value value) { Value newValue = value; if (!value.isNull() && type.getTypeCode() != value.getType() && TypeFactory.canBeCastTo(value.getType(), type.getTypeCode())) { newValue = value.toType(type.getTypeCode()); } return newValue; }
@Test public void testImplicitGeometryCasts() { assertTrue(TypeFactory.canBeCastTo(Type.GEOMETRYCOLLECTION, Type.GEOMETRY)); assertTrue(TypeFactory.canBeCastTo(Type.LINESTRING, Type.GEOMETRY)); assertTrue(TypeFactory.canBeCastTo(Type.MULTILINESTRING, Type.GEOMETRY)); assertTrue(TypeFactory.canBeCastTo(Type.MULTILINESTRING, Type.GEOMETRYCOLLECTION)); assertFalse(TypeFactory.canBeCastTo(Type.MULTILINESTRING, Type.LINESTRING)); assertFalse(TypeFactory.canBeCastTo(Type.POINT, Type.POLYGON)); }