Dia2Code

Changelog

Version 1.0.0 (2017-01-08)

  • Rewrite in C++ is ongoing and is labeled dia2code+. For further details see About.
  • Target languages implemented: cpp, cpp11, csharp, java, php.
  • Not yet implemented: ada, as3, c, idl, python, ruby, shp, sql, and code preservation.

Version 0.8.8 (2016-07-14)

  • Applied C++ compatibility changes, whitespace cleanups, and vim settings from the dia2code-c++ branch.
  • Applied modified patch adding generation of __init__ method in generate_code_python.c
  • Applied various patches provided by Ophir Lojkine.
  • Fixed bug in parse_diagram.c related to the order in which dependencies are considered.
  • Applied fgetc.patch to fix infinite loop on reading license file.
  • Applied dia2code.patch3 from http://bugs.debian.org/240091 (java code: interface bug fix and better pretty printing)
  • Fixed a SEGFAULT on empty dia files.
  • Added support for dia's database tables.
  • Added importing of SQL primary keys from database diagrams.

Version 0.8.7 (2016-07-07)

  • Added ActionScript-3 code generator by Dima Levchenko
  • Added evaluation of association role names and multiplicities (dimalev)
  • Added support for roles and multiplicities in "UML - Association" version 0
  • Fixed infinite loop in Ada code generation for static (class_scope) attributes
  • Fixed missing Ada code generation for private static variable
  • Removed support for unnamed associations, it created more problems than benefit. See discussion.
  • Added support for embedded '#' in Dia comments, see dia2code2.patch
  • Changed C++ code generation for destructor of abstract class to emit neither a default destructor implementation nor pure virtual "= 0", see dia2code1.patch

Version 0.8.6 (2014-06-05)

  • Added generation of header guard for C++
  • Fixed null pointer dereference crash in handling of UML - Association
  • Applied modified patch for increasing maximum permissible size of comment
  • Applied patch for fixing insufficient generated #include dependencies
  • Applied patch for printing numeric value associated to enum value in C++
  • Applied patch for removing inappropriate abstractness from generated C++ destructor
  • Fixed missing full qualification of parent name in C++ generalizations
  • Added support for stereotypes «struct», «typedef», «const»
  • Applied patch for preventing infinite loop on generating code for classes with circular dependency

Version 0.8.5 (2012-07-07)

  • Support for properties in C# code
  • Support for unnamed associations in dia input file
  • Support for generating Java and PHP code without packages in input file
  • FreeBSD portability issues fixed
  • Improved SQL surrogate Foreign Key matching

Version 0.8.4 (2011-10-22)

  • Support for C++ "const" qualifier on operations
  • Improved naming of Foreign Keys in SQL code generation
  • Fixed retrieval of association name from diagram
  • Fixed missing C++ function parameters in the presence of comments

Version 0.8.3 (2007-01-05)

  • Code generator for Ruby by D. Sabanin

Version 0.8.2 (2006-11-17)

  • Code generator for PHP5 by T. Rodger

Version 0.8.1 (2002-01-01)

  • The win32 files were not included in 0.8, now they are in.
  • Fixed the bug with grouped objects.
  • Fixed the bug with integer parsing in 64 bit systems. Thanks to Patrik Stähli.
  • Updated generate_code_php. Thanks to Harald Fielker.
  • The following changes where made by Chris McGee:
  • Fixed the NO_GENERATORS number to reflect the actual number of code generators that are actually there.
  • Added _basic_ CORBA idl support

Version 0.8 (2001-12-27)

  • Fixed the bug that caused SEGFAULTs when parsing templates.
  • Fixed the endless loop bug in the Java code generator.
  • Fixed the bug that scrambled the formal parameters of a method.
  • Added support for wildcards to the list specified with "-cl". Now one can put an asterisk either at the beggining or the end. Example: "dia2code -cl Foo*,*bar", will create files only for classes which names start with "Foo" or end with "bar". Thanks to Jérôme Slangen.
  • Added the PHP code generator. Thanks to Harald Fielker.
  • Added support for license file inclusion (-l). Thanks to Takashi Okamoto.
  • The following changes were done by Steffen Macke:
  • Added support for shapefile generation (shp): New generate_code_shp.c
  • Added support to built with cygwin on win32: dia2code/makefile.mingw
  • Added files to built win32 installer with NSIS: dia.ico, dia1.bmp, dia2.bmp, dia2code Homepage.url dia2code.nsi, README.win32, Report a Bug.url

