su4sml/share/templates/securemova.tpl

122 lines
5.0 KiB
Smarty

@//////////////////////////////////////////////////////////////////////////////
@// su4sml --- an SML repository for managing (Secure)UML/OCL models
@// http://projects.brucker.ch/su4sml/
@//
@// securemova.tpl ---
@// This file is part of su4sml.
@//
@// Copyright (c) 2005-2007, ETH Zurich, Switzerland
@//
@// All rights reserved.
@//
@// Redistribution and use in source and binary forms, with or without
@// modification, are permitted provided that the following conditions are
@// met:
@//
@// * Redistributions of source code must retain the above copyright
@// notice, this list of conditions and the following disclaimer.
@//
@// * Redistributions in binary form must reproduce the above
@// copyright notice, this list of conditions and the following
@// disclaimer in the documentation and/or other materials provided
@// with the distribution.
@//
@// * Neither the name of the copyright holders nor the names of its
@// contributors may be used to endorse or promote products derived
@// from this software without specific prior written permission.
@//
@// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
@// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
@// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
@// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
@// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
@// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
@// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
@// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
@// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
@// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
@// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@///////////////////////////////////////////////////////////////////////////////
@// $Id$
@// base template
@// assumption: all classifiers are classes
@openfile generated/securemova/$classifier_package$.mova
@// generated by su4sml GCG - Generic Code Generator
load /home/doserj/projects/securemova/ocl-tool-v30/ocl-tool.maude @nl
load /home/doserj/projects/securemova/ocl-tool-v30/securemova.maude @nl
(create-security-diagram $classifier_package$ .) @nl
@foreach role_list
(insert-role $classifier_package$ : $role_name$ .) @nl
@foreach superrole_list
(insert-role-hierarchy $classifier_package$ | $role_name$ <-> $superrole_name$ .) @nl
@end
@end
@foreach subject_list
(insert-user $classifier_package$ : $subject_name$ .) @nl
@foreach role_list
(insert-user-assignment $classifier_package$ | $subject_name$ <-> $role_name$ .) @nl
@end
@end
@foreach permission_list
(insert-permission $classifier_package$ : $permission_name$ .) @nl
@foreach role_list
(insert-permission-assignment $classifier_package$ : $permission_name$ : $role_name$ .) @nl
@end
@end
@foreach entity_list
(insert-entity $classifier_package$ : $entity_name$ .) @nl
@foreach attribute_list
(insert-attribute $classifier_package$ : $entity_name$ : $attribute_name$ .) @nl
@end
@foreach assocend_list
(insert-association-end $classifier_package$ : $entity_name$ : $assocend_name$ .) @nl
@end
@foreach operation_list
@if operation_isQuery
(insert-query-method $classifier_package$ : $entity_name$ : $operation_name$ .) @nl
@else
(insert-non-query-method $classifier_package$ : $entity_name$ : $operation_name$ .) @nl
@end
@end
@end
@foreach constraint_list
(insert-authorization-constraint $classifier_package$ : auth$counter_next$ : $constraint_body$.) @nl
(insert-authorization-constraint-assignment $classifier_package$ : $constraint_perm$ : auth$counter$ .) @nl
@end
@//TODO: also support composite actions (not supported in cartridge yet...)
@foreach entity_list
@foreach createPermission_list
(insert-atomic-create $classifier_package$ : $permission_name$ : $entity_name$ .) @nl
@end
@foreach deletePermission_list
(insert-atomic-delete $classifier_package$ : $permission_name$ : $entity_name$ .) @nl
@end
@foreach attribute_list
@foreach readPermission_list
(insert-atomic-read $classifier_package$ : $permission_name$ : $entity_name$ : $attribute_name$ .) @nl
@end
@foreach updatePermission_list
(insert-atomic-update $classifier_package$ : $permission_name$ : $entity_name$ : $attribute_name$ .) @nl
@end
@end
@foreach operation_list
@foreach executePermission_list
(insert-atomic-execute $classifier_package$ : $permission_name$ : $entity_name$ : $operation_name$ .) @nl
@end
@end
@end
@// FIXME: insert-entity-update et al.
@// FIXME: (insert-entity-update $classifier_package$: $permission_name$ : $entity_name$ .)