From 9481ea995441345d7c9802db9bf96597587b1838 Mon Sep 17 00:00:00 2001 From: Alexey Belkov Date: Fri, 19 May 2023 16:43:08 +0400 Subject: [PATCH] [kotlin] Convert UpdateKotlinCopyright to Kotlin ^KTIJ-16705 GitOrigin-RevId: 6280f37fefe9a3ee748cfb69d0d6b1355d2c4ab0 --- .../idea/copyright/UpdateKotlinCopyright.kt | 78 ++++++++----------- 1 file changed, 34 insertions(+), 44 deletions(-) diff --git a/plugins/kotlin/copyright/src/org/jetbrains/kotlin/idea/copyright/UpdateKotlinCopyright.kt b/plugins/kotlin/copyright/src/org/jetbrains/kotlin/idea/copyright/UpdateKotlinCopyright.kt index c794b34e89de..b9a68815a5fc 100644 --- a/plugins/kotlin/copyright/src/org/jetbrains/kotlin/idea/copyright/UpdateKotlinCopyright.kt +++ b/plugins/kotlin/copyright/src/org/jetbrains/kotlin/idea/copyright/UpdateKotlinCopyright.kt @@ -1,55 +1,45 @@ // Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package org.jetbrains.kotlin.idea.copyright -package org.jetbrains.kotlin.idea.copyright; +import com.intellij.openapi.module.Module +import com.intellij.openapi.project.Project +import com.intellij.openapi.vfs.VirtualFile +import com.intellij.psi.* +import com.intellij.util.containers.TreeTraversal +import com.maddyhome.idea.copyright.CopyrightProfile +import com.maddyhome.idea.copyright.psi.UpdatePsiFileCopyright +import org.jetbrains.kotlin.idea.KotlinFileType +import org.jetbrains.kotlin.kdoc.psi.api.KDoc +import org.jetbrains.kotlin.psi.KtDeclaration -import com.intellij.openapi.module.Module; -import com.intellij.openapi.project.Project; -import com.intellij.openapi.vfs.VirtualFile; -import com.intellij.psi.PsiComment; -import com.intellij.psi.PsiFile; -import com.intellij.psi.PsiWhiteSpace; -import com.intellij.psi.SyntaxTraverser; -import com.intellij.util.containers.ContainerUtil; -import com.intellij.util.containers.TreeTraversal; -import com.maddyhome.idea.copyright.CopyrightProfile; -import com.maddyhome.idea.copyright.psi.UpdatePsiFileCopyright; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.kotlin.idea.KotlinFileType; -import org.jetbrains.kotlin.kdoc.psi.api.KDoc; -import org.jetbrains.kotlin.psi.KtDeclaration; +class UpdateKotlinCopyright( + project: Project?, + module: Module?, + root: VirtualFile?, + copyrightProfile: CopyrightProfile? +) : UpdatePsiFileCopyright(project, module, root, copyrightProfile) { -import java.util.List; + override fun accept(): Boolean = + file.fileType === KotlinFileType.INSTANCE -public class UpdateKotlinCopyright extends UpdatePsiFileCopyright { - UpdateKotlinCopyright(Project project, Module module, VirtualFile root, CopyrightProfile copyrightProfile) { - super(project, module, root, copyrightProfile); + override fun scanFile() { + val comments = getExistentComments(file) + checkComments(comments.lastOrNull(), true, comments) } - @Override - protected boolean accept() { - return getFile().getFileType() == KotlinFileType.INSTANCE; - } - - @Override - protected void scanFile() { - List comments = getExistentComments(getFile()); - checkComments(ContainerUtil.getLastItem(comments), true, comments); - } - - @NotNull - public static List getExistentComments(@NotNull PsiFile psiFile) { - return SyntaxTraverser.psiTraverser(psiFile) + companion object { + fun getExistentComments(psiFile: PsiFile): List = + SyntaxTraverser.psiTraverser(psiFile) .withTraversal(TreeTraversal.LEAVES_DFS) .traverse() - .takeWhile( - element -> - (element instanceof PsiComment && !(element.getParent() instanceof KtDeclaration)) || - element instanceof PsiWhiteSpace || - element.getText().isEmpty() || - element.getParent() instanceof KDoc - ) - .map(e -> e.getParent() instanceof KDoc ? e.getParent() : e) - .filter(PsiComment.class) - .toList(); + .takeWhile { element: PsiElement -> + (element is PsiComment && element.getParent() !is KtDeclaration) || + element is PsiWhiteSpace || + element.text.isEmpty() || + element.parent is KDoc + } + .map { element: PsiElement -> if (element.parent is KDoc) element.parent else element } + .filterIsInstance() + .toList() } }