Java 类com.intellij.psi.PsiAnonymousClass 实例源码

项目:intellij-ce-playground    文件:DirectClassInheritorsSearch.java   
public static Query<PsiClass> search(final PsiClass aClass,
                                     SearchScope scope,
                                     boolean includeAnonymous,
                                     final boolean checkInheritance) {
  final Query<PsiClass> raw = INSTANCE.createUniqueResultsQuery(new SearchParameters(aClass, scope, includeAnonymous, checkInheritance));

  if (!includeAnonymous) {
    return new FilteredQuery<PsiClass>(raw, new Condition<PsiClass>() {
      @Override
      public boolean value(final PsiClass psiClass) {
        return !(psiClass instanceof PsiAnonymousClass);
      }
    });
  }

  return raw;
}
项目:intellij-ce-playground    文件:JvmSmartStepIntoHandler.java   
/**
 * Override in case if your JVMNames slightly different then it can be provided by getJvmSignature method.
 *
 * @param stepTarget
 * @return SmartStepFilter
 */
@Nullable
protected MethodFilter createMethodFilter(SmartStepTarget stepTarget) {
  if (stepTarget instanceof MethodSmartStepTarget) {
    final PsiMethod method = ((MethodSmartStepTarget)stepTarget).getMethod();
    if (stepTarget.needsBreakpointRequest()) {
      return Registry.is("debugger.async.smart.step.into") && method.getContainingClass() instanceof PsiAnonymousClass
             ? new ClassInstanceMethodFilter(method, stepTarget.getCallingExpressionLines())
             : new AnonymousClassMethodFilter(method, stepTarget.getCallingExpressionLines());
    }
    else {
      return new BasicStepMethodFilter(method, stepTarget.getCallingExpressionLines());
    }
  }
  if (stepTarget instanceof LambdaSmartStepTarget) {
    final LambdaSmartStepTarget lambdaTarget = (LambdaSmartStepTarget)stepTarget;
    return new LambdaMethodFilter(lambdaTarget.getLambda(), lambdaTarget.getOrdinal(), stepTarget.getCallingExpressionLines());
  }
  return null;
}
项目:intellij-ce-playground    文件:JavaAnonymousClassesNodeProvider.java   
@NotNull
@Override
public Collection<JavaAnonymousClassTreeElement> provideNodes(@NotNull TreeElement node) {
  if (node instanceof PsiMethodTreeElement || node instanceof PsiFieldTreeElement || node instanceof ClassInitializerTreeElement) {
    final PsiElement el = ((PsiTreeElementBase)node).getElement();
    if (el != null) {
      for (AnonymousElementProvider provider : Extensions.getExtensions(AnonymousElementProvider.EP_NAME)) {
        final PsiElement[] elements = provider.getAnonymousElements(el);
        if (elements.length > 0) {
          List<JavaAnonymousClassTreeElement> result = new ArrayList<JavaAnonymousClassTreeElement>(elements.length);
          for (PsiElement element : elements) {
            result.add(new JavaAnonymousClassTreeElement((PsiAnonymousClass)element, new HashSet<PsiClass>()));
          }
          return result;
        }
      }
    }
  }
  return Collections.emptyList();
}
项目:intellij-ce-playground    文件:TurnRefsToSuperHandler.java   
public void invoke(@NotNull Project project, Editor editor, PsiFile file, DataContext dataContext) {
  int offset = editor.getCaretModel().getOffset();
  editor.getScrollingModel().scrollToCaret(ScrollType.MAKE_VISIBLE);
  PsiElement element = file.findElementAt(offset);
  while (true) {
    if (element == null || element instanceof PsiFile) {
      String message = RefactoringBundle.getCannotRefactorMessage(RefactoringBundle.message("error.wrong.caret.position.class"));
      CommonRefactoringUtil.showErrorHint(project, editor, message, REFACTORING_NAME, HelpID.TURN_REFS_TO_SUPER);
      return;
    }
    if (element instanceof PsiClass && !(element instanceof PsiAnonymousClass)) {
      invoke(project, new PsiElement[]{element}, dataContext);
      return;
    }
    element = element.getParent();
  }
}
项目:intellij-ce-playground    文件:MoveAnonymousToInnerClassFix.java   
@Override
public void doFix(@NotNull final Project project, ProblemDescriptor descriptor) {
  final PsiElement nameElement = descriptor.getPsiElement();
  final PsiAnonymousClass aClass =
    (PsiAnonymousClass)nameElement.getParent();
  final JavaRefactoringActionHandlerFactory factory =
    JavaRefactoringActionHandlerFactory.getInstance();
  final RefactoringActionHandler anonymousToInner =
    factory.createAnonymousToInnerHandler();
  final DataManager dataManager = DataManager.getInstance();
  final DataContext dataContext = dataManager.getDataContext();
  final Runnable runnable = new Runnable() {
    @Override
    public void run() {
      anonymousToInner.invoke(project, new PsiElement[]{aClass}, dataContext);
    }
  };
  if (ApplicationManager.getApplication().isUnitTestMode()) {
    runnable.run();
  }
  else {
    ApplicationManager.getApplication().invokeLater(runnable, project.getDisposed());
  }
}
项目:tools-idea    文件:DirectClassInheritorsSearch.java   
public static Query<PsiClass> search(final PsiClass aClass,
                                     SearchScope scope,
                                     boolean includeAnonymous,
                                     final boolean checkInheritance) {
  final Query<PsiClass> raw = INSTANCE.createUniqueResultsQuery(new SearchParameters(aClass, scope, includeAnonymous, checkInheritance));

  if (!includeAnonymous) {
    return new FilteredQuery<PsiClass>(raw, new Condition<PsiClass>() {
      @Override
      public boolean value(final PsiClass psiClass) {
        return !(psiClass instanceof PsiAnonymousClass);
      }
    });
  }

  return raw;
}
项目:tools-idea    文件:JavaAnonymousClassesNodeProvider.java   
@Override
public Collection<JavaAnonymousClassTreeElement> provideNodes(TreeElement node) {
  if (node instanceof PsiMethodTreeElement || node instanceof PsiFieldTreeElement || node instanceof ClassInitializerTreeElement) {
    final PsiElement el = ((PsiTreeElementBase)node).getElement();
    for (AnonymousElementProvider provider : Extensions.getExtensions(AnonymousElementProvider.EP_NAME)) {
      final PsiElement[] elements = provider.getAnonymousElements(el);
      if (elements != null && elements.length > 0) {
        List<JavaAnonymousClassTreeElement> result = new ArrayList<JavaAnonymousClassTreeElement>(elements.length);
        for (PsiElement element : elements) {
          result.add(new JavaAnonymousClassTreeElement((PsiAnonymousClass)element, new HashSet<PsiClass>()));
        }
        return result;
      }
    }
  }
  return Collections.emptyList();
}
项目:tools-idea    文件:TurnRefsToSuperHandler.java   
public void invoke(@NotNull Project project, Editor editor, PsiFile file, DataContext dataContext) {
  int offset = editor.getCaretModel().getOffset();
  editor.getScrollingModel().scrollToCaret(ScrollType.MAKE_VISIBLE);
  PsiElement element = file.findElementAt(offset);
  while (true) {
    if (element == null || element instanceof PsiFile) {
      String message = RefactoringBundle.getCannotRefactorMessage(RefactoringBundle.message("error.wrong.caret.position.class"));
      CommonRefactoringUtil.showErrorHint(project, editor, message, REFACTORING_NAME, HelpID.TURN_REFS_TO_SUPER);
      return;
    }
    if (element instanceof PsiClass && !(element instanceof PsiAnonymousClass)) {
      invoke(project, new PsiElement[]{element}, dataContext);
      return;
    }
    element = element.getParent();
  }
}
项目:tools-idea    文件:MoveAnonymousToInnerClassFix.java   
@Override
public void doFix(@NotNull final Project project, ProblemDescriptor descriptor) {
  final PsiElement nameElement = descriptor.getPsiElement();
  final PsiAnonymousClass aClass =
    (PsiAnonymousClass)nameElement.getParent();
  final JavaRefactoringActionHandlerFactory factory =
    JavaRefactoringActionHandlerFactory.getInstance();
  final RefactoringActionHandler anonymousToInner =
    factory.createAnonymousToInnerHandler();
  final DataManager dataManager = DataManager.getInstance();
  final DataContext dataContext = dataManager.getDataContext();
  final Runnable runnable = new Runnable() {
    @Override
    public void run() {
      anonymousToInner.invoke(project, new PsiElement[]{aClass}, dataContext);
    }
  };
  if (ApplicationManager.getApplication().isUnitTestMode()) {
    runnable.run();
  }
  else {
    ApplicationManager.getApplication().invokeLater(runnable, project.getDisposed());
  }
}
项目:tools-idea    文件:GroovyTopLevelParentClassProvider.java   
@Nullable
@Override
protected PsiClass getCustomTopLevelParentClass(PsiClass psiClass) {
  if (!(psiClass instanceof GrTypeDefinition)) return null;

  PsiClass enclosing = PsiTreeUtil.getParentOfType(psiClass, PsiClass.class, true);
  while (enclosing != null) {
    psiClass = enclosing;
    enclosing = PsiTreeUtil.getParentOfType(enclosing, PsiClass.class, true);
  }

  if (psiClass instanceof PsiAnonymousClass) {
    final PsiFile file = psiClass.getContainingFile();
    if (file instanceof GroovyFile) {
      return ((GroovyFile)file).getScriptClass();
    }
  }

  return psiClass;
}
项目:lombok-intellij-plugin    文件:AbstractConstructorClassProcessor.java   
public boolean validateBaseClassConstructor(@NotNull PsiClass psiClass, @NotNull ProblemBuilder builder) {
  if (psiClass instanceof PsiAnonymousClass || psiClass.isEnum()) {
    return true;
  }
  PsiClass baseClass = psiClass.getSuperClass();
  if (baseClass == null) {
    return true;
  }
  PsiMethod[] constructors = baseClass.getConstructors();
  if (constructors.length == 0) {
    return true;
  }

  for (PsiMethod constructor : constructors) {
    final int parametersCount = constructor.getParameterList().getParametersCount();
    if (parametersCount == 0 || parametersCount == 1 && constructor.isVarArgs()) {
      return true;
    }
  }
  builder.addError("Lombok needs a default constructor in the base class");
  return false;
}
项目:consulo-java    文件:PsiLambdaNameHelper.java   
public static String getLambdaPrefix(@NotNull PsiLambdaExpression lambdaExpression)
{
    PsiMember member = PsiTreeUtil.getParentOfType(lambdaExpression, PsiMethod.class, PsiClass.class, PsiField.class);
    final String methodPrefix;
    if(member instanceof PsiMethod)
    {
        methodPrefix = member.getContainingClass() instanceof PsiAnonymousClass ? "" : "$" + member.getName();
    }
    else if(member instanceof PsiField && member.getContainingClass() instanceof PsiAnonymousClass)
    {
        methodPrefix = "";
    }
    else
    {
        //inside class initializer everywhere or field in a named class
        methodPrefix = "$new";
    }
    return methodPrefix;
}
项目:consulo-java    文件:InferenceFromSourceUtil.java   
private static boolean isUnusedInAnonymousClass(@NotNull PsiMethod method)
{
    PsiClass containingClass = method.getContainingClass();
    if(!(containingClass instanceof PsiAnonymousClass))
    {
        return false;
    }

    if(containingClass.getParent() instanceof PsiNewExpression && containingClass.getParent().getParent() instanceof PsiVariable && !method.getHierarchicalMethodSignature().getSuperSignatures()
            .isEmpty())
    {
        // references outside anonymous class can still resolve to this method, see com.intellij.psi.scope.util.PsiScopesUtil.setupAndRunProcessor()
        return false;
    }

    return MethodReferencesSearch.search(method, new LocalSearchScope(containingClass), false).findFirst() == null;
}
项目:consulo-java    文件:SuperCalls.java   
private static Set<String> getContainingClassNames(PsiElement position)
{
    Set<String> result = ContainerUtil.newLinkedHashSet();
    boolean add = false;
    while(position != null)
    {
        if(position instanceof PsiAnonymousClass)
        {
            add = true;
        }
        else if(add && position instanceof PsiClass)
        {
            ContainerUtil.addIfNotNull(result, ((PsiClass) position).getName());
        }
        position = position.getParent();
    }
    return result;
}
项目:consulo-java    文件:CreateTestAction.java   
public static boolean isAvailableForElement(PsiElement element) {
  if (Extensions.getExtensions(TestFramework.EXTENSION_NAME).length == 0) return false;

  if (element == null) return false;

  PsiClass psiClass = getContainingClass(element);

  if (psiClass == null) return false;

  Module srcModule = ModuleUtilCore.findModuleForPsiElement(psiClass);
  if (srcModule == null) return false;

  if (psiClass.isAnnotationType() ||
      psiClass instanceof PsiAnonymousClass ||
      PsiTreeUtil.getParentOfType(psiClass, PsiClass.class) != null || // inner
      isUnderTestSources(psiClass)) {
    return false;
  }
  return true;
}
项目:consulo-java    文件:JavaAnonymousClassesNodeProvider.java   
@Override
public Collection<JavaAnonymousClassTreeElement> provideNodes(TreeElement node) {
  if (node instanceof PsiMethodTreeElement || node instanceof PsiFieldTreeElement || node instanceof ClassInitializerTreeElement) {
    final PsiElement el = ((PsiTreeElementBase)node).getElement();
    for (AnonymousElementProvider provider : Extensions.getExtensions(AnonymousElementProvider.EP_NAME)) {
      final PsiElement[] elements = provider.getAnonymousElements(el);
      if (elements != null && elements.length > 0) {
        List<JavaAnonymousClassTreeElement> result = new ArrayList<JavaAnonymousClassTreeElement>(elements.length);
        for (PsiElement element : elements) {
          result.add(new JavaAnonymousClassTreeElement((PsiAnonymousClass)element, new HashSet<PsiClass>()));
        }
        return result;
      }
    }
  }
  return Collections.emptyList();
}
项目:consulo-java    文件:TurnRefsToSuperHandler.java   
public void invoke(@NotNull Project project, Editor editor, PsiFile file, DataContext dataContext) {
  int offset = editor.getCaretModel().getOffset();
  editor.getScrollingModel().scrollToCaret(ScrollType.MAKE_VISIBLE);
  PsiElement element = file.findElementAt(offset);
  while (true) {
    if (element == null || element instanceof PsiFile) {
      String message = RefactoringBundle.getCannotRefactorMessage(RefactoringBundle.message("error.wrong.caret.position.class"));
      CommonRefactoringUtil.showErrorHint(project, editor, message, REFACTORING_NAME, HelpID.TURN_REFS_TO_SUPER);
      return;
    }
    if (element instanceof PsiClass && !(element instanceof PsiAnonymousClass)) {
      invoke(project, new PsiElement[]{element}, dataContext);
      return;
    }
    element = element.getParent();
  }
}
项目:consulo-java    文件:InheritanceToDelegationHandler.java   
public void invoke(@NotNull Project project, Editor editor, PsiFile file, DataContext dataContext) {
  editor.getScrollingModel().scrollToCaret(ScrollType.MAKE_VISIBLE);
  int offset = editor.getCaretModel().getOffset();
  PsiElement element = file.findElementAt(offset);
  while (true) {
    if (element == null || element instanceof PsiFile) {
      String message = RefactoringBundle.getCannotRefactorMessage(RefactoringBundle.message("error.wrong.caret.position.class"));
      CommonRefactoringUtil.showErrorHint(project, editor, message, REFACTORING_NAME, HelpID.INHERITANCE_TO_DELEGATION);
      return;
    }

    if (element instanceof PsiClass && !(element instanceof PsiAnonymousClass)) {
      invoke(project, new PsiElement[]{element}, dataContext);
      return;
    }
    element = element.getParent();
  }
}
项目:consulo-java    文件:MoveAnonymousToInnerClassFix.java   
public void doFix(@NotNull final Project project, ProblemDescriptor descriptor) {
  final PsiElement nameElement = descriptor.getPsiElement();
  final PsiAnonymousClass aClass =
    (PsiAnonymousClass)nameElement.getParent();
  final JavaRefactoringActionHandlerFactory factory =
    JavaRefactoringActionHandlerFactory.getInstance();
  final RefactoringActionHandler anonymousToInner =
    factory.createAnonymousToInnerHandler();
  final DataManager dataManager = DataManager.getInstance();
  final DataContext dataContext = dataManager.getDataContext();
  final Runnable runnable = new Runnable() {
    public void run() {
      anonymousToInner.invoke(project, new PsiElement[]{aClass}, dataContext);
    }
  };
  if (ApplicationManager.getApplication().isUnitTestMode()) {
    runnable.run();
  }
  else {
    ApplicationManager.getApplication().invokeLater(runnable, project.getDisposed());
  }
}
项目:consulo-java    文件:JvmSmartStepIntoHandler.java   
/**
 * Override in case if your JVMNames slightly different then it can be provided by getJvmSignature method.
 *
 * @param stepTarget
 * @return SmartStepFilter
 */
