2 * Copyright (c) 2000-2005 by JetBrains s.r.o. All Rights Reserved.
3 * Use is subject to license terms.
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
;
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") {
27 public boolean accepts(@NotNull final PomTargetPsiElement element
, final ProcessingContext context
) {
28 return targetPattern
.accepts(element
.getTarget(), context
);
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();