package com.intellij.lang.javascript.generation;
import com.intellij.codeInsight.template.Template;
import com.intellij.lang.javascript.flex.flexunit.FlexUnitSupport;
import com.intellij.lang.javascript.psi.JSFunction;
import com.intellij.lang.javascript.psi.ecmal4.JSClass;
import com.intellij.lang.javascript.psi.resolve.JSInheritanceUtil;
import com.intellij.openapi.editor.Editor;
import com.intellij.psi.PsiFile;
import org.jetbrains.annotations.NotNull;
public class JSGenerateTearDownMethodAction extends GenerateFlexUnitMethodActionBase {
protected void buildTemplate(final Template template, final JSClass jsClass) {
if (JSInheritanceUtil
.findMember("tearDown", jsClass, JSInheritanceUtil.SearchedMemberType.Methods, JSFunction.FunctionKind.SIMPLE, true) != null) {
template.addTextSegment("[After]\npublic override function tearDown():void{\nsuper.tearDown();");
template.addEndVariable();
template.addTextSegment("\n}");
}
else {
template.addTextSegment("[After]\npublic function tearDown():void{\n");
template.addEndVariable();
template.addTextSegment("\n}");
}
}
protected boolean isApplicableForJsClass(final @NotNull JSClass jsClass, final PsiFile psiFile, final @NotNull Editor editor) {
return super.isApplicableForJsClass(jsClass, psiFile, editor) && jsClass.findFunctionByName("tearDown") == null;
}
}