All Downloads are FREE. Search and download functionalities are using the official Maven repository.

no.difi.sdp.client2.domain.kvittering.KvitteringsInfo Maven / Gradle / Ivy

There is a newer version: 7.0.0-RC2
Show newest version
package no.difi.sdp.client2.domain.kvittering;

import java.time.Instant;

public class KvitteringsInfo {

    private String konversasjonsId;
    private String referanseTilMeldingId;
    private Instant tidspunkt;


    public String getKonversasjonsId() {
        return konversasjonsId;
    }

    public String getReferanseTilMeldingId() {
        return referanseTilMeldingId;
    }

    public Instant getTidspunkt() {
        return tidspunkt;
    }

    protected KvitteringsInfo(String konversasjonsId, String referanseTilMeldingId, Instant tidspunkt) {
        this.konversasjonsId = konversasjonsId;
        this.referanseTilMeldingId = referanseTilMeldingId;
        this.tidspunkt = tidspunkt;
    }

    public static Builder builder() {
        return new Builder();
    }

    public static class Builder {
        private boolean built;
        private String konversasjonsId;
        private String referanseTilMeldingId;
        private Instant tidspunkt;

        private Builder() {

        }

        public Builder konversasjonsId(String konversasjonsId) {
            this.konversasjonsId = konversasjonsId;
            return this;
        }

        public Builder referanseTilMeldingId(String referanseTilMeldingId) {
            this.referanseTilMeldingId = referanseTilMeldingId;
            return this;
        }

        public Builder tidspunkt(Instant tidspunkt) {
            this.tidspunkt = tidspunkt;
            return this;
        }

        public KvitteringsInfo build() {
            if (built) {
                throw new IllegalStateException("Kan ikke bygges flere ganger.");
            }

            if (this.tidspunkt == null || this.konversasjonsId == null || this.referanseTilMeldingId == null) {
                throw new RuntimeException("Alle felter må være initialisert for å kunne bygges.");
            }

            built = true;

            return new KvitteringsInfo(konversasjonsId, referanseTilMeldingId, tidspunkt);
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy