no.difi.sdp.client2.domain.digital_post.DigitalPost Maven / Gradle / Ivy
Show all versions of sikker-digital-post-klient-java Show documentation
package no.difi.sdp.client2.domain.digital_post;
import no.difi.sdp.client2.domain.Mottaker;
import java.util.Date;
public class DigitalPost {
private Mottaker mottaker;
private Date virkningsdato;
private boolean aapningskvittering;
private Sikkerhetsnivaa sikkerhetsnivaa = Sikkerhetsnivaa.NIVAA_4;
private String ikkeSensitivTittel;
private EpostVarsel epostVarsel;
private SmsVarsel smsVarsel;
private DigitalPost(Mottaker mottaker, String ikkeSensitivTittel) {
this.mottaker = mottaker;
this.ikkeSensitivTittel = ikkeSensitivTittel;
}
public Mottaker getMottaker() {
return mottaker;
}
public Date getVirkningsdato() {
return virkningsdato;
}
public boolean isAapningskvittering() {
return aapningskvittering;
}
public Sikkerhetsnivaa getSikkerhetsnivaa() {
return sikkerhetsnivaa;
}
public String getIkkeSensitivTittel() {
return ikkeSensitivTittel;
}
public EpostVarsel getEpostVarsel() {
return epostVarsel;
}
public SmsVarsel getSmsVarsel() {
return smsVarsel;
}
/**
* @param mottaker Mottaker av digital post.
* @param ikkeSensitivTittel Ikke-sensitiv tittel på brevet.
* Denne tittelen vil være synlig under transport av meldingen og kan vises i mottakerens postkasse selv om det ikke er autentisert med tilstrekkelig autentiseringsnivå.
*/
public static Builder builder(Mottaker mottaker, String ikkeSensitivTittel) {
return new Builder(mottaker, ikkeSensitivTittel);
}
public static class Builder {
private final DigitalPost target;
private boolean built = false;
private Builder(Mottaker mottaker, String ikkeSensitivTittel) {
target = new DigitalPost(mottaker, ikkeSensitivTittel);
}
/**
* Når brevet tilgjengeliggjøres for mottaker.
*
* Standard er nå.
*/
public Builder virkningsdato(Date virkningsdato) {
target.virkningsdato = virkningsdato;
return this;
}
/**
* Ønskes kvittering når brevet blir åpnet av mottaker?
*
* Standard er false.
*/
public Builder aapningskvittering(boolean aapningskvittering) {
target.aapningskvittering = aapningskvittering;
return this;
}
/**
* Nødvendig autentiseringsnivå som kreves av mottaker i postkassen for å åpne brevet.
*
* Standard er {@link Sikkerhetsnivaa#NIVAA_4}.
*/
public Builder sikkerhetsnivaa(Sikkerhetsnivaa sikkerhetsnivaa) {
target.sikkerhetsnivaa = sikkerhetsnivaa;
return this;
}
/**
* Minimum e-postvarsel som skal sendes til mottaker av brevet. Postkassen kan velge å sende andre varsler i tillegg.
*
* Standard er standardoppførselen til postkasseleverandøren.
*/
public Builder epostVarsel(EpostVarsel epostVarsel) {
target.epostVarsel = epostVarsel;
return this;
}
/**
* Minimum sms-varsel som skal sendes til mottaker av brevet. Postkassen kan velge å sende andre varsler i tillegg.
*
* Standard er standardoppførselen til postkasseleverandøren.
*/
public Builder smsVarsel(SmsVarsel smsVarsel) {
target.smsVarsel = smsVarsel;
return this;
}
public DigitalPost build() {
if (built) throw new IllegalStateException("Can't build twice");
built = true;
return target;
}
}
}