@Nullable
protected MethodFilter createMethodFilter(SmartStepTarget stepTarget)
{
    if(stepTarget instanceof MethodSmartStepTarget)
    {
        final PsiMethod method = ((MethodSmartStepTarget) stepTarget).getMethod();
        if(stepTarget.needsBreakpointRequest())
        {
            return method.getContainingClass() instanceof PsiAnonymousClass ? new ClassInstanceMethodFilter(method, stepTarget.getCallingExpressionLines()) : new AnonymousClassMethodFilter
                    (method, stepTarget.getCallingExpressionLines());
        }
        else
        {
            return new BasicStepMethodFilter(method, stepTarget.getCallingExpressionLines());
        }
    }
    if(stepTarget instanceof LambdaSmartStepTarget)
    {
        final LambdaSmartStepTarget lambdaTarget = (LambdaSmartStepTarget) stepTarget;
        return new LambdaMethodFilter(lambdaTarget.getLambda(), lambdaTarget.getOrdinal(), stepTarget.getCallingExpressionLines());
    }
    return null;
}
项目:FindViewPlugin    文件:PsiUtils.java   
public static PsiMethod findMethod(PsiElement element) {
    PsiMethod method = (element instanceof PsiMethod) ? (PsiMethod) element :
            PsiTreeUtil.getParentOfType(element, PsiMethod.class);
    if (method != null && method.getContainingClass() instanceof PsiAnonymousClass) {
        return findMethod(method.getParent());
    }
    return method;
}
项目:intellij-ce-playground    文件:OverridingMethodsSearch.java   
private static boolean cannotBeOverriden(final PsiMethod method) {
  final PsiClass parentClass = method.getContainingClass();
  return parentClass == null
         || method.isConstructor()
         || method.hasModifierProperty(PsiModifier.STATIC)
         || method.hasModifierProperty(PsiModifier.FINAL)
         || method.hasModifierProperty(PsiModifier.PRIVATE)
         || parentClass instanceof PsiAnonymousClass
         || parentClass.hasModifierProperty(PsiModifier.FINAL);
}
项目:intellij-ce-playground    文件:PsiClassUtil.java   
public static boolean isRunnableClass(final PsiClass aClass, final boolean mustBePublic, boolean mustNotBeAbstract) {
  if (aClass instanceof PsiAnonymousClass) return false;
  if (aClass.isInterface()) return false;
  if (mustBePublic && !aClass.hasModifierProperty(PsiModifier.PUBLIC)) return false;
  if (aClass.hasModifierProperty(PsiModifier.PRIVATE)) return false;
  if (mustNotBeAbstract && aClass.hasModifierProperty(PsiModifier.ABSTRACT)) return false;
  return aClass.getContainingClass() == null || aClass.hasModifierProperty(PsiModifier.STATIC);
}
项目:intellij-ce-playground    文件:FieldEvaluator.java   
public static TargetClassFilter createClassFilter(PsiClass psiClass) {
  if (psiClass instanceof PsiAnonymousClass) {
    return TargetClassFilter.ALL;
  }
  if (PsiUtil.isLocalClass(psiClass)) {
    return new LocalClassFilter(psiClass.getName());
  }
  final String name = JVMNameUtil.getNonAnonymousClassName(psiClass);
  return name != null? new FQNameClassFilter(name) : TargetClassFilter.ALL;
}
项目:intellij-ce-playground    文件:JavaAnonymousClassTreeElement.java   
@Override
public String getPresentableText() {
  if (myName != null) return myName;
  final PsiClass element = getElement();

  if (element != null) {
    myName = JavaAnonymousClassesHelper.getName((PsiAnonymousClass)element);
    if (myName != null) return myName;
  }
  return "Anonymous";
}
项目:intellij-ce-playground    文件:JavaAnonymousClassTreeElement.java   
@Override
public String getLocationString() {
  if (myBaseName == null) {
    PsiAnonymousClass anonymousClass = (PsiAnonymousClass)getElement();
    if (anonymousClass != null) {
      myBaseName = anonymousClass.getBaseClassType().getClassName();
    }
  }
  return myBaseName;
}
项目:intellij-ce-playground    文件:GenerateEqualsAction.java   
@Override
protected PsiClass getTargetClass(Editor editor, PsiFile file) {
  final PsiClass targetClass = super.getTargetClass(editor, file);
  if (targetClass == null || targetClass instanceof PsiAnonymousClass ||
      targetClass.isEnum()) return null;
  return targetClass;
}
项目:intellij-ce-playground    文件:AnonymousTargetClassPreselectionUtil.java   
@Nullable
public static PsiClass getPreselection(Collection<PsiClass> classes, PsiClass firstClass) {
  if (firstClass instanceof PsiAnonymousClass && !PropertiesComponent.getInstance().getBoolean(PRESELECT_ANONYMOUS, true)) {
    for (PsiClass aClass : classes) {
      if (!(aClass instanceof PsiAnonymousClass)) {
        return aClass;
      }
    }
  }
  return null;
}
项目:intellij-ce-playground    文件:QualifiedClassNameMacro.java   
@Override
public Result calculateResult(@NotNull Expression[] params, final ExpressionContext context) {
  PsiElement place = context.getPsiElementAtStartOffset();
  while(place != null){
    if (place instanceof PsiClass && !(place instanceof PsiAnonymousClass) && !(place instanceof PsiTypeParameter)){
      final PsiClass psiClass = ((PsiClass)place);
      return new TextResult(psiClass.getQualifiedName());
    }
    place = place.getParent();
  }

  return null;
}
项目:intellij-ce-playground    文件:AnonymousToInnerAction.java   
protected boolean isAvailableOnElementInEditorAndFile(@NotNull final PsiElement element, @NotNull final Editor editor, @NotNull PsiFile file, @NotNull DataContext context) {
  final PsiElement targetElement = file.findElementAt(editor.getCaretModel().getOffset());
  if (PsiTreeUtil.getParentOfType(targetElement, PsiAnonymousClass.class) != null) {
    return true;
  }
  if (PsiTreeUtil.getParentOfType(element, PsiAnonymousClass.class) != null) {
    return true;
  }
  final PsiNewExpression newExpression = PsiTreeUtil.getParentOfType(element, PsiNewExpression.class);
  return newExpression != null && newExpression.getAnonymousClass() != null;
}
项目:intellij-ce-playground    文件:MoveAnonymousToInnerHandler.java   
@Override
public boolean canMove(PsiElement[] elements, @Nullable PsiElement targetContainer) {
  for (PsiElement element : elements) {
    if (!(element instanceof PsiAnonymousClass)) return false;
  }
  return super.canMove(elements, targetContainer);
}
项目:intellij-ce-playground    文件:MoveAnonymousToInnerHandler.java   
public boolean tryToMove(final PsiElement element, final Project project, final DataContext dataContext, final PsiReference reference,
                         final Editor editor) {
  if (element instanceof PsiAnonymousClass) {
    new AnonymousToInnerHandler().invoke(project, editor, (PsiAnonymousClass)element);
    return true;
  }
  return false;
}
项目:intellij-ce-playground    文件:ExtendsConcreteCollectionInspection.java   
@Override
protected InspectionGadgetsFix buildFix(Object... infos) {
  final PsiClass aClass = (PsiClass)infos[1];
  // skip inheritance with delegation for anonymous classes
  // or better suggest to replace anonymous with inner and then replace with delegation
  if (aClass instanceof PsiAnonymousClass) {
    return null;
  }
  return new ReplaceInheritanceWithDelegationFix();
}
项目:intellij-ce-playground    文件:ExtendsThreadInspection.java   
/**
 * @see com.siyeh.ig.inheritance.ExtendsConcreteCollectionInspection#buildFix(java.lang.Object...)
 */
