fun extractParameters()

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
    }