su4sml/src/codegen/templates/C#_SecureUML.tpl

167 lines
3.8 KiB
Smarty
Raw Normal View History

@// Template for C#
@// (c) Copyright 2005 Raphael Eidenbenz eraphael-at-student.ethz.ch
@// write permissions into XML-file
@openfile generated/csharp_secure/$classifier_package$.xml
<?xml version="1.0" encoding="utf-8" ?>
@nl<!-- XML-permissions file for MdsEngine. Generated by su4sml-gcg. -->
@nl<!-- source: C#_SecureUML.tpl -->
@nl@nl<mds>
@foreach permission_list
@nl @tab <permission name="$permission_name$">
@foreach role_list
@nl @tab@tab <role name="$role_name$" />
@end
@foreach constraint_list
@nl @tab@tab <condition lang="OCL">$constraint$</condition>
@end
@nl @tab@tab <obligation></obligation>
@nl @tab </permission>
@end
@nl </mds>
@// write C#-code
@openfile generated/csharp_secure/$classifier_package$.cs
// generated by su4sml GCG - Generic Code Generator
@nl
@nl using System;
@nl using Mds;
@nl
@nl namespace $classifier_package$
@nl {
@foreach classifier_list
@nl@nl@nl
@if isPrimitive
@nl @tab // no support for primitive $classifier_name$ !!
@nl
@elsif isEnumeration
@nl @tab // no support for enumeration $classifier_name$ !!
@nl
@else
@if isClass
@nl @tab class $classifier_name$
@elsif isInterface
@nl @tab interface $classifier_name$
@end
@if hasParent
: $classifier_parent$
@end
@nl @tab {
@foreach attribute_list
@nl
@if attribute_isPublic @// PROPERTY!
@nl @tab@tab private $attribute_scope$ $attribute_type$ $attribute_name_small_letter$ ;
@nl @tab@tab public $attribute_scope$ $attribute_type$ $attribute_name_capital$
@nl @tab@tab {
@nl @tab@tab@tab get
@nl @tab@tab@tab {
@foreach readPermission_list
@if first_permission
@nl @tab@tab@tab@tab
MdsEngine.Assert(this, new string[] {
@end
@if last_permission
"$permission_name$" });
@else
"$permission_name$",
@end
@end
@nl @tab@tab@tab@tab return $attribute_name_small_letter$;
@nl @tab@tab@tab }
@nl @tab@tab@tab set
@nl @tab@tab@tab {
@foreach updatePermission_list
@if first_permission
@nl @tab@tab@tab@tab
MdsEngine.Assert(this, new string[] {
@end
@if last_permission
"$permission_name$" });
@else
"$permission_name$",
@end
@end
@nl @tab@tab@tab@tab $attribute_name_small_letter$ = value ;
@nl @tab@tab@tab }
@nl @tab@tab }
@else
@nl @tab@tab $attribute_visibility$ $attribute_scope$ $attribute_type$ $attribute_name$ ;
@end
@end
@nl
@foreach operation_list
@nl @tab@tab public $operation_scope$ $operation_result_type$ $operation_name$(
@foreach argument_list
@if last_argument
$argument_type$ $argument_name$
@else
$argument_type$ $argument_name$ ,
@end
@end
)
@nl @tab@tab {
@foreach executePermission_list
@if first_permission
@nl@tab@tab@tab
MdsEngine.Assert(this, new string[] {
@end
@if last_permission
"$permission_name$" });
@else
"$permission_name$",
@end
@end
@nl @tab@tab@tab // ...toDo...
@nl @tab@tab }
@end
@nl
@// Constructor:
@nl @tab@tab // Constructor
@nl @tab@tab $classifier_name$()
@nl @tab@tab {
@foreach createPermission_list
@if first_permission
@nl @tab @tab @tab
MdsEngine.Assert(this, new string[] {
@end
@if last_permission
"$permission_name$" });
@else
"$permission_name$",
@end
@end
@nl @tab@tab }
@nl
@// Destructor:
@nl @tab@tab // Destructor
@nl @tab@tab ~$classifier_name$()
@nl @tab@tab {
@foreach deletePermission_list
@if first_permission
@nl @tab @tab @tab
MdsEngine.Assert(this, new string[] {
@end
@if last_permission
"$permission_name$" });
@else
"$permission_name$",
@end
@end
@nl @tab@tab }
@nl @tab }
@end
@end
@nl} @// End