GeometryDescriptor gd = delegate.getGeometryDescriptor();
return wrapGeometryDescriptor(gd);
}
private GeometryDescriptor wrapGeometryDescriptor(GeometryDescriptor gd) {
GeometryType type = gd.getType();
Class<?> binding = type.getBinding();
if (MultiLineString.class.isAssignableFrom(binding)) {
GeometryType curvedType = new GeometryTypeImpl(type.getName(),
MultiCurvedGeometry.class, type.getCoordinateReferenceSystem(),
type.isIdentified(), type.isAbstract(),
type.getRestrictions(), type.getSuper(),
type.getDescription());
return new GeometryDescriptorImpl(curvedType, gd.getName(),
gd.getMinOccurs(), gd.getMaxOccurs(), gd.isNillable(),
gd.getDefaultValue());
} else if (LineString.class.isAssignableFrom(binding)) {
GeometryType curvedType = new GeometryTypeImpl(type.getName(),
CurvedGeometry.class, type.getCoordinateReferenceSystem(),
type.isIdentified(), type.isAbstract(),
type.getRestrictions(), type.getSuper(),
type.getDescription());
return new GeometryDescriptorImpl(curvedType, gd.getName(),