blob: 9d3ebb722bdaaab8bf9bde5a8b426136a51cb2cb [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2006 - 2016 CEA LIST.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Shuai Li (CEA LIST) <shuai.li@cea.fr> - initial API and implementation
*******************************************************************************/
package org.eclipse.papyrus.designer.languages.java.codegen.xtend
import org.eclipse.papyrus.designer.languages.java.codegen.utils.JavaGenUtils
import org.eclipse.papyrus.designer.languages.java.codegen.utils.Modifier
import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Array
import org.eclipse.uml2.uml.Operation
import org.eclipse.uml2.uml.Parameter
import org.eclipse.uml2.uml.ParameterDirectionKind
import org.eclipse.uml2.uml.util.UMLUtil
import static extension org.eclipse.papyrus.designer.languages.java.codegen.xtend.JavaTypedElement.javaType
class JavaParameter {
static def javaOperationParameters(Operation operation) '''
«FOR ownedParameter : operation.ownedParameters.filter[it.direction != ParameterDirectionKind.RETURN_LITERAL && it.direction != ParameterDirectionKind.OUT_LITERAL] SEPARATOR ', '»«JavaParameter.javaParameter(ownedParameter)»«ENDFOR»'''
/**
* Java parameter. Default values are added, if parameter showDefault is true (implementation signature
*/
static def javaParameter(Parameter parameter) {
Modifier.parameterModifiers(parameter) + parameter.javaType + Modifier.modVariadic(parameter) + " " + parameter.name
}
/**
* JavaParameterCalculation for JDT
*/
static def javaParameterForJDT(Parameter parameter) {
var paramStr = JavaGenUtils.javaQualifiedName(parameter.type, parameter.operation.owner)
if (UMLUtil.getStereotypeApplication(parameter, Array) !== null) {
paramStr += "[]"
}
return paramStr
}
static def defaultValue(Parameter parameter) {
if (parameter.defaultValue !== null) " = " + parameter.defaultValue.stringValue() else ""
}
}