/** * Construct a StringProperty from a literal value and with the given alias, e.g. "'hello' AS greeting" * * @param literal the literal value * @param selectAs the alias to use. May be null. */ public static StringProperty literal(String literal, String selectAs) { return new StringProperty(null, SqlUtils.sanitizeStringAsLiteral(literal), selectAs, null); }
@Override protected void afterPopulateOperator(SqlBuilder builder, boolean forSqlValidation) { super.afterPopulateOperator(builder, forSqlValidation); if (escape != '\0') { builder.sql.append(" ESCAPE ").append(SqlUtils.sanitizeStringAsLiteral(Character.toString(escape))); } }
/** * Construct an EnumProperty from a literal enum value and with the given alias, e.g. "'ENUM_VAL_1' AS * greeting" * * @param literal the literal value * @param selectAs the alias to use. May be null. */ public static <T extends Enum<T>> EnumProperty<T> literal(T literal, String selectAs) { return new EnumProperty<>(null, literal == null ? "null" : SqlUtils.sanitizeStringAsLiteral(literal.name()), selectAs, null); }
/** * Convert an arbitrary object to a string. If the object itself is a {@link String}, it will be sanitized. */ static String toSanitizedString(Object value, ArgumentResolver argResolver) { value = argResolver.resolveArgument(value); if (value == null) { return "NULL"; } else if (value instanceof Double || value instanceof Float) { return Double.toString(((Number) value).doubleValue()); } else if (value instanceof Number) { return Long.toString(((Number) value).longValue()); } else if (value instanceof Boolean) { return ((Boolean) value) ? "1" : "0"; } else if (value instanceof byte[]) { return byteArrayToBlobLiteral((byte[]) value); } else { return sanitizeStringAsLiteral(String.valueOf(value)); } }
/** * Construct a StringProperty from a literal value and with the given alias, e.g. "'hello' AS greeting" * * @param literal the literal value * @param selectAs the alias to use. May be null. */ public static StringProperty literal(String literal, String selectAs) { return new StringProperty(null, SqlUtils.sanitizeStringAsLiteral(literal), selectAs, null); }
/** * Construct an EnumProperty from a literal enum value and with the given alias, e.g. "'ENUM_VAL_1' AS * greeting" * * @param literal the literal value * @param selectAs the alias to use. May be null. */ public static <T extends Enum<T>> EnumProperty<T> literal(T literal, String selectAs) { return new EnumProperty<>(null, literal == null ? "null" : SqlUtils.sanitizeStringAsLiteral(literal.name()), selectAs, null); }
@Override protected void afterPopulateOperator(SqlBuilder builder, boolean forSqlValidation) { super.afterPopulateOperator(builder, forSqlValidation); if (escape != '\0') { builder.sql.append(" ESCAPE ").append(SqlUtils.sanitizeStringAsLiteral(Character.toString(escape))); } }
/** * Convert an arbitrary object to a string. If the object itself is a {@link String}, it will be sanitized. */ static String toSanitizedString(Object value, ArgumentResolver argResolver) { value = argResolver.resolveArgument(value); if (value == null) { return "NULL"; } else if (value instanceof Double || value instanceof Float) { return Double.toString(((Number) value).doubleValue()); } else if (value instanceof Number) { return Long.toString(((Number) value).longValue()); } else if (value instanceof Boolean) { return ((Boolean) value) ? "1" : "0"; } else if (value instanceof byte[]) { return byteArrayToBlobLiteral((byte[]) value); } else { return sanitizeStringAsLiteral(String.valueOf(value)); } }