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

io.gatling.recorder.internal.bouncycastle.oer.its.ieee1609dot2.basetypes.Duration Maven / Gradle / Ivy

package io.gatling.recorder.internal.bouncycastle.oer.its.ieee1609dot2.basetypes;

import io.gatling.recorder.internal.bouncycastle.asn1.ASN1Choice;
import io.gatling.recorder.internal.bouncycastle.asn1.ASN1Object;
import io.gatling.recorder.internal.bouncycastle.asn1.ASN1Primitive;
import io.gatling.recorder.internal.bouncycastle.asn1.ASN1TaggedObject;
import io.gatling.recorder.internal.bouncycastle.asn1.BERTags;
import io.gatling.recorder.internal.bouncycastle.asn1.DERTaggedObject;

/**
 * 
 *     Duration ::= CHOICE {
 *         microseconds Uint16,
 *         milliseconds Uint16,
 *         seconds Uint16,
 *         minutes Uint16,
 *         hours Uint16,
 *         sixtyHours Uint16,
 *         years Uint16
 *     }
 * 
*/ public class Duration extends ASN1Object implements ASN1Choice { public static final int microseconds = 0; public static final int milliseconds = 1; public static final int seconds = 2; public static final int minutes = 3; public static final int hours = 4; public static final int sixtyHours = 5; public static final int years = 6; private final int choice; private final UINT16 duration; public Duration(int tag, UINT16 value) { this.choice = tag; this.duration = value; } private Duration(ASN1TaggedObject taggedObject) { choice = taggedObject.getTagNo(); switch (choice) { case microseconds: case milliseconds: case seconds: case minutes: case hours: case sixtyHours: case years: try { duration = UINT16.getInstance(taggedObject.getExplicitBaseObject()); } catch (Exception ioex) { throw new IllegalStateException(ioex.getMessage(), ioex); } break; default: throw new IllegalArgumentException("invalid choice value " + choice); } } public static Duration getInstance(Object o) { if (o instanceof Duration) { return (Duration)o; } if (o != null) { return new Duration(ASN1TaggedObject.getInstance(o, BERTags.CONTEXT_SPECIFIC)); } return null; } public static Duration years(UINT16 value) { return new Duration(years, value); } public static Duration sixtyHours(UINT16 value) { return new Duration(sixtyHours, value); } public static Duration hours(UINT16 value) { return new Duration(hours, value); } public static Duration minutes(UINT16 value) { return new Duration(minutes, value); } public static Duration seconds(UINT16 value) { return new Duration(seconds, value); } public static Duration milliseconds(UINT16 value) { return new Duration(milliseconds, value); } public static Duration microseconds(UINT16 value) { return new Duration(microseconds, value); } public ASN1Primitive toASN1Primitive() { return new DERTaggedObject(choice, duration); } public int getChoice() { return choice; } public UINT16 getDuration() { return duration; } @Override public String toString() { switch (choice) { case microseconds: return duration.value + "uS"; case milliseconds: return duration.value + "mS"; case seconds: return duration.value + " seconds"; case minutes: return duration.value + " minute"; case hours: return duration.value + " hours"; case sixtyHours: return duration.value + " sixty hours"; case years: return duration.value + " years"; default: return duration.value + " unknown choice"; } } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy