From c1c83865c291f758f393061406b4b8b96041925a Mon Sep 17 00:00:00 2001 From: Daniil Ovchinnikov Date: Wed, 24 Aug 2016 11:12:59 +0300 Subject: [PATCH] [groovy] implement "generate accessor" provider instead of deprecated register() in static initializer --- plugins/groovy/src/META-INF/plugin.xml | 1 + .../GroovyGenerateAccessorProvider.java | 46 +++++++++++++++++++ .../GroovyGenerateGetterSetterAction.java | 30 +----------- .../generate/GroovyGenerateMembersTest.groovy | 7 +-- 4 files changed, 49 insertions(+), 35 deletions(-) create mode 100644 plugins/groovy/src/org/jetbrains/plugins/groovy/actions/generate/accessors/GroovyGenerateAccessorProvider.java diff --git a/plugins/groovy/src/META-INF/plugin.xml b/plugins/groovy/src/META-INF/plugin.xml index 92502e853fd7..3fadf7eb076e 100644 --- a/plugins/groovy/src/META-INF/plugin.xml +++ b/plugins/groovy/src/META-INF/plugin.xml @@ -1612,6 +1612,7 @@ + diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/actions/generate/accessors/GroovyGenerateAccessorProvider.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/actions/generate/accessors/GroovyGenerateAccessorProvider.java new file mode 100644 index 000000000000..a0cc5bc61d2d --- /dev/null +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/actions/generate/accessors/GroovyGenerateAccessorProvider.java @@ -0,0 +1,46 @@ +/* + * Copyright 2000-2016 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.jetbrains.plugins.groovy.actions.generate.accessors; + +import com.intellij.codeInsight.generation.EncapsulatableClassMember; +import com.intellij.psi.PsiClass; +import com.intellij.psi.PsiEnumConstant; +import com.intellij.psi.PsiField; +import com.intellij.util.NotNullFunction; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.plugins.groovy.lang.psi.api.statements.GrField; +import org.jetbrains.plugins.groovy.lang.psi.api.statements.typedef.GrTypeDefinition; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.List; + +public class GroovyGenerateAccessorProvider implements NotNullFunction> { + + @NotNull + @Override + public Collection fun(PsiClass s) { + if (!(s instanceof GrTypeDefinition)) return Collections.emptyList(); + final List result = new ArrayList<>(); + for (PsiField field : s.getFields()) { + if (!(field instanceof PsiEnumConstant) && field instanceof GrField) { + result.add(new GrFieldMember(field)); + } + } + return result; + } +} diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/actions/generate/accessors/GroovyGenerateGetterSetterAction.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/actions/generate/accessors/GroovyGenerateGetterSetterAction.java index 56300fd324e8..16ed22ea00c1 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/actions/generate/accessors/GroovyGenerateGetterSetterAction.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/actions/generate/accessors/GroovyGenerateGetterSetterAction.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2014 JetBrains s.r.o. + * Copyright 2000-2016 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,22 +15,8 @@ */ package org.jetbrains.plugins.groovy.actions.generate.accessors; -import com.intellij.codeInsight.generation.EncapsulatableClassMember; -import com.intellij.codeInsight.generation.GenerateAccessorProviderRegistrar; import com.intellij.codeInsight.generation.GenerateGetterAndSetterHandler; -import com.intellij.psi.PsiClass; -import com.intellij.psi.PsiEnumConstant; -import com.intellij.psi.PsiField; -import com.intellij.util.NotNullFunction; -import org.jetbrains.annotations.NotNull; import org.jetbrains.plugins.groovy.actions.generate.GrBaseGenerateAction; -import org.jetbrains.plugins.groovy.lang.psi.api.statements.GrField; -import org.jetbrains.plugins.groovy.lang.psi.api.statements.typedef.GrTypeDefinition; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.List; /** * @author Max Medvedev @@ -39,18 +25,4 @@ public class GroovyGenerateGetterSetterAction extends GrBaseGenerateAction { public GroovyGenerateGetterSetterAction() { super(new GenerateGetterAndSetterHandler()); } - - static { - GenerateAccessorProviderRegistrar.registerProvider(s -> { - if (!(s instanceof GrTypeDefinition)) return Collections.emptyList(); - final List result = new ArrayList<>(); - for (PsiField field : s.getFields()) { - if (!(field instanceof PsiEnumConstant) && field instanceof GrField) { - result.add(new GrFieldMember((GrField)field)); - } - } - return result; - }); - } - } diff --git a/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/actions/generate/GroovyGenerateMembersTest.groovy b/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/actions/generate/GroovyGenerateMembersTest.groovy index 76129cfdf38b..971e681fcc5c 100644 --- a/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/actions/generate/GroovyGenerateMembersTest.groovy +++ b/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/actions/generate/GroovyGenerateMembersTest.groovy @@ -1,5 +1,5 @@ /* - * Copyright 2000-2015 JetBrains s.r.o. + * Copyright 2000-2016 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -28,7 +28,6 @@ import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase import com.intellij.util.ui.UIUtil import org.jetbrains.annotations.NotNull import org.jetbrains.annotations.Nullable -import org.jetbrains.plugins.groovy.actions.generate.accessors.GroovyGenerateGetterSetterAction import org.jetbrains.plugins.groovy.actions.generate.constructors.GroovyGenerateConstructorHandler import org.jetbrains.plugins.groovy.util.TestUtils @@ -374,8 +373,6 @@ class GrImportStatementStub { } private void generateGetter() { - //noinspection GroovyResultOfObjectAllocationIgnored - new GroovyGenerateGetterSetterAction() //don't remove it!!! new WriteCommandAction(project, PsiFile.EMPTY_ARRAY) { protected void run(@NotNull Result result) throws Throwable { new GenerateGetterHandler() { @@ -391,8 +388,6 @@ class GrImportStatementStub { } private void generateSetter() { - //noinspection GroovyResultOfObjectAllocationIgnored - new GroovyGenerateGetterSetterAction() //don't remove it!!! new WriteCommandAction(project, PsiFile.EMPTY_ARRAY) { protected void run(@NotNull Result result) throws Throwable { new GenerateSetterHandler() {