C++ generator and reverse engineering module
Reverse engineering is still a work in progress.
Install:
run ./build.sh install to generate the argo_cpp.jar file and copy it
in the argouml/build/ext directory.
It should be integrated into the existing system so that the user will be able
to choose between Java, C++ and others.
Operations are generated as "const" if they are marked as "query".
Operations which are NOT marked as "leaf", "root", "static", "abstract" are
generated as virtual function.
There are some TaggedValues involved in the Generator Process:
On the class:
Name: constructor
Value: true
will generate a default constructor for the class
Name: header_incl
Value: filename
will include given file into header (.h)
TODO: what if the user wants more than one?! This problem is applicable
to many of the bellow values.
Name: source_incl
Value: filename
will include given file into source (.cpp)
Name: typedef_public
Value: <source type> <type_name>
will create typedef line in the public area of the class with:
typedef <source type> <type name>;
Name: typedef_protected
Value: <source type> <type_name>
will create typedef line in the protected area of the class with:
typedef <source type> <type name>;
Name: typedef_private
Value: <source type> <type_name>
will create typedef line in the private area of the class with:
typedef <source type> <type name>;
Name: typedef_global_header
Value: <source type> <type_name>
will create typedef line in the global area of the header with:
typedef <source type> <type name>;
Name: typedef_global_source
Value: <source type> <type_name>
will create typedef line in the global area of the source file with:
typedef <source type> <type name>;
Name: TemplatePath
Value: Directory
will search in the specified directory for the template files "header_template"
and "cpp_template" which are placed in top of the corresponding file
( following tags in template file are replaced by model values:|FILENAME|,
|DATE|, |YEAR|, |AUTHOR|, |EMAIL| )
( if no such tag is specified, the templates are searched in the subdirectory of
the root directory for the code generation )
Name: email
Value: name@domain.country
will replace the tag |EMAIL| of the template file.
Name: author
Value: name
will replace the tag |AUTHOR| of the template file.
=========
On Attribues:
Name: pointer
Value: (true)
will generate the attribute as pointer
Name: reference
Value: (true)
will generate the attribute as reference
Name: usage
Value: source
will lead for class types to a predeclaration in the header, and the include of
the remote class header in the header of the generated class
Name: MultiplicityType
Value: list|slist|vector|map|stack|stringmap
will define a multiplicity as the corresponding STL container, if the range is
variable ( fixed size ranges are transfered to: type name[size]).
Name: set
Value: private|protected|public
will create a simple function to set the attribute by a function
(call by reference is used for class-types, else call by value);
place the function in the given visibility area
Name: get
Value: private|protected|public
will create a simple const read/query function to get the value of the
attribute (return const reference to class-types); place the function in the
given visibility area
=========
On Parameters:
Name: pointer
Value: (true)
will generate the attribute as pointer
Name: reference
Value: (true)
will generate the attribute as reference
=========
Variable Passing (Operator Parameters):
If a variable for an operation is marked as "out" or "inout" the variable will
be passed by reference (default)
or pointer (needs tag <pointer> - see above), otherwise by value.
========
Default Values:
Default values can be stored in the model on Operator Parameters. They will be
generated with the code.
==========
Preserved Sections:
with each code generation, special comments will be generated like this:
Testclass::Testclass()
// section -64--88-0-40-76f2e8:ec37965ae0:-7fff begin
{
}
// section -64--88-0-40-76f2e8:ec37965ae0:-7fff end
All code you put within the "begin" and "end" lines will be preserved when you
generate the code again.
Please do not change anything within these lines because the sections are
recognized by this comment syntax.
As the curley braces are placed within the preserved area, attribute
initialisers are preserved on constructors.
This also works if you change Method Names after the generation.
function /* public */ /* void*/ newOperation(/* */ &$test = "fddsaffa")
// section 603522:ec4c7ff768:-7ffc begin
{
}
// section 603522:ec4c7ff768:-7ffc end
If you delete an Operation in the model. The code lost code will be added as
comment to the end of the file.
============
- TODO: It would be nice to have a dialog tab for the properties that are now
stored in the TaggedValues.
- TODO: It would be nice to raise a dialog if no template files are found
- TODO: It woul be important to generate defined types (which could be realised
as enum)
没有合适的资源?快使用搜索试试~ 我知道了~
ArgoUML-0.34-src.zip_argouml
共4120个文件
java:1922个
xml:614个
gif:532个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 182 浏览量
2022-09-20
19:23:29
上传
评论
收藏 11.39MB ZIP 举报
温馨提示
类图生成代码,基于UML2.0标准,可以生成各种不同语言代码,支持插件
资源推荐
资源详情
资源评论
收起资源包目录
ArgoUML-0.34-src.zip_argouml (4120个子文件)
The Shapes Project.zargo~0.16.1 5KB
ChangeLog.20020917 7KB
discriminator_example.zargo~PRE-0.19.4 5KB
requirements_tutorial.zargo~PRE-0.19.7 14KB
AUTHORS 142B
argouml2.bat 278B
argouml.bat 128B
Artifacts-UseCase.uml~PRE-0.18.beta1 40KB
Build-House.zargo~PRE-0.18.beta1 7KB
state-artifacts.zargo~PRE-0.18.beta2 8KB
ClassDiagram-Datatypes.zargo~PRE-0.24.beta2 5KB
BUGS 223B
docbook.cat 4KB
ChangeLog 97KB
ChangeLog 97KB
ChangeLog 56KB
ChangeLog 42KB
ChangeLog 38KB
ChangeLog 16KB
ChangeLog 13KB
ChangeLog 9KB
ChangeLog 8KB
ChangeLog 6KB
ChangeLog 5KB
ChangeLog 5KB
ChangeLog 4KB
ChangeLog 4KB
ChangeLog 4KB
ChangeLog 3KB
ChangeLog 2KB
ChangeLog 2KB
ChangeLog 2KB
ChangeLog 1KB
ChangeLog 1KB
ChangeLog 959B
ChangeLog 882B
ChangeLog 858B
ChangeLog 481B
ChangeLog 441B
ChangeLog 369B
ChangeLog 341B
ChangeLog 284B
ChangeLog 265B
ChangeLog 254B
ChangeLog 198B
ChangeLog 189B
ChangeLog 181B
ChangeLog 154B
.checkclipse 286B
.classpath 375B
Superstructure.cmof 1.34MB
L3.merged.cmof 1.05MB
L2.merged.cmof 820KB
Infrastructure.cmof 454KB
L1.merged.cmof 444KB
LM.merged.cmof 175KB
L0.merged.cmof 33KB
L3.cmof 3KB
L2.cmof 3KB
L1.cmof 3KB
LM.cmof 873B
L0.cmof 868B
COPYING 2KB
slides.css 3KB
slides-frames.css 2KB
slides-table.css 1012B
look-and-feel.css 368B
look-and-feel.css 367B
slides-default.css 212B
slides-plain.css 27B
slides-w3c.css 27B
xml.dcl 7KB
AS.dtd 112KB
01-02-16.dtd 77KB
pgml.dtd 14KB
soextblx.dtd 12KB
calstblx.dtd 8KB
docbookx.dtd 6KB
argo.dtd 5KB
hist.dtd 3KB
log.dtd 3KB
config.dtd 3KB
todo.dtd 3KB
l10n.dtd 1KB
targetdatabase.dtd 1KB
param.ent 21KB
param.ent 20KB
iso-lat2.ent 9KB
iso-pub.ent 4KB
iso-lat1.ent 4KB
iso-cyr1.ent 4KB
iso-num.ent 4KB
iso-amsa.ent 4KB
iso-amsr.ent 4KB
iso-amsn.ent 3KB
iso-box.ent 3KB
param.ent 3KB
iso-grk1.ent 3KB
iso-tech.ent 3KB
iso-grk4.ent 3KB
共 4120 条
- 1
- 2
- 3
- 4
- 5
- 6
- 42
资源评论
JonSco
- 粉丝: 66
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功