I would like to create a generic encode() method which would create the Coder instance before calling encode . How can I do this?

Let's suppose you have an ASN.1 spec called myproject and a PDU type called Myclass. The myproject.Myclass.getBERCoder() method returns a generic coder that will work for other protocols too. The only limitation is that you cannot use the feature which automatically detects the type of the incoming PDUs (or pass 'null' for the second argument to decode()) when using this coder to decode messages from another protocol. But since you are looking for the generic encoder, this limitation is unlikely to be restrictive for you.

For example, you can implement your generic encode() as follows:

public class CoderFactory { 
  public static BERCoder getBERCoder() { 
    return myproject.Myclass.getBERCoder(); 

encode(AbstractData abstractData) { 
  com.oss.asn1.BERCoder coder = CoderFactory.getBERCoder(); 
  ByteArrayOutputStream out = new ByteArrayOutputStream(); 
  coder.encode(abstractData, out); 

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: support@oss.com
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.