func serialize()

in Generator/Sources/NeedleFramework/Generating/Serializers/Pluginized/PluginExtensionContentSerializer.swift [34:54]


    func serialize() -> String {
        let processedProperties = component.pluginExtension.properties.map { property in
            ProcessedProperty(unprocessed: property, sourceComponentType: component.nonCoreComponent.name)
        }
        let properties = PropertiesSerializer(processedProperties: processedProperties).serialize()
        let extensionClassName = PluginExtensionClassNameSerializer(component: component).serialize()
        let pluginziedComponentPropertyName = component.data.name.lowercasedFirstChar()
        let nonCoreComponentPropertyName = component.nonCoreComponent.name.lowercasedFirstChar()

        return """
        /// \(component.data.name) plugin extension
        private class \(extensionClassName): \(component.pluginExtension.name) {
        \(properties)
            private unowned let \(nonCoreComponentPropertyName): \(component.nonCoreComponent.name)
            init(component: NeedleFoundation.Scope) {
                let \(pluginziedComponentPropertyName) = component as! \(component.data.name)
                \(nonCoreComponentPropertyName) = \(pluginziedComponentPropertyName).nonCoreComponent as! \(component.nonCoreComponent.name)
            }
        }\n
        """
    }