The IsRequired
method has the following
signature:
public static bool IsRequired (String elemName) throws Asn1InvalidElemException
The method returns true
when the element given
by elemName
is required to be present in the given
SEQUENCE
or SET
and
false
when it is not. In the event that the named
element is not a member of the structure, the
Asn1InvalidElemException
is thrown.
The following ASN.1, taken from a slightly-modified version of the Employee sample program, provides a good example:
PersonnelRecord ::= [APPLICATION 0] IMPLICIT SET { name Name, title [0] IA5String, number EmployeeNumber, dateOfHire [1] Date, nameOfSpouse [2] Name, children [3] IMPLICIT SEQUENCE OF ChildInformation, salary INTEGER (0..10000) OPTIONAL }
There are seven total elements: one is optional and the others are required. The generated code is straightforward:
public static bool IsRequired (String elemName) throws Asn1InvalidElemException { if (elemName.Equals("salary")) { return false; } else if (elemName.Equals("name")) { return true; } else if (elemName.Equals("number")) { return true; } else if (elemName.Equals("title")) { return true; } else if (elemName.Equals("dateOfHire")) { return true; } else if (elemName.Equals("nameOfSpouse")) { return true; } else if (elemName.Equals("children")) { return true; } throw new Asn1InvalidElemException(elemName); }