@Override
protected InspectionGadgetsFix buildFix(Object... infos) {
  final PsiClass aClass = (PsiClass)infos[0];
  if (aClass instanceof PsiAnonymousClass) {
    return null;
  }
  return new ReplaceInheritanceWithDelegationFix();
}
项目:intellij-ce-playground    文件:NonSerializableFieldInSerializableClassInspectionBase.java   
@Override
public void visitField(@NotNull PsiField field) {
  if (field.hasModifierProperty(PsiModifier.TRANSIENT) || field.hasModifierProperty(PsiModifier.STATIC)) {
    return;
  }
  final PsiClass aClass = field.getContainingClass();
  if (aClass == null) {
    return;
  }
  if (ignoreAnonymousInnerClasses && aClass instanceof PsiAnonymousClass) {
    return;
  }
  if (!SerializationUtils.isSerializable(aClass)) {
    return;
  }
  if (SerializationUtils.isProbablySerializable(field.getType())) {
    return;
  }
  final boolean hasWriteObject = SerializationUtils.hasWriteObject(aClass);
  if (hasWriteObject) {
    return;
  }
  if (isIgnoredSubclass(aClass)) {
    return;
  }
  if (AnnotationUtil.isAnnotated(field, ignorableAnnotations)) {
    return;
  }
  registerFieldError(field, field);
}
项目:intellij-ce-playground    文件:NonSerializableWithSerialVersionUIDFieldInspection.java   
@Override
@NotNull
protected InspectionGadgetsFix[] buildFixes(Object... infos) {
  final PsiClass aClass = (PsiClass)infos[0];
  if (aClass.isAnnotationType() || aClass.isInterface() || aClass instanceof PsiAnonymousClass) {
    return new InspectionGadgetsFix[]{new RemoveSerialVersionUIDFix()};
  }
  return new InspectionGadgetsFix[]{DelegatingFixFactory.createMakeSerializableFix(aClass), new RemoveSerialVersionUIDFix()};
}
项目:intellij-ce-playground    文件:NonSerializableWithSerializationMethodsInspection.java   
@Override
protected InspectionGadgetsFix buildFix(Object... infos) {
  final PsiClass aClass = (PsiClass)infos[2];
  if (aClass instanceof PsiAnonymousClass) {
    return null;
  }
  return DelegatingFixFactory.createMakeSerializableFix(aClass);
}