func transformToModel()

in Sources/MockoloFramework/Parsers/SwiftSyntaxExtensions.swift [154:194]


    func transformToModel(with encloserAcl: String, declKind: NominalTypeDeclKind, metadata: AnnotationMetadata?, processed: Bool) -> (Model, String?, Bool)? {
        if let varMember = self.decl.as(VariableDeclSyntax.self) {
            if validateMember(varMember.modifiers, declKind, processed: processed) {
                let acl = memberAcl(varMember.modifiers, encloserAcl, declKind)
                if let item = varMember.models(with: acl, metadata: metadata, processed: processed).first {
                    return (item, varMember.attributes.trimmedDescription, false)
                }
            }
        } else if let funcMember = self.decl.as(FunctionDeclSyntax.self) {
            if validateMember(funcMember.modifiers, declKind, processed: processed) {
                let acl = memberAcl(funcMember.modifiers, encloserAcl, declKind)
                let item = funcMember.model(with: acl, declKind: declKind, funcsWithArgsHistory: metadata?.funcsWithArgsHistory, customModifiers: metadata?.modifiers, processed: processed)
                return (item, funcMember.attributes.trimmedDescription, false)
            }
        } else if let subscriptMember = self.decl.as(SubscriptDeclSyntax.self) {
            if validateMember(subscriptMember.modifiers, declKind, processed: processed) {
                let acl = memberAcl(subscriptMember.modifiers, encloserAcl, declKind)
                let item = subscriptMember.model(with: acl, declKind: declKind, processed: processed)
                return (item, subscriptMember.attributes.trimmedDescription, false)
            }
        } else if let initMember = self.decl.as(InitializerDeclSyntax.self) {
            if validateInit(initMember, declKind, processed: processed) {
                let acl = memberAcl(initMember.modifiers, encloserAcl, declKind)
                let item = initMember.model(with: acl, declKind: declKind, processed: processed)
                return (item, initMember.attributes.trimmedDescription, true)
            }
        } else if let patMember = self.decl.as(AssociatedTypeDeclSyntax.self) {
            let acl = memberAcl(patMember.modifiers, encloserAcl, declKind)
            let item = patMember.model(with: acl, declKind: declKind, overrides: metadata?.typeAliases)
            return (item, patMember.attributes.trimmedDescription, false)
        } else if let taMember = self.decl.as(TypeAliasDeclSyntax.self) {
            let acl = memberAcl(taMember.modifiers, encloserAcl, declKind)
            let item = taMember.model(with: acl, declKind: declKind, overrides: metadata?.typeAliases, processed: processed)
            return (item, taMember.attributes.trimmedDescription, false)
        } else if let ifMacroMember = self.decl.as(IfConfigDeclSyntax.self) {
            let (item, attr, initFlag) = ifMacroMember.model(with: encloserAcl, declKind: declKind, metadata: metadata, processed: processed)
            return (item, attr, initFlag)
        }

        return nil
    }