blob: aa767cc129210e42529e06fcda2c190cab29465c [file] [log] [blame]
package org.jetbrains.plugins.javaFX;
import com.intellij.codeInsight.runner.JavaMainMethodProvider;
import com.intellij.psi.PsiClass;
import com.intellij.psi.PsiMethod;
import com.intellij.psi.util.InheritanceUtil;
import com.intellij.psi.util.PsiMethodUtil;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.plugins.javaFX.fxml.JavaFxCommonClassNames;
public class JavaFXApplicationMainMethodProvider implements JavaMainMethodProvider {
@NonNls public static final String LAUNCH_MAIN = "launch";
@Override
public boolean isApplicable(PsiClass clazz) {
return InheritanceUtil.isInheritor(clazz, true, JavaFxCommonClassNames.JAVAFX_APPLICATION_APPLICATION);
}
@Override
public boolean hasMainMethod(PsiClass clazz) {
return InheritanceUtil.isInheritor(clazz, true, JavaFxCommonClassNames.JAVAFX_APPLICATION_APPLICATION);
}
@Override
public PsiMethod findMainInClass(PsiClass clazz) {
final PsiMethod[] launches = clazz.findMethodsByName(LAUNCH_MAIN, true);
for (PsiMethod launchMethod : launches) {
if (PsiMethodUtil.isMainMethod(launchMethod)) {
return launchMethod;
}
}
return null;
}
}