Package com.squareup.ideaplugin.otto

Source Code of com.squareup.ideaplugin.otto.BusPostDecider

package com.squareup.ideaplugin.otto;

import com.intellij.psi.PsiClass;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiMethodCallExpression;
import com.intellij.psi.PsiType;
import com.intellij.usages.Usage;
import com.intellij.usages.UsageInfo2UsageAdapter;

public class BusPostDecider implements Decider {

  private PsiClass eventClass;

  public BusPostDecider(PsiClass eventClass) {
    this.eventClass = eventClass;
  }

  @Override public boolean shouldShow(Usage usage) {
    PsiElement element = ((UsageInfo2UsageAdapter) usage).getElement();
    PsiMethodCallExpression methodCall = PsiConsultantImpl.findMethodCall(element);
    if (methodCall != null) {
      PsiType[] expressionTypes = methodCall.getArgumentList().getExpressionTypes();
      for (PsiType expressionType : expressionTypes) {
        PsiClass argumentEventClass = PsiConsultantImpl.getClass(expressionType);
        if (argumentEventClass.equals(this.eventClass)) {
          return true;
        }
      }
    }

    return false;
  }
}
TOP

Related Classes of com.squareup.ideaplugin.otto.BusPostDecider

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.