class GeoFunctions {

    @SqlNullable
    @Description("Returns a Point interpolated along a LineString at the fraction given.")
    @ScalarFunction("line_interpolate_point")
    @SqlType(GEOMETRY_TYPE_NAME)
    public static Slice lineInterpolatePoint(
            @SqlType(GEOMETRY_TYPE_NAME) Slice input,
            @SqlType(StandardTypes.DOUBLE) double distanceFraction)
    {
        OGCGeometry geometry = deserialize(input);
        if (geometry.isEmpty()) {
            return null;
        }

        List<Point> interpolatedPoints = interpolatePoints(geometry, distanceFraction, false);
        return serialize(createFromEsriGeometry(interpolatedPoints.get(0), null));
    }

    private  GeoFunctions();

}