in code/nxt-integration/src/main/kotlin/org/fbme/integration/nxt/refactorings/DeclarationExtractor.kt [61:89]
fun extractParameters(
parameters: List<ParameterDeclaration>,
functionBlockDeclaration: FunctionBlockDeclaration,
type: Type,
shift: CoordinateShift
): List<ParameterDeclaration> {
val externalParameters: MutableList<ParameterDeclaration> = ArrayList()
val xShift = shift.getX(type)
var yShift = shift.getY(type)
for (parameter in parameters) {
val externalConnections = findConnections(parameter, type, oldNetworkParameterConnections)
if (!externalConnections.isEmpty()) {
val copyParameter = parameter.copy() as ParameterDeclaration
declarationPortPathMap[copyParameter] = PortPathNetworkCoordinates(
createDataPortPath(functionBlockDeclaration, parameter),
Point(
functionBlockDeclaration.x + xShift,
functionBlockDeclaration.y + yShift
)
)
parameterDeclarationCopyMap[parameter] = copyParameter
saveExternalConnections(type, copyParameter, externalConnections)
externalParameters.add(copyParameter)
}
yShift += shift.yDiff
}
shift.setY(type, yShift)
return externalParameters
}