From df128513357e9b386b8ebabe553d49810d1856f7 Mon Sep 17 00:00:00 2001 From: Dmitrii Gridin Date: Wed, 25 Jan 2023 12:54:45 +0100 Subject: [PATCH] [SLC] introduce CompositeAdditionalAnnotationsProvider ^KT-56046 --- .../CompositeAdditionalAnnotationsProvider.kt | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/annotations/CompositeAdditionalAnnotationsProvider.kt diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/annotations/CompositeAdditionalAnnotationsProvider.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/annotations/CompositeAdditionalAnnotationsProvider.kt new file mode 100644 index 00000000000..cf536054000 --- /dev/null +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/annotations/CompositeAdditionalAnnotationsProvider.kt @@ -0,0 +1,27 @@ +/* + * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.light.classes.symbol.annotations + +import com.intellij.psi.PsiAnnotation +import com.intellij.psi.PsiModifierList + +internal class CompositeAdditionalAnnotationsProvider(val providers: List) : AdditionalAnnotationsProvider { + override fun addAllAnnotations( + currentRawAnnotations: MutableList, + foundQualifiers: MutableSet, + owner: PsiModifierList, + ) { + for (provider in providers) { + provider.addAllAnnotations(currentRawAnnotations, foundQualifiers, owner) + } + } + + override fun findAdditionalAnnotation( + annotationsBox: LazyAnnotationsBox, + qualifiedName: String, + owner: PsiModifierList + ): PsiAnnotation? = providers.firstNotNullOfOrNull { it.findAdditionalAnnotation(annotationsBox, qualifiedName, owner) } +}