The following table shows a summary of the command line options that have meaning when Java code generation is selected:
Option | Argument | Description |
---|---|---|
-3gl3 | None | This option is used to generate code for encoding and decoding 3GPP Layer 3 messages. Support is primarily provided for Non-Access Stratum (NAS) message types as defined in 3GPP TS 24.007, 24.008, 24.301 (LTE-NAS), and 24.501 (NAS Protocol for 5GS). This is meant for use with the Java NAS Add-on. |
-allow-ambig-tags | This option suppresses the check that is done for ambiguous tags within a SEQUENCE or SET type within a specification. Special code is generated for the decoder that assigns values to ambiguous elements within a SET in much the same way as would be done if the elements were declared to be in a SEQUENCE. | |
-asnstd |
x680 |
This option selects the version of ASN.1 syntax to be parsed. ‘x680’ (the default) refers to modern ASN.1 as specified in the ITU-T X.680-X.690 series of standards. Refer to the section called “ASN.1 Standard Revisions” for more information. |
-attrs | <items> |
This option only has meaning when generating an XML schema definitions (XSD) file using the -xsd option. It instructs the compiler to generate non-native attributes for certain ASN.1-only items that cannot be expressed in XSD. The items are specified as a comma-delimited list. Valid values for items are tags, enum, and ext. <items> is an optional parameter. If it is not specified, it is assumed that application information should be produced for all three item classes: ASN.1 tags, ASN.1 enumerations, and extended elements. |
-ber | None | This option instructs the compiler to generate functions that implement the Basic Encoding Rules (BER) as specified in the ASN.1 standards. |
-cer | None | This option instructs the compiler to generate functions that implement the Canonical Encoding Rules (CER) as specified in the ASN.1 standards. |
-cldc | None | This option instructs the compiler to generate Java Micro Edition Connected Limited Device Configuration (CLDC) 1.1 compatible code. See the chapter Java Micro Edition Support for more information. |
-coer | None | This option is used to generate encode/decode methods that implement the Octet Encoding Rules (OER) such that encodings are canonical and decodings are expected to be canonical. |
-compact | None | This option instructs the compiler to generate more compact code at the expense of some constraint and error checking. This is an optimization option that should be used after an application is thoroughly tested. |
-compare | None | This option is used to generate a comparison method (Equals) in the generated classes. |
-compat | <versionNumber> |
Generate code compatible with an older version of the compiler. The compiler will attempt to generate code more closely aligned with the given previous release of the compiler. <versionNumber> is specified as x.x (for example, -compat 5.2) |
-config | <filename> | This option is used to specify the name of a file containing configuration information for the source file being parsed. A full discussion of the contents of a configuration file is provided in the Compiler Configuration File section. |
-copy | None | This option instructs the compiler to generate clone methods in each of the generated types. These methods perform a deep copy. |
-depends | None | This option instructs the compiler to generate a full set of Java source files that contain only the productions in the main file being compiled and items those productions depend on from IMPORT files. |
-der | None | This option instructs the compiler to generate functions that implement the Distinguished Encoding Rules (DER) as specified in the ASN.1 standards. |
-dirs | None | This is a Java option that causes a subdirectory to be created to hold each of the generated Java source files for each module in an ASN.1 source file. |
-events | None | Generate extra code to invoke user defined event and error handler callback methods (see the Event Handlers section). |
-genant | None | Generate a build script (build.xml) that is compatible with the Ant toolchain. |
-genbuild | None | This option is used to generate a build script for compiling generated classes. |
-gengradle | None | This option is used to generate a Gradle build.gradle build script. |
-genmaven | None | This option is used to generate a Maven pom.xml configuration file. |
-genmetadata | None | This option is used to generate methods to permit accessing metadata about SEQUENCE and SET types. Users may query value ranges (represented as Asn1ValueRange objects) and optional/required status for elements in the given SEQUENCE or SET. |
-genPrint |
None | This option specifies that print methods should be generated. Print functions are debug functions that allow the contents of generated type variables to be written to stdout. |
-genPrtToStr |
None | This option produces additional print methods whose primary parameter is a StringBuilder. This provides somewhat more efficient output to strings if desired. The generated methods are not synchronized. |
-genTest or -test | None |
This option causes test code to be generated that will populate a PDU object with random test data. This code will be embedded in the body of a generated writer program; thus the option only results in code being generated if -writer is also specified. |
-getset | None | This option is used to generate protected member variables and get/set methods for accessing the variables. By default, member variables are declared to be public and they are accessed directly by application code. |
-I | <directory> | This option is used to specify a directory that the compiler will search for ASN.1 source files for IMPORT items. Multiple –I qualifiers can be used to specify multiple directories to search |
-json or -jer | None | This option is used to generate encode/decode functions that implement the Javascript Object Notation (JSON) Encoding Rules (JER) as specified in the X.697 ASN.1 standard. (Note: -jer+ is no longer supported. Similar functionality is now standard JER.) |
-lax | None | This option instructs the compiler to not generate code to check constraints. When used in conjunction with the –compact option, it produces the smallest code base for a given ASN.1 specification |
-list | None | Generate listing. This will dump the source code to the standard output device as it is parsed. This can be useful for finding parse errors. |
-noaccomment | None | This option suppresses the generation of the comment that shows the asn1c command that was used to generate the code. |
-nodecode | None | This option suppresses the generation of decode functions. |
-noencode | None | This option suppresses the generation of encode functions. |
-noevents | None | This option supresses generation of event handling code that is generated by default to enable element tracking, a feature used to enhance error reporting. |
-noIndefLen | None | This option instructs the compiler to omit indefinite length tests in generated decode functions. These tests result in the generation of a large amount of code. If you know that your application only uses definite length encoding, this option can result in a much smaller code base size. |
-noOpenExt | None | This option instructs the compiler to not add an open extension element in constructs that contain extensibility markers. The purpose of the element is to collect any unknown items in a message. If an application does not care about these unknown items, it can use this option to reduce the size of the generated code. |
-noPLMN | None | If not specified, if the ASN.1 contains a production named PLMNidentity (any case), that production will be treated as an OCTET STRING, regardless of how it may be defined in the ASN.1. But if -noPLMN is specified, this special recognition of PLMNidentity will be disabled, and it will be treated according to its definition in the ASN.1 (frequently TBCD-STRING, although in most cases that is incorrect). |
-noTBCD or -noBCD | None | Disable special treatment of BCD and TBCD strings. |
-noUniqueNames | None |
Turn off the capability to automatically generate unique names to resolve name collisions in the generated code. Name collisions can occur, for example, if two modules are being compiled that contain a production with the same name. A unique name is generated by prepending the module name to one of the productions to form a name of the form <module>_<name>. Note that name collisions can also be manually resolved by using the typePrefix, enumPrefix, and valuePrefix configuration items (see the Compiler Configuration File section for more details) |
-o | <directory> | This option is used to specify the name of a directory to which all of the generated files will be written. |
-oer | None |
Generate functions that implement the Octet Encoding Rules (OER) as specified in the ASN.1 standards. |
-pdu | <typeName> |
Designate given type name to be a Protocol Definition Unit (PDU) type. By default, PDU types are determined to be types that are not referenced by any other types within a module. This option allows that behavior to be overridden. The * wildcard character may be specified for <typeName> to indicate that all productions within an ASN.1 module should be treated as PDU types. |
-per | None | This option instructs the compiler to generate functions that implement the Packed Encoding Rules (PER) as specified in the ASN.1 standards. |
-pkgname | <packageName> | This is a Java option that allows the entire Java package name to be changed. Instead of the module name, the full name specified using this option will be used. This option cannot be used in conjunction with –pkgpfx option. |
-pkgpfx | <prefixName> | This is a Java option for adding a prefix in front of the assigned Java package name. By default, the Java package name is set to the module name. If the package is embedded within a hierarchy, this option can be used to set the other directory names that must be added to allow Java to find the .class files. |
-reader | None | This option is used to generate a sample reader program to decode data. |
-sax | None | This option instructs the compiler to generate code that uses the old SAX XML parser API. The default is to use the XmlPull API. |
-shortnames | None | This option is used to change the names generated by compiler for embedded types in constructed types. This option is required to handle the limit on the size of filenames in certain situations. With this option, the generated code filenames would be shorter than without this option. |
-stax | None | This option instructs the compiler to generate code that uses the StAX XML parser API. The default is to use the XmlPull API. |
-stream | None | This option instructs the compiler to generate stream-based encoders/decoders instead of memory buffer based. This makes it possible to encode directly to or decode directly from a source or sink such as a file or socket. In the case of BER, it will also cause forward encoders to be generated, which will use indefinite lengths for all constructed elements in a message. |
-strict | None |
This option is used to enable strict checking for conformance to ASN.1 standards and validation of constraints. |
-tables | None | This option is used to generate additional code for the handling of table constraints as defined in the X.682 standard. |
-warnings | None | Output information on compiler generated warnings. |
-writer | None | This option is used to generate a sample writer program to encode data. |
-xer | None | This option instructs the compiler to generate functions that implement the XML Encoding Rules (XER) as specified in the ASN.1 standards. Related XML Schema can be produced by using the -xsd command line option. |
-xml | None | This option instructs the compiler to generate functions that implement the XML Encoding Rules (XML) as specified in the World-Wide Consortium (W3C). Related XML Schema can be produced by using the -xsd command line option. |
-xmlpull | None | This option instructs the compiler to generate code that uses the XmlPull XML parser API. This is the default behavior. |