blob: 08adeb8a5830371ed327b07a02edb29923b35068 [file] [log] [blame]
[comment encoding = UTF-8 /]
[comment
-----------------------------------------------------------------------
-- Ada infrastructural code generator --
-- for the CHESS component model --
-- --
-- Copyright (C) 2011-2012 --
-- University of Padova, ITALY --
-- --
-- Author: Marco Panunzio panunzio@math.unipd.it --
-- --
-- All rights reserved. This program and the accompanying materials --
-- are made available under the terms of the Eclipse Public License --
-- v1.0 which accompanies this distribution, and is available at --
-- http://www.eclipse.org/legal/epl-v20.html --
-----------------------------------------------------------------------
/]
[module DistributionNamingData('http://www.eclipse.org/uml2/3.0.0/UML', 'http://www.eclipse.org/papyrus/GCM/1')]
[import org::polarsys::chess::codegen::ada::main::Copyright /]
[template public generateDistributionNamingData(model : Model, procNode: InstanceSpecification) {
procNodeName : String = procNode.name;
clSvPortStName : String = 'MARTE::MARTE_DesignModel::GCM::ClientServerPort';
assignStName : String = 'MARTE::MARTE_Foundations::Alloc::Assign';
chHwProcessorStName : String = 'CHESS::Predictability::DeploymentConfiguration::HardwareBaseline::CH_HwProcessor';
compTypeStName : String = 'CHESS::ComponentModel::ComponentType';
compImplStName : String = 'CHESS::ComponentModel::ComponentImplementation';
allCompInstList : Sequence(InstanceSpecification) = getComponentInstanceList(InstanceSpecification.allInstances()->asSequence(), compImplStName)->filter(InstanceSpecification);
cTypeList : Sequence(Component) = getAllComponentTypeList(Component.allInstances()->asSequence(), compTypeStName)->filter(Component);
providedOperationList : Sequence(Operation) = getProvidedOperationList(cTypeList, clSvPortStName)->filter(Operation);
}
]
[comment distribution_naming_data.ads /]
[file (procNodeName.concat('/middleware/src/distribution_naming_data.ads').toLower(), false, 'UTF-8')]
[generateCopyrightAda(model)/]
package Distribution_Naming_Data is
-- pragma Pure(Distribution_Naming_Data);
[if (allCompInstList->size() = 1)]
type Destination_Instance_Name is ([allCompInstList->first().name.replaceAll('\\.','_')/]);
for Destination_Instance_Name use ([allCompInstList->first().name.replaceAll('\\.','_')/]);
[else]
type Destination_Instance_Name is ([allCompInstList->first().name.replaceAll('\\.','_')/][for (is : InstanceSpecification | allCompInstList->excluding(allCompInstList->first()))],
[is.name.replaceAll('\\.','_')/][/for]);
for Destination_Instance_Name use ([allCompInstList->first().name.replaceAll('\\.','_')/] => 0[for (is : InstanceSpecification | allCompInstList->excluding(allCompInstList->first()))],
[is.name.replaceAll('\\.','_')/] => [i/][/for]);
[/if]
type Instance_Operation_Name is ([providedOperationList->first().name/][for (op : Operation | providedOperationList->excluding(providedOperationList->first()))],
[op.name/][/for]);
for Instance_Operation_Name use ([providedOperationList->first().name/] => 0[for (op : Operation | providedOperationList->excluding(providedOperationList->first()))],
[op.name/] => [i/][/for]);
end Distribution_Naming_Data;
[/file]
[/template]
[query public getProvidedInterface(arg0 : Port, arg1 : String) : Interface
= invoke('org.polarsys.chess.codegen.ada.service.UML2Service', 'getProvidedInterface(org.eclipse.uml2.uml.Port, java.lang.String)', Sequence{arg0, arg1}) /]
[query public getProvidedInterfaceSlotList(arg0 : Sequence(OclAny), arg1 : String) : Sequence(OclAny)
= invoke('org.polarsys.chess.codegen.ada.service.UML2Service', 'getProvidedInterfaceSlotList(java.util.List, java.lang.String)', Sequence{arg0, arg1}) /]
[query public getComponentInstanceList(arg0 : Sequence(OclAny), arg1 : String) : Sequence(OclAny)
= invoke('org.polarsys.chess.codegen.ada.service.UML2Service', 'getComponentInstanceList(java.util.List, java.lang.String)', Sequence{arg0, arg1}) /]
[query public getAllComponentTypeList(arg0: Sequence(OclAny), arg1 : String) : Sequence(OclAny)
= invoke('org.polarsys.chess.codegen.ada.service.UML2Service', 'getAllComponentTypeList(java.util.List, java.lang.String)', Sequence{arg0, arg1}) /]
[query public getProvidedOperationList(arg0: Sequence(OclAny), arg1 : String) : Sequence(OclAny)
= invoke('org.polarsys.chess.codegen.ada.service.UML2Service', 'getProvidedOperationList(java.util.List, java.lang.String)', Sequence{arg0, arg1}) /]