UMLG is a UML to java code generator. From class diagrams, persistent java entities are generated. The entities persist via an embedded Blueprints graph database. The semantics of a Property Graph Model is a natural fit for implementing the rich semantics of UML class diagrams in java.
UMLG endeavours to implement the UML2 spec as faithfully as possible. UMLG supports most class diagram features. Inheritance, interfaces, abstract classes, associations, composition, complex data types, multiplicity, collection types (Set, OrderedSet, Sequence, Bag), qualifiers, constraints and more are supported.
UMLG supports OCL (object constraint language). Constraints, derived properties and query operations can be fully specified in OCL. For each OCL expression in the model corresponding java is generated directly into the owning entity.
UMLG can optionally generate a rest interface to the application for performing remote crud and query operations. Utilizing the rest interface a web based ui is provided. From the gui crud and query operations can be performed. This makes it easy to visualize, use and maintain the application.
Queries can be executed in OCL, Gremlin or the underlying blueprint graph's native query language.