Рубрики
Без рубрики

datus – беглая библиотека сопоставления данных java

datus позволяет определять преобразование данных с помощью простой в использовании системы fluent builder для обработки добавления… Помеченный java, функциональный, с открытым исходным кодом.

datus позволяет определять преобразование данных с помощью простой в использовании системы fluent builder для обработки дополнительной обработки или крайних случаев. Больше никаких заводских классов котельных плит для изменяемых:

class Person {
    //getters + setters omitted for brevity
    private String firstName;
    private String lastName;
}

class PersonDTO {
    //getters + setters + empty constructor omitted for brevity
    private String firstName;
    private String lastName;
}

//the mutable API defines a mapping process by multiple getter-setter steps
Mapper mapper = Datus.forTypes(Person.class, PersonDTO.class)
    .mutable(PersonDTO::new)
    .from(Person::getFirstName).into(PersonDTO.setFirstName)
    .from(Person::getLastName)
        .given(Objects::nonNull, ln -> ln.toUpperCase()).orElse("fallback")
        .into(PersonDTO::setLastName)
    .from(/*...*/).into(/*...*/)
    .build();

и неизменяемые типы:

class Person {
    //getters + constructor omitted for brevity
    private final String firstName;
    private final String lastName;

}

class PersonDTO {
    //getters omitted for brevity
    private final String firstName;
    private final String lastName;

    public PersonDTO(String firstName, String lastName) {
        this.firstName = firstName;
        this.lastName = lastName;
    }
}

//define a building process for each constructor parameter, step by step
//the immutable API defines constructor parameters in their declaration order
Mapper mapper = Datus.forTypes(Person.class, PersonDTO.class)
    .immutable(PersonDTO::new)
    .from(Person::getFirstName).to(ConstructorParameter::bind)
    .from(Person::getLastName)
        .given(Objects::nonNull, ln -> ln.toUpperCase()).orElse("fallback")
        .to(ConstructorParameter::bind)
    .build();

Легко интегрируется с Spring и т.д. – прочтите полное руководство по использованию менее чем за 20 минут.

Оригинал: “https://dev.to/roookeee/datus-a-fluent-java-data-mapping-library-2l3c”