scythe-codegen 0.20.2

Polyglot code generation backends for scythe
Documentation
[backend]
name = "java-jdbc"
language = "java"
file_extension = "java"
engine = "oracle"
description = "Java code generation targeting JDBC with Oracle (ojdbc11)"

[types.scalars]
bool = "boolean"
int16 = "short"
int32 = "int"
int64 = "long"
float32 = "float"
float64 = "double"
string = "String"
bytes = "byte[]"
uuid = "String"
decimal = "java.math.BigDecimal"
date = "java.time.LocalDateTime"
time = "java.time.LocalTime"
time_tz = "java.time.OffsetTime"
datetime = "java.time.LocalDateTime"
datetime_tz = "java.time.OffsetDateTime"
interval = "String"
json = "String"
inet = "String"

[types.containers]
# GH#192: array columns are decoded into this List<{T}> by the backend, not
# by the manifest -- java.sql.Array (JDBC) / the driver's native array shape
# (R2DBC) are turned into List<T> in java_jdbc.rs / java_r2dbc.rs, see
# jvm_common.rs. {T} still resolves through the plain scalar table, which is
# deliberately unboxed for Java (int32 -> int); the backend boxes primitives
# itself before substituting into List<>, because List<int> is not legal Java.
array = "java.util.List<{T}>"
nullable = "@Nullable {T}"
json_typed = "{T}"

[naming]
struct_case = "PascalCase"
fn_case = "camelCase"
enum_variant_case = "SCREAMING_SNAKE_CASE"
row_suffix = "Row"
sanitize_field_names = true
reserved = [
  "abstract",
  "assert",
  "boolean",
  "break",
  "byte",
  "case",
  "catch",
  "char",
  "class",
  "const",
  "continue",
  "default",
  "do",
  "double",
  "else",
  "enum",
  "extends",
  "final",
  "finally",
  "float",
  "for",
  "goto",
  "if",
  "implements",
  "import",
  "instanceof",
  "int",
  "interface",
  "long",
  "native",
  "new",
  "package",
  "private",
  "protected",
  "public",
  "return",
  "short",
  "static",
  "strictfp",
  "super",
  "switch",
  "synchronized",
  "this",
  "throw",
  "throws",
  "transient",
  "try",
  "void",
  "volatile",
  "while",
  "var",
  "yield",
  "record",
  "sealed",
  "permits",
  "true",
  "false",
  "null",
]

[imports.rules]