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

package org.bouncycastle.jce.provider;

import org.bouncycastle.asn1.x509.GeneralSubtree;
import org.bouncycastle.asn1.x509.GeneralName;
import org.bouncycastle.asn1.x509.NameConstraintValidatorException;
import org.bouncycastle.asn1.x500.X500Name;
import org.bouncycastle.asn1.ASN1Sequence;

public class PKIXNameConstraintValidator
{
    org.bouncycastle.asn1.x509.PKIXNameConstraintValidator validator;
    
    public PKIXNameConstraintValidator() {
        this.validator = new org.bouncycastle.asn1.x509.PKIXNameConstraintValidator();
    }
    
    @Override
    public int hashCode() {
        return this.validator.hashCode();
    }
    
    @Override
    public boolean equals(final Object o) {
        return o instanceof PKIXNameConstraintValidator && this.validator.equals(((PKIXNameConstraintValidator)o).validator);
    }
    
    public void checkPermittedDN(final ASN1Sequence asn1Sequence) throws PKIXNameConstraintValidatorException {
        try {
            this.validator.checkPermittedDN(X500Name.getInstance(asn1Sequence));
        }
        catch (final NameConstraintValidatorException ex) {
            throw new PKIXNameConstraintValidatorException(ex.getMessage(), ex);
        }
    }
    
    public void checkExcludedDN(final ASN1Sequence asn1Sequence) throws PKIXNameConstraintValidatorException {
        try {
            this.validator.checkExcludedDN(X500Name.getInstance(asn1Sequence));
        }
        catch (final NameConstraintValidatorException ex) {
            throw new PKIXNameConstraintValidatorException(ex.getMessage(), ex);
        }
    }
    
    public void checkPermitted(final GeneralName generalName) throws PKIXNameConstraintValidatorException {
        try {
            this.validator.checkPermitted(generalName);
        }
        catch (final NameConstraintValidatorException ex) {
            throw new PKIXNameConstraintValidatorException(ex.getMessage(), ex);
        }
    }
    
    public void checkExcluded(final GeneralName generalName) throws PKIXNameConstraintValidatorException {
        try {
            this.validator.checkExcluded(generalName);
        }
        catch (final NameConstraintValidatorException ex) {
            throw new PKIXNameConstraintValidatorException(ex.getMessage(), ex);
        }
    }
    
    public void intersectPermittedSubtree(final GeneralSubtree generalSubtree) {
        this.validator.intersectPermittedSubtree(generalSubtree);
    }
    
    public void intersectPermittedSubtree(final GeneralSubtree[] array) {
        this.validator.intersectPermittedSubtree(array);
    }
    
    public void intersectEmptyPermittedSubtree(final int n) {
        this.validator.intersectEmptyPermittedSubtree(n);
    }
    
    public void addExcludedSubtree(final GeneralSubtree generalSubtree) {
        this.validator.addExcludedSubtree(generalSubtree);
    }
    
    @Override
    public String toString() {
        return this.validator.toString();
    }
}
