DomTarget patterns & IDEADEV-39475
[fedora-idea.git] / lang-api / src / com / intellij / patterns / PlatformPatterns.java
blobfb1afece25c0e57efc1eb8505a11c322312c5bcf
1 /*
2 * Copyright (c) 2000-2005 by JetBrains s.r.o. All Rights Reserved.
3 * Use is subject to license terms.
4 */
5 package com.intellij.patterns;
7 import com.intellij.psi.PsiElement;
8 import com.intellij.psi.PsiFile;
9 import com.intellij.psi.tree.IElementType;
10 import com.intellij.pom.PomTargetPsiElement;
11 import com.intellij.pom.PomTarget;
12 import com.intellij.util.ProcessingContext;
13 import org.jetbrains.annotations.NotNull;
15 /**
16 * @author peter
18 public class PlatformPatterns extends StandardPatterns {
20 public static PsiElementPattern.Capture<PsiElement> psiElement() {
21 return new PsiElementPattern.Capture<PsiElement>(PsiElement.class);
24 public static PsiElementPattern.Capture<PomTargetPsiElement> pomElement(final ElementPattern<? extends PomTarget> targetPattern) {
25 return new PsiElementPattern.Capture<PomTargetPsiElement>(PomTargetPsiElement.class).with(new PatternCondition<PomTargetPsiElement>("withPomTarget") {
26 @Override
27 public boolean accepts(@NotNull final PomTargetPsiElement element, final ProcessingContext context) {
28 return targetPattern.accepts(element.getTarget(), context);
30 });
33 public static PsiFilePattern.Capture<PsiFile> psiFile() {
34 return new PsiFilePattern.Capture<PsiFile>(PsiFile.class);
37 public static <T extends PsiFile> PsiFilePattern.Capture<T> psiFile(Class<T> fileClass) {
38 return new PsiFilePattern.Capture<T>(fileClass);
41 public static PsiElementPattern.Capture<PsiElement> psiElement(IElementType type) {
42 return psiElement().withElementType(type);
45 public static <T extends PsiElement> PsiElementPattern.Capture<T> psiElement(final Class<T> aClass) {
46 return new PsiElementPattern.Capture<T>(aClass);
49 public static IElementTypePattern elementType() {
50 return new IElementTypePattern();
53 public static VirtualFilePattern virtualFile() {
54 return new VirtualFilePattern();