su4sml/share/templates/java.tpl

104 lines
3.2 KiB
Smarty

@//////////////////////////////////////////////////////////////////////////////
@// su4sml --- an SML repository for managing (Secure)UML/OCL models
@// http://projects.brucker.ch/su4sml/
@//
@// java.tpl --- simple template for Java
@// 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$
@foreach nonprimitive_classifier_list
@openfileifnotexists generated/src/main/java/$classifier_package_path$/$classifier_name$.java
package $classifier_package$;
@nl@nl
@if isClass
public class $classifier_name$
@end
@if isInterface
public interface $classifier_name$
@end
@if isEnumeration
public enum $classifier_name$
@end
@if notInterface
@if hasParent
@spcextends $classifier_parent$
@end
@end
@if hasParentInterfaces
@if isInterface
@spcextends
@else
@spcimplements
@end
@foreach parent_interface_list
@if last_interface
$parent_interface$
@else
$parent_interface$,
@end
@end
@end
@spc{
@if notInterface
@foreach attribute_list
@nl@tab$attribute_visibility$ $attribute_type$ $attribute_name$;
@end
@nl
@end
@foreach operation_list
@nl@tab$operation_visibility$ $operation_result_type$ $operation_name$(
@foreach argument_list
@if last_argument
$argument_type$ $argument_name$
@else
$argument_type$ $argument_name$,@spc
@end
@end
)
@if notInterface
@spc{@nl
@if operation_non_void
@tab@tabreturn $returnvalue_stub$;
@end
@nl@tab}@nl
@else
;
@end
@end
@nl}
@end