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

software.amazon.cryptography.materialproviders.model.ECDSA Maven / Gradle / Ivy

// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
// Do not modify this file. This file is machine generated, and any changes to it will be overwritten.
package software.amazon.cryptography.materialproviders.model;

import java.util.Objects;
import software.amazon.cryptography.primitives.model.ECDSASignatureAlgorithm;

public class ECDSA {

  private final ECDSASignatureAlgorithm curve;

  protected ECDSA(BuilderImpl builder) {
    this.curve = builder.curve();
  }

  public ECDSASignatureAlgorithm curve() {
    return this.curve;
  }

  public Builder toBuilder() {
    return new BuilderImpl(this);
  }

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

  public interface Builder {
    Builder curve(ECDSASignatureAlgorithm curve);

    ECDSASignatureAlgorithm curve();

    ECDSA build();
  }

  static class BuilderImpl implements Builder {

    protected ECDSASignatureAlgorithm curve;

    protected BuilderImpl() {}

    protected BuilderImpl(ECDSA model) {
      this.curve = model.curve();
    }

    public Builder curve(ECDSASignatureAlgorithm curve) {
      this.curve = curve;
      return this;
    }

    public ECDSASignatureAlgorithm curve() {
      return this.curve;
    }

    public ECDSA build() {
      if (Objects.isNull(this.curve())) {
        throw new IllegalArgumentException(
          "Missing value for required field `curve`"
        );
      }
      return new ECDSA(this);
    }
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy