Saltar al contenido principal

Java

El paquete de Java lee la misma configuración .tdc y, con la misma semilla, produce la misma salida que las implementaciones de TypeScript, Python, C# y Rust: la misma garantía entre lenguajes.

Cómo obtenerlo

Una sola dependencia, desde Maven Central:

<dependency>
<groupId>io.github.nickliapin</groupId>
<artifactId>tdcv2</artifactId>
<version>0.3.2</version>
</dependency>

Con Gradle, en build.gradle.kts:

implementation("io.github.nickliapin:tdcv2:0.3.2")
Por qué esta versión puede diferir de las otras cuatro

Maven Central limita cuántas publicaciones acepta de un proyecto al mes, y este proyecto alcanza ese límite. Cuando ocurre, el jar se queda donde está mientras npm, PyPI, NuGet y crates.io avanzan, hasta que el límite se renueva y todo lo acumulado sale junto.

La coordenada de arriba es siempre el jar más reciente que está realmente en Central, así que resuelve; simplemente no siempre es el TDC más reciente. Cuando va por detrás, lo único que falta son los cambios del motor hechos desde entonces: el lenguaje de configuración, los diagnósticos y la salida de todo lo anterior no cambian, así que una configuración escrita para este jar sigue funcionando.

Los paquetes de datos iniciales viajan dentro del jar, así que esto funciona sin instalar nada más.

El panorama completo, incluido el jar aparte para la línea de comandos, está en Instalación: Maven no tiene equivalente del bin de npm, así que la línea de comandos se distribuye como su propio artefacto.

Cómo usarlo

var data = new TDC("users.tdc");
System.out.println(data.toString());

for (var row : data.iterate()) {
System.out.println(row.get("Gender"));
}

Los nombres de los métodos son un espejo de la API de TypeScript: la tabla está en los mismos nombres en todas partes, y los conjuntos de pruebas la comprueban en vez de limitarse a afirmarlo.

Un valor sin configuración

Quick sortea un solo valor desde los mismos paquetes de datos que lee una configuración: sin archivo, sin <env>, una llamada.

import io.github.nickliapin.tdc.quick.Quick;

Quick tdc = Quick.tdc();

tdc.get("person.lastName"); // Jones
tdc.get("usa.docs.ssn"); // 699209702, con sus dígitos de control reales
tdc.many("person.lastName", 5); // cinco de ellos
Quick.seeded("demo").locale("ru").get("person.lastName"); // fijado y en ruso

Aquí la dirección es una cadena, mientras que TypeScript, Python y C# la recorren como miembros. La forma con miembros necesita un método generado por dirección, y una superficie generada solo cubriría los paquetes que van dentro del jar, cuando la mayoría llega en tiempo de ejecución y get("ru.person.lastName") funciona en cuanto termina la descarga. Toda la superficie está en Un valor a la vez.