use of com.intellij.lang.ant.dom.AntDomRecursiveVisitor in project intellij-community by JetBrains.
the class AntBuildTargetImpl method findTask.
@Nullable
public BuildTask findTask(final String taskName) {
final PsiFile psiFile = PsiManager.getInstance(myProject).findFile(myFile);
final AntDomProject domProject = AntSupport.getAntDomProject(psiFile);
if (domProject != null) {
final AntDomTarget antTarget = domProject.findDeclaredTarget(myName);
if (antTarget != null) {
final Ref<AntDomElement> result = new Ref<>(null);
antTarget.accept(new AntDomRecursiveVisitor() {
public void visitAntDomElement(AntDomElement element) {
if (result.get() != null) {
return;
}
if (element.isTask() && taskName.equals(element.getXmlElementName())) {
result.set(element);
return;
}
super.visitAntDomElement(element);
}
});
final AntDomElement task = result.get();
if (task != null) {
return new BuildTask(this, task);
}
}
}
return null;
}
use of com.intellij.lang.ant.dom.AntDomRecursiveVisitor in project intellij-community by JetBrains.
the class CustomTypesTest method doTest.
protected void doTest() throws Exception {
String name = getTestName(false);
String text = loadFile(name + ".ant");
PsiFile file = myFixture.addFileToProject(name + ".ant", text);
final AntDomProject antProject = AntSupport.getAntDomProject(file);
final Ref<Boolean> found = new Ref<>(false);
antProject.accept(new AntDomRecursiveVisitor() {
@Override
public void visitAntDomElement(AntDomElement element) {
if (!found.get()) {
super.visitAntDomElement(element);
}
}
@Override
public void visitAntDomCustomElement(AntDomCustomElement element) {
final Class clazz = element.getDefinitionClass();
if (clazz != null && AntCustomTask.class.getName().equals(clazz.getName())) {
found.set(true);
} else {
super.visitAntDomElement(element);
}
}
});
assertTrue(found.get());
}
Aggregations