Перейти к основному содержимому

Java

Java-пакет читает тот же .tdc-конфиг и при одном и том же сиде выдаёт тот же результат, что и реализации на TypeScript, Python, C# и Rust — та же межъязыковая гарантия.

Где взять

Одна зависимость с Maven Central:

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

Gradle, в build.gradle.kts:

implementation("io.github.nickliapin:tdcv2:0.1.7")

Стартовые паки едут внутри jar, так что это работает без всякой доустановки.

Полная картина, включая отдельный jar с командной строкой, — на странице Установка. У Maven нет аналога npm-овского bin, поэтому командная строка поставляется своим самодостаточным артефактом.

Как пользоваться

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

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

Имена методов повторяют TypeScript API.

Одно значение без конфига

Quick вытягивает одно значение из тех же пакетов данных, которые читает конфиг: ни файла, ни <env>, один вызов.

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

Quick tdc = Quick.tdc();

tdc.get("person.lastName"); // Jones
tdc.get("usa.docs.ssn"); // 699209702, с настоящими контрольными цифрами
tdc.many("person.lastName", 5); // сразу пять
Quick.seeded("demo").locale("ru").get("person.lastName"); // закреплено и по-русски

Адрес здесь строка, тогда как TypeScript, Python и C# идут по нему через члены объекта. Запись через члены требует по одному сгенерированному методу на адрес, а сгенерированная поверхность покрыла бы только пакеты внутри jar — при том что большинство пакетов приходит во время работы, а get("ru.person.lastName") заработает сразу после загрузки. Вся поверхность — на странице По одному значению.