Does the sink parameter of the decode() method and the return value have to be instances of the same class?

Here's the decode() method definition in the com.oss.asn1.Coder class:

public final AbstractData decode( source, 
                AbstractData sink) 
                throws DecodeNotSupportedException, 

If the sink is not null then it should be an instance of a class which represents the PDU whose encoding is expected to be present in the source stream. It is possible to pass null as the sink argument if the coder supports the PDU detection feature. If the sink is null and PDU detection is available then the actual PDU in the source will be determined from its tag.

Here is an example:

if (coder.isPDUDetectionAvailable()) 
value = coder.decode(mySource, null) 
value = coder.decode(mySource, new MyRec()); 

PDU detection is supported by BER and DER coders if the ASN.1 spec uses distinct tags for all the PDUs in the spec. PDU detection is not available for PER and UPER coders.

The samples included with some of the Knowledge Center answers are meant for your general understanding of the OSS products. Different versions of the products might produce slightly different outputs. Consult the products documentation and samples for the most up-to-date products information and code examples.

Contact Support
contact Our office hours
24 hours/day, 7 days/week

  • Phone: 1-888-OSS-2761 (USA and Canada)
  • Phone: 1-732-302-9669 (International)
  • Fax: 1-732-302-0023
  • Email:
Free Trial

Test drive the OSS Nokalva ASN.1, LTE, and XML Tools now! Your trial includes complete software, documentation, sample programs, free 24x7 technical support and more.

Learn ASN.1
Learn ASN.1

Our expert personnel can help you learn ASN.1!

We offer 4-day ASN.1 courses at our headquarters or your premises.