package org.bouncycastle.asn1.cmc; import org.bouncycastle.asn1.ASN1Object; import org.bouncycastle.asn1.ASN1Primitive; import org.bouncycastle.asn1.ASN1Sequence; import org.bouncycastle.asn1.ASN1TaggedObject; import org.bouncycastle.asn1.DERSequence; /** * <pre> * BodyPartPath ::= SEQUENCE SIZE (1..MAX) OF BodyPartID * </pre> */ public class BodyPartPath extends ASN1Object { private final BodyPartID[] bodyPartIDs; public static BodyPartPath getInstance( Object obj) { if (obj instanceof BodyPartPath) { return (BodyPartPath)obj; } if (obj != null) { return new BodyPartPath(ASN1Sequence.getInstance(obj)); } return null; } public static BodyPartPath getInstance( ASN1TaggedObject obj, boolean explicit) { return getInstance(ASN1Sequence.getInstance(obj, explicit)); } /** * Construct a BodyPartPath object containing one BodyPartID. * * @param bodyPartID the BodyPartID to be contained. */ public BodyPartPath( BodyPartID bodyPartID) { this.bodyPartIDs = new BodyPartID[] { bodyPartID }; } public BodyPartPath( BodyPartID[] bodyPartIDs) { this.bodyPartIDs = Utils.clone(bodyPartIDs); } private BodyPartPath( ASN1Sequence seq) { this.bodyPartIDs = Utils.toBodyPartIDArray(seq); } public BodyPartID[] getBodyPartIDs() { return Utils.clone(bodyPartIDs); } public ASN1Primitive toASN1Primitive() { return new DERSequence(bodyPartIDs); } }