protected AbstractTCGElement handleParameter(Parameter umlParameter) {
// XXX maybe one could make a difference between Variables and
// Parameters, since OCL semantic says Parameters are Immutable within
// an activity.
Type umlType = umlParameter.getType();
TCGVariable tcgVar = null;
TCGBasicVariableType tcgType = null;
tcgType = TCGBasicVariableType.getByName(umlType.getName());
if (tcgType != null) {
tcgVar = factory.createTCGBasicVariable();
((TCGBasicVariable) tcgVar).setVariableType(tcgType);
} else {
tcgVar = factory.createTCGVariable();
// TODO recurse into object type Variables.
}
tcgVar.setUsage(UMLHelper.getUsage(umlParameter));
tcgVar.setIsParameter(true);
tcgVar.setName(umlParameter.getName());
tcgActivity.getVariables().add(tcgVar);
return tcgVar;
}