This extension for StarUML(http://staruml.io) support to generate TypeScript code from UML model and to reverse Java code to UML model. Install this extension from Extension Manager of StarUML. It is based on TypeScript 2.0 specification.
- Click the menu (
Tools > TypeScript > Generate Code...) - Select a base model (or package) that will be generated to TypeScript.
- Select a folder where generated TypeScript source files will be placed.
Belows are the rules to convert from UML model elements to Java source codes.
- converted to TypeScript namespace (as a folder).
- converted to TypeScript Class. (as a separate
.tsfile) visibilityto one of modifierspublic,protected,privateand none.isAbstractproperty toabstractmodifier.isFinalSpecializationandisLeafproperty tosealedmodifier.- Default constructor is generated.
- All contained types (UMLClass, UMLInterface, UMLEnumeration) are generated as inner type definition.
- Documentation property to TypeScriptDoc comment.
- Annotation Type is converted to TypeScript attribute class which extends System.Attribute and postfix of class is Attribute. (cf. class testAttribute:System.Attribute)
- converted to TypeScript Field.
visibilityproperty to one of modifierspublic,protected,privateand none.nameproperty to field identifier.typeproperty to field type.multiplicityproperty to array type.isStaticproperty tostaticmodifier.isLeafproperty tosealedmodifier.defaultValueproperty to initial value.- Documentation property to TypeScriptDoc comment.
- converted to TypeScript Methods.
visibilityproperty to one of modifierspublic,protected,privateand none.nameproperty to method identifier.isAbstractproperty toabstractmodifier.isStaticproperty tostaticmodifier.- UMLParameter to TypeScript Method Parameters.
- UMLParameter's name property to parameter identifier.
- UMLParameter's type property to type of parameter.
- UMLParameter with
direction=returnto return type of method. When no return parameter,voidis used. - UMLParameter with
isReadOnly=truetosealedmodifier of parameter. - Documentation property to TypeScriptDoc comment.
- converted to TypeScript Interface. (as a separate
.tsfile) visibilityproperty to one of modifierspublic,protected,privateand none.- Documentation property to TypeScriptDoc comment.
- converted to TypeScript enum. (as a separate
.tsfile) visibilityproperty to one of modifierspublic,protected,privateand none.- UMLEnumerationLiteral to literals of enum.
- converted to TypeScript Field.
visibilityproperty to one of modifierspublic,protected,privateand none.nameproperty to field identifier.typeproperty to field type.- If
multiplicityis one of0..*,1..*,*, then collection type (List<>whenisOrdered=trueorHashSet<>) is used. defaultValueproperty to initial value.- Documentation property to JavaDoc comment.
- converted to TypeScript Extends (
:). - Allowed only for UMLClass to UMLClass, and UMLInterface to UMLInterface.
- converted to TypeScript Implements (
:). - Allowed only for UMLClass to UMLInterface.
- Click the menu (
Tools > TypeScript > Reverse Code...) - Select a folder containing TypeScript source files to be converted to UML model elements.
CsharpReversemodel will be created in the Project.
Belows are the rules to convert from TypeScript source code to UML model elements.
- converted to UMLPackage.
- converted to UMLClass.
- Class name to
nameproperty. - Type parameters to UMLTemplateParameter.
- Access modifier
public,protectedandprivatetovisibilityproperty. abstractmodifier toisAbstractproperty.sealedmodifier toisLeafproperty.- Constructors to UMLOperation with stereotype
<<constructor>>. - All contained types (UMLClass, UMLInterface, UMLEnumeration) are generated as inner type definition.
-
converted to UMLAttribute if "Use Association" is off in Preferences.
-
Field type to
typeproperty.- Primitive Types :
typeproperty has the primitive type name as string. T[](array) or its decendants:typeproperty refers toTwith multiplicity*.T(User-Defined Types) :typeproperty refers to theTtype.- Otherwise :
typeproperty has the type name as string.
- Primitive Types :
-
Access modifier
public,protectedandprivatetovisibilityproperty. -
staticmodifier toisStaticproperty. -
sealedmodifier toisLeafandisReadOnlyproperty. -
Initial value to
defaultValueproperty.
-
converted to (Directed) UMLAssociation if "Use Association" is on in Preferences and there is a UML type element (UMLClass, UMLInterface, or UMLEnumeration) correspond to the field type.
-
Field type to
end2.referenceproperty.T[](array) or its decendants:referenceproperty refers toTwith multiplicity*.T(User-Defined Types) :referenceproperty refers to theTtype.- Otherwise : converted to UMLAttribute, not UMLAssociation.
-
Access modifier
public,protectedandprivatetovisibilityproperty.
- converted to UMLOperation.
- Type parameters to UMLTemplateParameter.
- Access modifier
public,protectedandprivatetovisibilityproperty. staticmodifier toisStaticproperty.abstractmodifier toisAbstractproperty.sealedmodifier toisLeafproperty.
- converted to UMLInterface.
- Class name to
nameproperty. - Type parameters to UMLTemplateParameter.
- Access modifier
public,protectedandprivatetovisibilityproperty.
- converted to UMLEnumeration.
- Enum name to
nameproperty. - Type parameters to UMLTemplateParameter.
- Access modifier
public,protectedandprivatetovisibilityproperty. - Enum constants are converted to UMLEnumerationLiteral.
- converted to UMLClass with stereotype
<<annotationType>>. - Annotation type elements to UMLOperation. (Default value to a Tag with
name="default").
Licensed under the MIT license (see LICENSE file).