From 95113e2feefe43d23c4f1fd4c77688f59f11fea8 Mon Sep 17 00:00:00 2001 From: Mike Aizatsky Date: Wed, 19 Jan 2005 21:34:39 +0300 Subject: [PATCH] ZKM export: printing super clasess/interfaces. --- .../ui/DependenciesPanel.java | 34 ++++++++++++++++--- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/source/com/intellij/packageDependencies/ui/DependenciesPanel.java b/source/com/intellij/packageDependencies/ui/DependenciesPanel.java index 04b95422e2e6..c55ef6c99c59 100644 --- a/source/com/intellij/packageDependencies/ui/DependenciesPanel.java +++ b/source/com/intellij/packageDependencies/ui/DependenciesPanel.java @@ -478,22 +478,46 @@ public class DependenciesPanel extends JPanel { System.out.println("// -----------------------------------------------------------------------------"); Set files = getSelectedScope(myRightTree); + for (Iterator iterator = files.iterator(); iterator.hasNext();) { PsiFile psiFile = iterator.next(); if (psiFile instanceof PsiJavaFile) { PsiClass[] classes = ((PsiJavaFile)psiFile).getClasses(); for (int i = 0; i < classes.length; i++) { - String qName = classes[i].getQualifiedName(); - String instr = qName.substring(0, qName.lastIndexOf(".") + 1) + "^" + classes[i].getName() + "^"; - - System.out.println(instr + " !private *(*) and"); - System.out.println(instr + " !private * and"); + final PsiClass aClass = classes[i]; + excludeClass(aClass, false); } } } System.out.println("// -----------------------------------------------------------------------------"); } + + private void excludeClass(final PsiClass aClass, boolean base) { + String qName = aClass.getQualifiedName(); + if (!qName.startsWith("com.intellij")) return; + + String instr = qName.substring(0, qName.lastIndexOf(".") + 1) + "^" + aClass.getName() + "^"; + + System.out.print(instr + " !private *(*) and"); + if (base) System.out.print(" //base"); + System.out.println(); + System.out.print(instr + " !private * and"); + if (base) System.out.print(" //base"); + System.out.println(); + + final PsiClass[] supers = aClass.getSupers(); + for (int i = 0; i < supers.length; i++) { + PsiClass aSuper = supers[i]; + excludeClass(aSuper, true); + } + + final PsiClass[] interfaces = aClass.getInterfaces(); + for (int i = 0; i < interfaces.length; i++) { + PsiClass anInterface = interfaces[i]; + excludeClass(anInterface, true); + } + } } private static class MyTree extends Tree implements DataProvider {