Skip to content
This repository has been archived by the owner on Oct 26, 2018. It is now read-only.

mnn/Dia2Scala

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dia2Scala

This is a code generator - a console application. It works with one file from diagram editor Dia as an input and generates Scala source code files on its output. UML lacks a lot of Scala features - some has been added via stereotypes (all supported stereotypes are present in test diagrams src/test/resources/diagrams; if anything is missing here, you can surely find it over there).

Examples

Showcase page

Compilation

SBT

Command line arguments

Usage: dia2scala [options]

  -f <file> | --file <file>
        input dia file
  -u | --unpacked
        skips unpacking of an input dia file
  --help
        prints this usage text
  -q | --quiet
        suppresses all non critical output
  -v | --verbose
        prints extra debug information
  -vv | --veryverbose
        prints a lot of debug information
  -o <path> | --outputpath <path>
        output directory
  -d | --groupbydependency
        tries group related classes to one source file

It is strongly recommended to use the -d option.

Notation

Following page shows custom stereotypes on diagrams and equivalent source code. Notation page

Download

Fat jars are available on my blog - repository website (link at a top of this page).

Not implemented yet

All planned features are implemented.

Known issues

Currently none.

Not supported

  • type construct
  • generic parameters of operations (methods)
  • template classes (generic user classes)
  • splitting to methods when overrinding def with var (workaround: split those methods manually in child)
  • graphically nested packages (workaround: label packages with thier full names)
  • default values

Donation

If you use this project, please consider a donation of any amount (author is a not-wealthy student).

PayPal

License

GNU General Public License 3 (GPL3)
For more details read LICENSE.txt.