no.nav.apiapp.security.veilarbabac.Bruker Maven / Gradle / Ivy
package no.nav.apiapp.security.veilarbabac;
import no.nav.sbl.util.StringUtils;
import java.util.Objects;
import java.util.function.Supplier;
public class Bruker {
private String fnr, originaltFnr;
private String aktoerId, originalAktoerId;
private Supplier aktoerIdSupplier;
private Supplier fnrSupplier;
public static FnrBuilder fraFnr(String fnr) {
if (StringUtils.nullOrEmpty(fnr)) {
throw new IllegalArgumentException("fnr må ha verdi");
}
return new FnrBuilder(fnr);
}
public static AktoerIdBuilder fraAktoerId(String aktoerId) {
if (StringUtils.nullOrEmpty(aktoerId)) {
throw new IllegalArgumentException("aktoerId må ha verdi");
}
return new AktoerIdBuilder(aktoerId);
}
public String getFoedselsnummer() {
if (fnr == null) {
fnr = fnrSupplier.get();
}
return fnr;
}
public String getAktoerId() {
if (aktoerId == null) {
aktoerId = aktoerIdSupplier.get();
}
return aktoerId;
}
@Override
public String toString() {
return "Bruker{" +
"fnr='" + fnr + '\'' +
", aktoerId='" + aktoerId + '\'' +
'}';
}
// Regner bruker som lik hvis originalt fnr og/eller aktørId er like
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Bruker bruker = (Bruker) o;
return Objects.equals(originaltFnr, bruker.originaltFnr) &&
Objects.equals(originalAktoerId, bruker.originalAktoerId);
}
@Override
public int hashCode() {
return Objects.hash(originaltFnr, originalAktoerId);
}
public static class FnrBuilder {
Bruker bruker = new Bruker();
private FnrBuilder(String fnr) {
bruker.fnr = bruker.originaltFnr = fnr;
}
public Bruker medAktoerId(String aktoerId) {
if (StringUtils.nullOrEmpty(aktoerId)) {
throw new IllegalArgumentException("aktoerId må ha verdi");
}
bruker.aktoerId = bruker.originalAktoerId = aktoerId;
return bruker;
}
public Bruker medAktoerIdSupplier(Supplier aktoerIdSupplier) {
bruker.aktoerIdSupplier = aktoerIdSupplier;
return bruker;
}
}
public static class AktoerIdBuilder {
Bruker bruker = new Bruker();
private AktoerIdBuilder(String aktoerId) {
bruker.aktoerId = bruker.originalAktoerId = aktoerId;
}
public Bruker medFoedselsnummer(String fnr) {
if (StringUtils.nullOrEmpty(fnr)) {
throw new IllegalArgumentException("fnr må ha verdi");
}
bruker.fnr = bruker.originaltFnr = fnr;
return bruker;
}
public Bruker medFoedselnummerSupplier(Supplier fnrSupplier) {
bruker.fnrSupplier = fnrSupplier;
return bruker;
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy