NomRessurs.java
package no.nav.data.team.resource.dto;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import no.nav.data.team.resource.domain.ResourceType;
import org.apache.commons.lang3.StringUtils;
import java.time.LocalDate;
import java.util.Objects;
import java.util.stream.Stream;
@SuppressWarnings("SpellCheckingInspection")
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(exclude = {"partition", "offset"})
public class NomRessurs {
private String personident;
private String navident;
private String ressurstype;
private String fornavn;
private String etternavn;
private String epost;
private Boolean permisjon;
private LocalDate startdato;
private LocalDate sluttdato;
private int partition;
private long offset;
public String getFullName() {
return StringUtils.trimToNull(
StringUtils.trimToEmpty(fornavn) + " " + StringUtils.trimToEmpty(etternavn)
);
}
public NomRessurs addKafkaData(int partition, long offset) {
this.partition = partition;
this.offset = offset;
return this;
}
public static NomRessurs fromRessursState(RessursState ressursState) {
return NomRessurs.builder()
.personident(ressursState.personident())
.navident(ressursState.navident())
.ressurstype("EKSTERN".equals(ressursState.sektor()) ? "EKSTERN" : "INTERN")
.fornavn(String.join(" ", Stream.of(
ressursState.visningsnavn().fornavn(),
ressursState.visningsnavn().mellomnavn()
).filter(Objects::nonNull).toList()))
.etternavn(ressursState.visningsnavn().etternavn())
.startdato(ressursState.startdato())
.sluttdato(ressursState.sluttdato())
.build();
}
}