org.jnotary.dvcs.DVCSErrorNotice.java Source code

Java tutorial

Introduction

Here is the source code for org.jnotary.dvcs.DVCSErrorNotice.java

Source

/*******************************************************************************
 * Copyright (c) 2013 aib.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the GNU Public License v3.0
 * which accompanies this distribution, and is available at
 * http://www.gnu.org/licenses/gpl.html
 * 
 * Contributors:
 *     aib - initial API and implementation
 ******************************************************************************/
package org.jnotary.dvcs;

import java.util.Enumeration;

import org.bouncycastle.asn1.ASN1EncodableVector;
import org.bouncycastle.asn1.ASN1Object;
import org.bouncycastle.asn1.ASN1Primitive;
import org.bouncycastle.asn1.ASN1Sequence;
import org.bouncycastle.asn1.DERSequence;
import org.bouncycastle.asn1.cmp.PKIStatusInfo;
import org.bouncycastle.asn1.x509.GeneralName;

/*
DVCSErrorNotice ::= SEQUENCE {
transactionStatus           PKIStatusInfo ,
transactionIdentifier       GeneralName OPTIONAL
}
*/
public class DVCSErrorNotice extends ASN1Object {
    PKIStatusInfo transactionStatus; // PKIStatusInfo
    GeneralName transactionIdentifier = null; // GeneralName OPTIONAL

    public DVCSErrorNotice(PKIStatusInfo transactionStatus) {
        this.transactionStatus = transactionStatus;
    }

    @Override
    public ASN1Primitive toASN1Primitive() {
        ASN1EncodableVector v = new ASN1EncodableVector();

        v.add(transactionStatus);
        if (transactionIdentifier != null)
            v.add(transactionIdentifier);

        return new DERSequence(v);
    }

    @SuppressWarnings("rawtypes")
    private DVCSErrorNotice(ASN1Sequence seq) {
        Enumeration e = seq.getObjects();
        transactionStatus = PKIStatusInfo.getInstance(e.nextElement());
        if (e.hasMoreElements())
            transactionIdentifier = GeneralName.getInstance(e.nextElement());
    }

    public static DVCSErrorNotice getInstance(Object obj) {
        if (obj instanceof DVCSErrorNotice) {
            return (DVCSErrorNotice) obj;
        } else if (obj != null) {
            return new DVCSErrorNotice(ASN1Sequence.getInstance(obj));
        }

        return null;
    }

    public GeneralName getTransactionIdentifier() {
        return transactionIdentifier;
    }

    public void setTransactionIdentifier(GeneralName transactionIdentifier) {
        this.transactionIdentifier = transactionIdentifier;
    }

    public PKIStatusInfo getTransactionStatus() {
        return transactionStatus;
    }
}