Version 0.7 (2001-10-01)

  • Added support for packages. The classes now have a "package" pointer which points to an element of a new structure: package. The parser fills in info for the packages based on the geometry of the objects in the diagram. Currently, only the Java code generator uses this extra info.
  • Added list_classes(), a function like find_classes() that returns an umlclasslist instead.
  • Regrouped the scan in the parser so we'll pass through the diagram fewer times.
  • Added some comments here and there.
  • Updated the README and TODO files.

Version 0.6.1 (2001-09-15)

  • Fixed the Association and Dependency parsing. They were broken because I rewrote the routines for libxml2.
  • Modified find_classes(): now it returns a list with the classes used in: attributes, method parameters, parents, dependencies and associations. The list has each "used" class at most once.
  • Modified code generators to use the above improvement.

Version 0.6 (2001-09-03)

  • Dia2Code now uses libxml2. Thanks to Martin Vidner for the patch and guidelines to it.
  • Added configuration options for libxml2 in configure.in. Again, thanks to M. Vidner for the support.
  • New argument parsing: should be easier to understand and much more flexible: arguments can be specified in any order (even the filename).
  • Added my_malloc() that behaves like malloc() but exits if there's no more memory avaliable.
  • Added generate_code_ada, thanks to Thomas Preymesser
  • Added generate_code_sql, thanks to Chris McGee
  • Added generate_code_python, thanks to Cyrille Chepelov
  • Added dynamic shared objects capability for adding new code generators on the fly. (Thanks very much to Takaaki Tateishi)
  • Added dependency and aggregation/composition functionality to the cpp, java and c generators. Thanks to Chris McGee.
  • Added a Kaptain script for dia2code (dia2code.kaptn). Kaptain is a program that creates a QT GUI from a grammar file and can invoke a command-line program, like dia2code. Check out its home page: http://kaptain.sourceforge.net

Version 0.5 (2001-01-23)

  • Fixed the .in files in the docs directory so "configure" will not complain any more.
  • There was a bug in generate_code_java; it didn't really checked for a string longer than the buffer, but it was NOT vulnerable to buffer overflows (see next bug).
  • Another bug in generate_code_java: the output directory was not prepended to the output filename, so specifying it while generating Java code was futile. My fault.
  • Added some comments here and there.
  • Added generate_code_c, thanks to Ruben Lopez.
  • Added the find_classes() function (again, thanks to Ruben Lopez). This function returns a list of names that a given class uses and are declared in the same diagram. With this, generate_code_c and generate_code_cpp now can generate more useful #include directives.
  • Added a char * field to umloperation named "implementation" so we can suggest an implementation while building the class list. The code generators MAY use it as a default implementation (example: a non-void function may return a default value).
  • Added support for JavaBeans(tm). If you want to automagically add a get() and set() (or is() if it is boolean) public method for each attribute, you should set "JavaBean" as the stereotype. The body of the method will be generated properly. This should also work when the target language is not Java.

Version 0.4 (2001-01-01)

  • When you didn't specify a method's return type (left the space blank) the program would promptly crash. This was mostly a problem with constructors.
  • Added support for "UML - Implements" (the lolipop implementation). The interface name will be declared in the implementator's file but no code will be generated for it.

Version 0.3 (2000-12-28)

  • There was bug with the list of classes to generate: the discrimination was done in the class parser, so we could end with a list of classes without parent information. Sorry.
  • The code generators now accept only a pointer to a structure that contains all the information they need. Please see the README file for details.

Version 0.2 (2000-12-20)

  • Added this Changelog
  • Added the "-nc" option. When specified, dia2code will not overwrite files already present in the target directory.
  • Reorganized the structure of the project. Now it is divided into two modules: the parser and the code generators.
  • Added the online help options, "-h" and "--help"
  • Added the "-cl" option, which lets you specify the list of classes you want to generate. Example: "-cl Base,Derived". Also added the "-v" optiion, that inverts the class selection.
  • There was a bug in generate_code_java: tmpname is not initialized and the program could randomly crash.
  • The condition for the generation of abstract classes in Java was rather ugly. Now it looks for the Abstract flag instead of the Sterotype (which is much better than before).

Version 0.1 (2000-11-26)

  • Initial release
  • Generates code for C++/Java
  • Does not support templates.

This page is kindly hosted by: SourceForge.net Logo