blob: 2829a69c120b9a9945510622576dbc97ef9e364e [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2017 CEA LIST
* 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-v10.html
*
* Contributors:
* Imen BOUDHIBA (CEA LIST) imen.boudhiba@cea.fr - initial API and implementation
*******************************************************************************/
package org.eclipse.efm.modeling.codegen.xlia.interaction;
import org.eclipse.uml2.uml.CombinedFragment;
import org.eclipse.uml2.uml.InteractionFragment;
import org.eclipse.uml2.uml.InteractionOperand;
import org.eclipse.uml2.uml.Lifeline;
import org.eclipse.uml2.uml.Message;
import org.eclipse.uml2.uml.TimeObservation;
public interface NameHelper {
default String qualifiedNameOf(final Lifeline lifeline) {
final StringBuilder buffer = new StringBuilder();
buffer.append( lifeline.getRepresents().getType().getName() )
.append( "#" )
.append(lifeline.getName())
.append( "." )
.append(lifeline.getName());
return buffer.toString();
}
default String messagesSignatureEnumTypeName() {
return "SIGNATURE_ID";
}
default String nameOfMessageSignature(final Message message) {
return "SIG_" + message.getSignature().getName();
}
default String nameOfMessageParamsVariable(final Message message) {
return message.getName() + "#params";
}
default String nameOfSchedulingVariable(
final CombinedFragment combinedFragment)
{
final StringBuilder buffer = new StringBuilder();
buffer.append( combinedFragment.getName() )
.append( "#Schedule" );
return buffer.toString();
}
default String nameOfScheduledRegionVariable(
final CombinedFragment combinedFragment)
{
final StringBuilder buffer = new StringBuilder();
buffer.append( combinedFragment.getName() )
.append( "#current#schedule#region" );
return buffer.toString();
}
default String nameOfEnumRegionsType(final CombinedFragment combinedFragment) {
final StringBuilder buffer = new StringBuilder();
buffer.append( "Enum#")
.append( combinedFragment.getName() );
return buffer.toString();
}
default String nameOfEnumLiteralRegionOUT(final CombinedFragment combinedFragment) {
final StringBuilder buffer = new StringBuilder();
buffer.append( "Region#")
.append( combinedFragment.getName() )
.append("#OUT");
return buffer.toString();
}
default String qualifiedNameOfEnumLiteralRegionOUT(
final CombinedFragment combinedFragment)
{
final StringBuilder buffer = new StringBuilder();
buffer.append(nameOfEnumRegionsType(combinedFragment))
.append( ".Region#")
.append( combinedFragment.getName() )
.append("#OUT");
return buffer.toString();
}
default String nameOfEnumLiteralRegion(final InteractionOperand interactionOperand) {
final StringBuilder buffer = new StringBuilder();
buffer.append( "Region#")
.append( interactionOperand.getName() );
return buffer.toString();
}
default String qualifiedNameOfEnumLiteralRegion(
final InteractionOperand interactionOperand)
{
final CombinedFragment combinedFragment =
(CombinedFragment)(interactionOperand.eContainer());
final StringBuilder buffer = new StringBuilder();
buffer.append(nameOfEnumRegionsType(combinedFragment))
.append( ".Region#")
.append( interactionOperand.getName() );
return buffer.toString();
}
default String nameOfEntryTransitionFragment(
final InteractionFragment interactionFragment,
final String interactionOperator, final boolean isFirst)
{
final StringBuilder buffer = new StringBuilder();
buffer.append("tr_").append(interactionOperator)
.append(isFirst ? "first#" : "entry#" )
.append(interactionFragment.getName());
return buffer.toString();
}
default String nameOfTimeObservationIndex(final TimeObservation timeObs) {
return "i_" + timeObs.getName();
}
}