update copyright
[fedora-idea.git] / java / java-impl / src / com / intellij / ide / macro / FileClassMacro.java
blob13306519d8cdaa86dfa7d2b327ea4aee22b7a2e2
1 /*
2 * Copyright 2000-2009 JetBrains s.r.o.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
16 package com.intellij.ide.macro;
18 import com.intellij.openapi.actionSystem.DataContext;
19 import com.intellij.psi.PsiClass;
20 import com.intellij.psi.PsiJavaFile;
21 import com.intellij.ide.IdeBundle;
22 import com.intellij.ide.JavaDataAccessors;
24 public final class FileClassMacro extends Macro {
25 public String getName() {
26 return "FileClass";
29 public String getDescription() {
30 return IdeBundle.message("macro.class.name");
33 public String expand(DataContext dataContext) {
34 //Project project = (Project)dataContext.getData(DataConstants.PROJECT);
35 //if (project == null) {
36 // return null;
37 //}
38 //VirtualFile file = (VirtualFile)dataContext.getData(DataConstantsEx.VIRTUAL_FILE);
39 //if (file == null) {
40 // return null;
41 //}
42 //PsiFile psiFile = PsiManager.getInstance(project).findFile(file);
43 //if (!(psiFile instanceof PsiJavaFile)) {
44 // return null;
45 //}
46 final PsiJavaFile javaFile = JavaDataAccessors.PSI_JAVA_FILE.from(dataContext);
47 if (javaFile == null) return null;
48 PsiClass[] classes = javaFile.getClasses();
49 if (classes.length == 1) {
50 return classes[0].getQualifiedName();
52 String fileName = javaFile.getVirtualFile().getNameWithoutExtension();
53 for (int i = 0; i < classes.length; i++) {
54 PsiClass aClass = classes[i];
55 String name = aClass.getName();
56 if (fileName.equals(name)) {
57 return aClass.getQualifiedName();
60 return null;