[groovy] revert 7131400

This commit is contained in:
Daniil Ovchinnikov
2015-07-03 15:53:11 +03:00
parent e4eb7603aa
commit a2d45184b9
7 changed files with 30 additions and 42 deletions
@@ -19,7 +19,6 @@ import com.intellij.openapi.extensions.ExtensionPointName;
import com.intellij.openapi.util.Computable;
import com.intellij.openapi.util.RecursionManager;
import com.intellij.psi.PsiMethod;
import com.intellij.util.Consumer;
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;
@@ -33,14 +32,13 @@ import java.util.List;
* @author Max Medvedev
*/
public abstract class AstTransformContributor {
public static final ExtensionPointName<AstTransformContributor> EP_NAME =
ExtensionPointName.create("org.intellij.groovy.astTransformContributor");
public static final ExtensionPointName<AstTransformContributor> EP_NAME = ExtensionPointName.create("org.intellij.groovy.astTransformContributor");
public void collectMethods(@NotNull final GrTypeDefinition clazz, Consumer<PsiMethod> collector) {
public void collectMethods(@NotNull final GrTypeDefinition clazz, Collection<PsiMethod> collector) {
}
public void collectFields(@NotNull final GrTypeDefinition clazz, Consumer<GrField> collector) {
public void collectFields(@NotNull final GrTypeDefinition clazz, Collection<GrField> collector) {
}
@@ -49,14 +47,9 @@ public abstract class AstTransformContributor {
Collection<PsiMethod> result = RecursionManager.doPreventingRecursion(clazz, true, new Computable<Collection<PsiMethod>>() {
@Override
public Collection<PsiMethod> compute() {
final Collection<PsiMethod> collector = new ArrayList<PsiMethod>();
Collection<PsiMethod> collector = new ArrayList<PsiMethod>();
for (final AstTransformContributor contributor : EP_NAME.getExtensions()) {
contributor.collectMethods(clazz, new Consumer<PsiMethod>() {
@Override
public void consume(PsiMethod method) {
collector.add(method);
}
});
contributor.collectMethods(clazz, collector);
}
return collector;
}
@@ -69,14 +62,9 @@ public abstract class AstTransformContributor {
List<GrField> fields = RecursionManager.doPreventingRecursion(clazz, true, new Computable<List<GrField>>() {
@Override
public List<GrField> compute() {
final List<GrField> collector = new ArrayList<GrField>();
List<GrField> collector = new ArrayList<GrField>();
for (final AstTransformContributor contributor : EP_NAME.getExtensions()) {
contributor.collectFields(clazz, new Consumer<GrField>() {
@Override
public void consume(GrField field) {
collector.add(field);
}
});
contributor.collectFields(clazz, collector);
}
return collector;
}
@@ -18,19 +18,20 @@ package org.jetbrains.plugins.groovy.lang.resolve.ast;
import com.intellij.psi.PsiMethod;
import com.intellij.psi.PsiModifier;
import com.intellij.psi.impl.light.LightMethodBuilder;
import com.intellij.util.Consumer;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.plugins.groovy.lang.psi.api.statements.typedef.GrTypeDefinition;
import org.jetbrains.plugins.groovy.lang.psi.impl.PsiImplUtil;
import org.jetbrains.plugins.groovy.lang.psi.util.GroovyCommonClassNames;
import java.util.Collection;
/**
* @author Max Medvedev
*/
public class AutoCloneContributor extends AstTransformContributor {
@Override
public void collectMethods(@NotNull GrTypeDefinition clazz, @NotNull Consumer<PsiMethod> collector) {
public void collectMethods(@NotNull GrTypeDefinition clazz, @NotNull Collection<PsiMethod> collector) {
if (PsiImplUtil.getAnnotation(clazz, GroovyCommonClassNames.GROOVY_TRANSFORM_AUTO_CLONE) == null) return;
final LightMethodBuilder clone = new LightMethodBuilder(clazz.getManager(), "clone");
@@ -38,6 +39,6 @@ public class AutoCloneContributor extends AstTransformContributor {
clone.setContainingClass(clazz);
clone.addException(CloneNotSupportedException.class.getName());
clone.setOriginInfo("created by @AutoClone");
collector.consume(clone);
collector.add(clone);
}
}
@@ -17,7 +17,6 @@ package org.jetbrains.plugins.groovy.lang.resolve.ast;
import com.intellij.psi.PsiMethod;
import com.intellij.psi.impl.light.LightMethodBuilder;
import com.intellij.util.Consumer;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.plugins.groovy.lang.psi.api.statements.typedef.GrTypeDefinition;
import org.jetbrains.plugins.groovy.lang.psi.impl.PsiImplUtil;
@@ -26,6 +25,7 @@ import org.jetbrains.plugins.groovy.lang.psi.util.GroovyCommonClassNames;
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectOutput;
import java.util.Collection;
/**
* @author Max Medvedev
@@ -33,7 +33,7 @@ import java.io.ObjectOutput;
public class AutoExternalizeContributor extends AstTransformContributor {
@Override
public void collectMethods(@NotNull GrTypeDefinition clazz, @NotNull Consumer<PsiMethod> collector) {
public void collectMethods(@NotNull GrTypeDefinition clazz, @NotNull Collection<PsiMethod> collector) {
if (!hasGeneratedImplementations(clazz)) return;
final LightMethodBuilder write = new LightMethodBuilder(clazz.getManager(), "writeExternal");
@@ -41,13 +41,13 @@ public class AutoExternalizeContributor extends AstTransformContributor {
write.addParameter("out", ObjectOutput.class.getName());
write.addException(IOException.class.getName());
write.setOriginInfo("created by @AutoExternalize");
collector.consume(write);
collector.add(write);
final LightMethodBuilder read = new LightMethodBuilder(clazz.getManager(), "readExternal");
read.setContainingClass(clazz);
read.addParameter("oin", ObjectInput.class.getName());
read.setOriginInfo("created by @AutoExternalize");
collector.consume(read);
collector.add(read);
}
private static boolean hasGeneratedImplementations(GrTypeDefinition clazz) {
@@ -19,7 +19,6 @@ package org.jetbrains.plugins.groovy.lang.resolve.ast;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.psi.*;
import com.intellij.psi.util.PropertyUtil;
import com.intellij.util.Consumer;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.plugins.groovy.lang.psi.api.statements.GrField;
@@ -31,6 +30,7 @@ import org.jetbrains.plugins.groovy.lang.psi.util.GroovyCommonClassNames;
import org.jetbrains.plugins.groovy.lang.psi.util.PsiUtil;
import org.jetbrains.plugins.groovy.lang.resolve.CollectClassMembersUtil;
import java.util.Collection;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
@@ -41,7 +41,7 @@ import java.util.Set;
public class ConstructorAnnotationsProcessor extends AstTransformContributor {
@Override
public void collectMethods(@NotNull GrTypeDefinition typeDefinition, @NotNull Consumer<PsiMethod> collector) {
public void collectMethods(@NotNull GrTypeDefinition typeDefinition, @NotNull Collection<PsiMethod> collector) {
if (typeDefinition.getName() == null) return;
PsiModifierList modifierList = typeDefinition.getModifierList();
@@ -63,8 +63,8 @@ public class ConstructorAnnotationsProcessor extends AstTransformContributor {
final GrLightMethodBuilder fieldsConstructor = generateFieldConstructor(typeDefinition, tupleConstructor, immutable, canonical);
final GrLightMethodBuilder mapConstructor = generateMapConstructor(typeDefinition);
collector.consume(fieldsConstructor);
collector.consume(mapConstructor);
collector.add(fieldsConstructor);
collector.add(mapConstructor);
}
@NotNull
@@ -154,7 +154,7 @@ public class ConstructorAnnotationsProcessor extends AstTransformContributor {
}
}
final Map<String, PsiMethod> properties = PropertyUtil.getAllProperties(true, false, methods);
final Map<String,PsiMethod> properties = PropertyUtil.getAllProperties(true, false, methods);
for (PsiField field : CollectClassMembersUtil.getFields(psiClass, false)) {
final String name = field.getName();
if (includeFields ||
@@ -26,7 +26,6 @@ import com.intellij.psi.util.MethodSignature;
import com.intellij.psi.util.MethodSignatureUtil;
import com.intellij.psi.util.PsiUtil;
import com.intellij.psi.util.TypeConversionUtil;
import com.intellij.util.Consumer;
import com.intellij.util.containers.ContainerUtil;
import com.intellij.util.containers.hash.HashSet;
import gnu.trove.THashMap;
@@ -51,7 +50,7 @@ import java.util.*;
*/
public class DelegatedMethodsContributor extends AstTransformContributor {
@Override
public void collectMethods(@NotNull final GrTypeDefinition clazz, @NotNull Consumer<PsiMethod> collector) {
public void collectMethods(@NotNull final GrTypeDefinition clazz, @NotNull Collection<PsiMethod> collector) {
Set<PsiClass> processed = new HashSet<PsiClass>();
if (!checkForDelegate(clazz)) return;
@@ -67,9 +66,7 @@ public class DelegatedMethodsContributor extends AstTransformContributor {
addMethodChecked(signatures, method, PsiSubstitutor.EMPTY, result);
}
for (PsiMethod method : result) {
collector.consume(method);
}
collector.addAll(result);
}
private static boolean checkForDelegate(GrTypeDefinition clazz) {
@@ -18,20 +18,21 @@ package org.jetbrains.plugins.groovy.lang.resolve.ast;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.psi.*;
import com.intellij.psi.util.TypeConversionUtil;
import com.intellij.util.Consumer;
import com.intellij.util.VisibilityUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.plugins.groovy.lang.psi.api.statements.typedef.GrTypeDefinition;
import org.jetbrains.plugins.groovy.lang.psi.impl.synthetic.GrLightMethodBuilder;
import org.jetbrains.plugins.groovy.lang.psi.util.GroovyCommonClassNames;
import java.util.Collection;
/**
* @author Maxim.Medvedev
*/
public class GrInheritConstructorContributor extends AstTransformContributor {
@Override
public void collectMethods(@NotNull GrTypeDefinition psiClass, @NotNull Consumer<PsiMethod> collector) {
public void collectMethods(@NotNull GrTypeDefinition psiClass, @NotNull Collection<PsiMethod> collector) {
if (psiClass.isAnonymous() || psiClass.isInterface() || psiClass.isEnum()) {
return;
}
@@ -58,7 +59,7 @@ public class GrInheritConstructorContributor extends AstTransformContributor {
inheritedConstructor.addParameter(name, type, false);
}
if (psiClass.findCodeMethodsBySignature(inheritedConstructor, false).length == 0) {
collector.consume(inheritedConstructor);
collector.add(inheritedConstructor);
}
}
}
@@ -17,7 +17,6 @@ package org.jetbrains.plugins.groovy.lang.resolve.ast;
import com.google.common.collect.ImmutableMap;
import com.intellij.psi.PsiModifier;
import com.intellij.util.Consumer;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.plugins.groovy.lang.psi.api.auxiliary.modifiers.GrModifierList;
import org.jetbrains.plugins.groovy.lang.psi.api.auxiliary.modifiers.annotation.GrAnnotation;
@@ -26,6 +25,8 @@ import org.jetbrains.plugins.groovy.lang.psi.api.statements.typedef.GrTypeDefini
import org.jetbrains.plugins.groovy.lang.psi.impl.synthetic.GrLightField;
import org.jetbrains.plugins.groovy.lang.psi.util.PsiUtil;
import java.util.Collection;
/**
* @author peter
*/
@@ -38,7 +39,7 @@ public class LoggingContributor extends AstTransformContributor {
build();
@Override
public void collectFields(@NotNull GrTypeDefinition psiClass, @NotNull Consumer<GrField> collector) {
public void collectFields(@NotNull GrTypeDefinition psiClass, @NotNull Collection<GrField> collector) {
GrModifierList modifierList = psiClass.getModifierList();
if (modifierList == null) return;
@@ -51,7 +52,7 @@ public class LoggingContributor extends AstTransformContributor {
field.setNavigationElement(annotation);
field.getModifierList().setModifiers(PsiModifier.PRIVATE, PsiModifier.FINAL, PsiModifier.STATIC);
field.setOriginInfo("created by @" + annotation.getShortName());
collector.consume(field);
collector.add(field);
}
}
}