How it Works

GAPE is basically a compiler, which translate the DSL source code into a target language, in this case Java.
By definition, a DSL is supposed to be an high-level programming language, with limited expressivness which allows to control the target language code generation. GAPE compiler generates mainly three kind of Java classes:

Domain Model
A set of classes implementing the Domain Model.

A set of classes implementing the RESTful API.

Supporting Classes
A set of supporting classes for for contracts and interactions.
Classes generated in the user space can be customized by developers.