: junc++ion generate

Code Generator Tutorial

The purpose of this tutorial is to introduce you to the process of generating C++ proxy types. There is a different tutorial that deals with how to use the generated proxy types.

The units might seem trivial, particularly the first few. We use these first lessons to introduce you to some important product concepts in a non-challenging way. Working through the lessons will help you gain a much more fundamental understanding of how the code generator works.

We like to tell evaluators that spending an hour on the tutorial before trying to tackle their real integration problem is likely to save them days later on. You should at least skim the tutorial, even if you do not actually do the work.


Lesson Plan

Create a Model File (.jmm)

Learn how to launch the code generator and what makes up a model file.

Reopen and Modify a Saved Model File in the GUI

Learn how to reopen a saved model and how properties can be used to derive the values of other properties.

Import Built-In Java Types

Learn how to specify inclusion and exclusion patterns for Java types, as well as gain an understanding of import heuristics.

Enable or Disable Types

Learn what type enablement really means and how to change it.

Generate Proxy Types

We will not do anything with the generated types yet, but it is time for you to see how type enablement translates into generated code.

Import Your Own or Third-Party Java Types

Learn the difference between importing a jar file and importing Java types from the model classpath. This will teach you how to best import third-party Java types to avoid too sparse or too bloated type sets.

Exclude Types From a Model

Learn how to completely exclude certain Java types from your model, even if they're on the model classpath.

Control Default Enablement

You will learn how to get closer to your desired goal without having to manually enable or disable a lot of types.

Override Model Property Default Values

Another crucial lesson for developers who worry about build integration. Learn how to create model files that work on many different build hosts.

Add Java Source Code to the Model

Learn about the benefits of adding source code to your model.