Skip to content

Project general description

placinski edited this page Nov 18, 2018 · 5 revisions

Main information

The aim of this project is to generate tool (TTool) for UML-2-XSD transformation for Ebix. The tool is based on Eclipse platform. It is created using Xtend and Xtext technologies. UMM - custom language defined for this tool

Workflow

UML-2-XSD transformation is performed in following steps:

  • UML -> text(umm)- information from UML file are transformed to text files in UMM format
  • text(umm) -> ODS - writing UMM files as a single spredsheet in ods format; for easier debuging
  • text(umm) -> xsd - writing UMM files in final XSD format

Directory structure of UMM Project (within TTool)

  • uml - directory in which source UML file from DrawMagic should be put
  • backup-uml - backup directory for UML files. On each run subdirectory with date and time is created
  • model-text - directory contaning intermediary umm files as well as ods
  • schemas - final xsd files

Project structure

The most important projects are: org.ebix.umm and org.ebix.umm.uml2text

org.ebix.umm.documentation

Some basic information about this project. Not all information are up-to-date.

org.ebix.umm

One of two main projects of this too. It holds both umm specification and xsd generation.

The most important classes

  • org.ebix.umm.GenerateUmm.mwe2 - umm language generator. More information about mechanism can be find here Xtext MWE2.
  • org.ebix.umm.Umm.xtext - umm language definition. If you change definition remeber to re-run generator so this information propagate to other projects.
  • org.ebix.umm.Umm.generator.GenerateXsd - start of xsd generation. In other to be compliant with XSD standard and Ebix requiments some magic tricks (like replace) are done here.

org.ebix.umm.platform

Empty project needed for product generation

org.ebix.umm.product

Projects that defines platform for the final runtime.

org.ebix.umm.sdk

Empty project needed for product generation

org.ebix.umm.test

Project with tests.

  • BaseTestCase - generic test case
  • UML2TxtParserTest - test checking that uml file can be transformed into spreadsheet (ods) file.
  • UMMGeneratorTest - currently unused

org.ebix.umm.ui

Definition of Eclipse Platform features such as: dialogs, editor assistance etc. It is needed for proper UMM files hanlidng.

org.ebix.umm.uml2text

Project in which uml-2-text transformation is defined.

The most important classes

  • org.ebix.umm.uml2text.builder.UmmBuilder - wrapper for uml-2-umm transformation. Start from this class.
  • org.ebix.umm.uml2text.Uml2Text - some uml preprocessing and proper umm generation (processFile() method).
  • org.ebix.umm.uml2text.2Text - this classes define how different uml construct should be transformed to umm.
  • org.ebix.umm.uml2text.ods.Uml2Ods - writing uml as a ods file

You can run test uml-2-umm from org.ebix.umm.uml2text.Uml2Text.main()

Developers tips

  • In order to fix information in xsd you should change files in org.ebix.umm project. You should start with GenerateXsd.xtend class and then analyze whether changes should be in this file.
  • In order to add new UML constraints or attributes remeber to add it in umm file, in Uml2Text class and GenerateXSD.xtend
  • Don't be affraid to use debuger or at lease putting debug information to standard output
  • Remember to ignore generated files in your git repository configuration so you can follow what are the real changes. Otherwise you will be floded with false changes.