fun extractEvents()

in code/nxt-integration/src/main/kotlin/org/fbme/integration/nxt/refactorings/DeclarationExtractor.kt [32:59]


    fun extractEvents(
        events: List<EventDeclaration>,
        functionBlockDeclaration: FunctionBlockDeclaration,
        type: Type,
        shift: CoordinateShift
    ): List<EventDeclaration> {
        val externalEvents: MutableList<EventDeclaration> = ArrayList()
        val xShift = shift.getX(type)
        var yShift = shift.getY(type)
        for (event in events) {
            val externalConnections = findConnections(event, type, oldNetworkEventConnections)
            if (!externalConnections.isEmpty()) {
                val copyEvent = event.copy() as EventDeclaration
                declarationPortPathMap[copyEvent] = PortPathNetworkCoordinates(
                    createEventPortPath(functionBlockDeclaration, event),
                    Point(
                        functionBlockDeclaration.x + xShift,
                        functionBlockDeclaration.y + yShift
                    )
                )
                saveExternalConnections(type, copyEvent, externalConnections)
                externalEvents.add(copyEvent)
            }
            yShift += shift.yDiff
        }
        shift.setY(type, yShift)
        return externalEvents
    }