/** * @Author: Jordi Corbilla * (c) Copyright by Jordi Corbilla. **/ TUML = class(TObject) private FFormat: string; FOutFile: TLog; FUmlFileName: string; public property Format: string read FFormat write FFormat; constructor Create(umlFileName: string); class function Start(umlFileName: string): TUML; procedure Define(name : String; kind : String); overload; procedure Define(); overload; procedure Call(caller: string; callee: string; method: string; params: string); overload; procedure Call(caller: string; callee: string; method: string; params: string; result: string); overload; procedure Convert(); end; const DefaultFormat = 'jpg'; DefaultLocationLibrary = '..\..\thirdpartylibs\sdedit\sdedit.jar'; implementation uses ShellAPI, Windows; { TUML } procedure TUML.Call(caller, callee, method, params: string); begin FOutFile.print(caller + ':' + callee + '.' + method + '(' + params + ')'); end; procedure TUML.Call(caller, callee, method, params, result: string); begin FOutFile.print(caller + ':' + result + '=' + callee + '.' + method + '(' + params + ')'); end; procedure TUML.Convert(); var params: string; FileINFormat: string; FileOutFormat: string; begin FileINFormat := FUmlFileName + '.sdx'; FileOutFormat := FUmlFileName + '.' + FFormat; params := '-jar ' + DefaultLocationLibrary + ' -o ' + FileOutFormat + ' -t ' + FFormat + ' -r landscape ' + FileINFormat; ShellExecute(0, nil, 'java.exe', PChar(params), nil, SW_HIDE); end; constructor TUML.Create(umlFileName: string); begin FOutFile := TLog.Start(umlFileName + '.sdx'); FFormat := DefaultFormat; FUmlFileName := umlFileName; end; procedure TUML.Define; begin FOutFile.print(''); end; procedure TUML.Define(name, kind: String); begin FOutFile.print(name + ':' + kind); end; class function TUML.Start(umlFileName: string): TUML; begin result := Create(umlFileName); end;