private T tryConvert()

in grpc-web/callout/src/main/java/com/google/apigee/callouts/util/VarResolver.java [62:88]


    private <T> T tryConvert(Object value, Class<T> clz, T defaultValue) {
        if (value == null) {
            return defaultValue;
        }

        if (clz.isAssignableFrom(value.getClass())) {
            return (T) value;
        }

        if (clz.equals(Boolean.class) &&  (value instanceof String) &&
                ("true".equalsIgnoreCase((String) value)) ||
                ("false".equalsIgnoreCase((String) value))) {
            return (T) Boolean.valueOf((String) value);
        }

        if (clz.equals(Integer.class) && (value instanceof String) &&
                ((String) value).matches("^[+-]?\\d+")) {
            return (T) Integer.valueOf((String) value);
        }

        if ((clz.equals(Float.class) || clz.equals(Double.class)) && (value instanceof String) &&
                ((String) value).matches("^[+-]?\\d+(.\\d+)?")) {
            return (T) Float.valueOf((String) value);
        }

        return defaultValue;
    }