// 
// Decompiled by Procyon v0.6.0
// 

package com.google.crypto.tink.signature;

import com.google.errorprone.annotations.Immutable;
import java.util.Objects;

public final class Ed25519Parameters extends SignatureParameters
{
    private final Variant variant;
    
    public static Ed25519Parameters create() {
        return new Ed25519Parameters(Variant.NO_PREFIX);
    }
    
    public static Ed25519Parameters create(final Variant variant) {
        return new Ed25519Parameters(variant);
    }
    
    private Ed25519Parameters(final Variant variant) {
        this.variant = variant;
    }
    
    public Variant getVariant() {
        return this.variant;
    }
    
    @Override
    public boolean equals(final Object o) {
        if (!(o instanceof Ed25519Parameters)) {
            return false;
        }
        final Ed25519Parameters that = (Ed25519Parameters)o;
        return that.getVariant() == this.getVariant();
    }
    
    @Override
    public int hashCode() {
        return Objects.hash(Ed25519Parameters.class, this.variant);
    }
    
    @Override
    public boolean hasIdRequirement() {
        return this.variant != Variant.NO_PREFIX;
    }
    
    @Override
    public String toString() {
        return "Ed25519 Parameters (variant: " + this.variant + ")";
    }
    
    @Immutable
    public static final class Variant
    {
        public static final Variant TINK;
        public static final Variant CRUNCHY;
        public static final Variant LEGACY;
        public static final Variant NO_PREFIX;
        private final String name;
        
        private Variant(final String name) {
            this.name = name;
        }
        
        @Override
        public String toString() {
            return this.name;
        }
        
        static {
            TINK = new Variant("TINK");
            CRUNCHY = new Variant("CRUNCHY");
            LEGACY = new Variant("LEGACY");
            NO_PREFIX = new Variant("NO_PREFIX");
        }
    }
}
