package com.airlock.iam.security.certificate;

import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import java.security.KeyStore;
import java.security.KeyStoreException;
import java.security.cert.Certificate;
import java.util.Objects;

public class TrustedCertificateEntryBuilder implements KeyStoreEntryBuilder<Certificate> {
   private String alias;
   private Certificate certificate;

   public Certificate build() {
      Objects.requireNonNull(this.certificate);
      return this.certificate;
   }

   @Override
   public void addTo(KeyStore keyStore) throws KeyStoreException {
      keyStore.setCertificateEntry(this.alias, this.certificate);
   }

   @SuppressFBWarnings(justification = "generated code")
   public String alias() {
      return this.alias;
   }

   @SuppressFBWarnings(justification = "generated code")
   public Certificate certificate() {
      return this.certificate;
   }

   @SuppressFBWarnings(justification = "generated code")
   public TrustedCertificateEntryBuilder alias(String alias) {
      this.alias = alias;
      return this;
   }

   @SuppressFBWarnings(justification = "generated code")
   public TrustedCertificateEntryBuilder certificate(Certificate certificate) {
      this.certificate = certificate;
      return this;
   }
}
