public class org.eclipse.jdt.internal.corext.refactoring.util.JavaElementUtil
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.eclipse.jdt.internal.corext.refactoring.util.JavaElementUtil
  super_class: java.lang.Object
{
  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.corext.refactoring.util.JavaElementUtil this
         0: .line 58
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 59
            return
        end local 0 // org.eclipse.jdt.internal.corext.refactoring.util.JavaElementUtil this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/eclipse/jdt/internal/corext/refactoring/util/JavaElementUtil;

  public static java.lang.String createMethodSignature(org.eclipse.jdt.core.IMethod);
    descriptor: (Lorg/eclipse/jdt/core/IMethod;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.core.IMethod method
         0: .line 63
            aload 0 /* method */
            invokeinterface org.eclipse.jdt.core.IMethod.getSignature:()Ljava/lang/String;
            aload 0 /* method */
            invokeinterface org.eclipse.jdt.core.IMethod.getElementName:()Ljava/lang/String;
            aload 0 /* method */
            invokeinterface org.eclipse.jdt.core.IMethod.getParameterNames:()[Ljava/lang/String;
            iconst_0
            aload 0 /* method */
            invokeinterface org.eclipse.jdt.core.IMethod.isConstructor:()Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals: org.eclipse.jdt.core.IMethod
      StackMap stack: java.lang.String java.lang.String java.lang.String[] int
         1: iconst_1
      StackMap locals: org.eclipse.jdt.core.IMethod
      StackMap stack: java.lang.String java.lang.String java.lang.String[] int int
         2: invokestatic org.eclipse.jdt.core.Signature.toString:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;ZZ)Ljava/lang/String;
            invokestatic org.eclipse.jdt.internal.core.manipulation.util.BasicElementLabels.getJavaElementName:(Ljava/lang/String;)Ljava/lang/String;
         3: areturn
         4: .line 64
      StackMap locals:
      StackMap stack: org.eclipse.jdt.core.JavaModelException
            pop
         5: .line 65
            aload 0 /* method */
            invokeinterface org.eclipse.jdt.core.IMethod.getElementName:()Ljava/lang/String;
            invokestatic org.eclipse.jdt.internal.core.manipulation.util.BasicElementLabels.getJavaElementName:(Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 0 // org.eclipse.jdt.core.IMethod method
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0  method  Lorg/eclipse/jdt/core/IMethod;
      Exception table:
        from    to  target  type
           0     3       4  Class org.eclipse.jdt.core.JavaModelException
    MethodParameters:
        Name  Flags
      method  

  public static java.lang.String createFieldSignature(org.eclipse.jdt.core.IField);
    descriptor: (Lorg/eclipse/jdt/core/IField;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.core.IField field
         0: .line 70
            new java.lang.StringBuilder
            dup
            aload 0 /* field */
            invokeinterface org.eclipse.jdt.core.IField.getDeclaringType:()Lorg/eclipse/jdt/core/IType;
            bipush 46
            invokeinterface org.eclipse.jdt.core.IType.getFullyQualifiedName:(C)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* field */
            invokeinterface org.eclipse.jdt.core.IField.getElementName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.eclipse.jdt.internal.core.manipulation.util.BasicElementLabels.getJavaElementName:(Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 0 // org.eclipse.jdt.core.IField field
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  field  Lorg/eclipse/jdt/core/IField;
    MethodParameters:
       Name  Flags
      field  

  public static java.lang.String createSignature(org.eclipse.jdt.core.IMember);
    descriptor: (Lorg/eclipse/jdt/core/IMember;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.core.IMember member
         0: .line 74
            aload 0 /* member */
            invokeinterface org.eclipse.jdt.core.IMember.getElementType:()I
            tableswitch { // 7 - 10
                    7: 2
                    8: 1
                    9: 4
                   10: 3
              default: 5
          }
         1: .line 76
      StackMap locals:
      StackMap stack:
            aload 0 /* member */
            checkcast org.eclipse.jdt.core.IField
            invokestatic org.eclipse.jdt.internal.corext.refactoring.util.JavaElementUtil.createFieldSignature:(Lorg/eclipse/jdt/core/IField;)Ljava/lang/String;
            areturn
         2: .line 78
      StackMap locals:
      StackMap stack:
            aload 0 /* member */
            checkcast org.eclipse.jdt.core.IType
            bipush 46
            invokeinterface org.eclipse.jdt.core.IType.getFullyQualifiedName:(C)Ljava/lang/String;
            invokestatic org.eclipse.jdt.internal.core.manipulation.util.BasicElementLabels.getJavaElementName:(Ljava/lang/String;)Ljava/lang/String;
            areturn
         3: .line 80
      StackMap locals:
      StackMap stack:
            getstatic org.eclipse.jdt.internal.corext.refactoring.RefactoringCoreMessages.JavaElementUtil_initializer:Ljava/lang/String;
            areturn
         4: .line 82
      StackMap locals:
      StackMap stack:
            aload 0 /* member */
            checkcast org.eclipse.jdt.core.IMethod
            invokestatic org.eclipse.jdt.internal.corext.refactoring.util.JavaElementUtil.createMethodSignature:(Lorg/eclipse/jdt/core/IMethod;)Ljava/lang/String;
            areturn
         5: .line 84
      StackMap locals:
      StackMap stack:
            iconst_0
            invokestatic org.eclipse.core.runtime.Assert.isTrue:(Z)Z
            pop
         6: .line 85
            aconst_null
            areturn
        end local 0 // org.eclipse.jdt.core.IMember member
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0  member  Lorg/eclipse/jdt/core/IMember;
    MethodParameters:
        Name  Flags
      member  

  public static org.eclipse.jdt.core.IJavaElement[] getElementsOfType(org.eclipse.jdt.core.IJavaElement[], int);
    descriptor: ([Lorg/eclipse/jdt/core/IJavaElement;I)[Lorg/eclipse/jdt/core/IJavaElement;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // org.eclipse.jdt.core.IJavaElement[] elements
        start local 1 // int type
         0: .line 90
            new java.util.HashSet
            dup
            aload 0 /* elements */
            arraylength
            invokespecial java.util.HashSet.<init>:(I)V
            astore 2 /* result */
        start local 2 // java.util.Set result
         1: .line 91
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: goto 7
         3: .line 92
      StackMap locals: java.util.Set int
      StackMap stack:
            aload 0 /* elements */
            iload 3 /* i */
            aaload
            astore 4 /* element */
        start local 4 // org.eclipse.jdt.core.IJavaElement element
         4: .line 93
            aload 4 /* element */
            invokeinterface org.eclipse.jdt.core.IJavaElement.getElementType:()I
            iload 1 /* type */
            if_icmpne 6
         5: .line 94
            aload 2 /* result */
            aload 4 /* element */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // org.eclipse.jdt.core.IJavaElement element
         6: .line 91
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 3 /* i */
            aload 0 /* elements */
            arraylength
            if_icmplt 3
        end local 3 // int i
         8: .line 96
            aload 2 /* result */
            aload 2 /* result */
            invokeinterface java.util.Set.size:()I
            anewarray org.eclipse.jdt.core.IJavaElement
            invokeinterface java.util.Set.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast org.eclipse.jdt.core.IJavaElement[]
            areturn
        end local 2 // java.util.Set result
        end local 1 // int type
        end local 0 // org.eclipse.jdt.core.IJavaElement[] elements
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0  elements  [Lorg/eclipse/jdt/core/IJavaElement;
            0    9     1      type  I
            1    9     2    result  Ljava/util/Set<Lorg/eclipse/jdt/core/IJavaElement;>;
            2    8     3         i  I
            4    6     4   element  Lorg/eclipse/jdt/core/IJavaElement;
    MethodParameters:
          Name  Flags
      elements  
      type      

  public static org.eclipse.jdt.core.IType getMainType(org.eclipse.jdt.core.ICompilationUnit);
    descriptor: (Lorg/eclipse/jdt/core/ICompilationUnit;)Lorg/eclipse/jdt/core/IType;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // org.eclipse.jdt.core.ICompilationUnit cu
         0: .line 100
            aload 0 /* cu */
            invokeinterface org.eclipse.jdt.core.ICompilationUnit.getTypes:()[Lorg/eclipse/jdt/core/IType;
            astore 1 /* types */
        start local 1 // org.eclipse.jdt.core.IType[] types
         1: .line 101
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 6
         3: .line 102
      StackMap locals: org.eclipse.jdt.core.IType[] int
      StackMap stack:
            aload 1 /* types */
            iload 2 /* i */
            aaload
            invokestatic org.eclipse.jdt.internal.corext.refactoring.util.JavaElementUtil.isMainType:(Lorg/eclipse/jdt/core/IType;)Z
            ifeq 5
         4: .line 103
            aload 1 /* types */
            iload 2 /* i */
            aaload
            areturn
         5: .line 101
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 2 /* i */
            aload 1 /* types */
            arraylength
            if_icmplt 3
        end local 2 // int i
         7: .line 105
            aconst_null
            areturn
        end local 1 // org.eclipse.jdt.core.IType[] types
        end local 0 // org.eclipse.jdt.core.ICompilationUnit cu
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0     cu  Lorg/eclipse/jdt/core/ICompilationUnit;
            1    8     1  types  [Lorg/eclipse/jdt/core/IType;
            2    7     2      i  I
    Exceptions:
      throws org.eclipse.jdt.core.JavaModelException
    MethodParameters:
      Name  Flags
      cu    

  public static boolean isMainType(org.eclipse.jdt.core.IType);
    descriptor: (Lorg/eclipse/jdt/core/IType;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.core.IType type
         0: .line 109
            aload 0 /* type */
            invokeinterface org.eclipse.jdt.core.IType.exists:()Z
            ifne 2
         1: .line 110
            iconst_0
            ireturn
         2: .line 112
      StackMap locals:
      StackMap stack:
            aload 0 /* type */
            invokeinterface org.eclipse.jdt.core.IType.isBinary:()Z
            ifeq 4
         3: .line 113
            iconst_0
            ireturn
         4: .line 115
      StackMap locals:
      StackMap stack:
            aload 0 /* type */
            invokeinterface org.eclipse.jdt.core.IType.getCompilationUnit:()Lorg/eclipse/jdt/core/ICompilationUnit;
            ifnonnull 6
         5: .line 116
            iconst_0
            ireturn
         6: .line 118
      StackMap locals:
      StackMap stack:
            aload 0 /* type */
            invokeinterface org.eclipse.jdt.core.IType.getDeclaringType:()Lorg/eclipse/jdt/core/IType;
            ifnull 8
         7: .line 119
            iconst_0
            ireturn
         8: .line 121
      StackMap locals:
      StackMap stack:
            aload 0 /* type */
            invokestatic org.eclipse.jdt.internal.corext.refactoring.util.JavaElementUtil.isPrimaryType:(Lorg/eclipse/jdt/core/IType;)Z
            ifne 9
            aload 0 /* type */
            invokestatic org.eclipse.jdt.internal.corext.refactoring.util.JavaElementUtil.isCuOnlyType:(Lorg/eclipse/jdt/core/IType;)Z
            ifne 9
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         9: iconst_1
            ireturn
        end local 0 // org.eclipse.jdt.core.IType type
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  type  Lorg/eclipse/jdt/core/IType;
    Exceptions:
      throws org.eclipse.jdt.core.JavaModelException
    MethodParameters:
      Name  Flags
      type  

  private static boolean isPrimaryType(org.eclipse.jdt.core.IType);
    descriptor: (Lorg/eclipse/jdt/core/IType;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.core.IType type
         0: .line 126
            aload 0 /* type */
            aload 0 /* type */
            invokeinterface org.eclipse.jdt.core.IType.getCompilationUnit:()Lorg/eclipse/jdt/core/ICompilationUnit;
            invokeinterface org.eclipse.jdt.core.ICompilationUnit.findPrimaryType:()Lorg/eclipse/jdt/core/IType;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 0 // org.eclipse.jdt.core.IType type
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  type  Lorg/eclipse/jdt/core/IType;
    MethodParameters:
      Name  Flags
      type  

  private static boolean isCuOnlyType(org.eclipse.jdt.core.IType);
    descriptor: (Lorg/eclipse/jdt/core/IType;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.core.IType type
         0: .line 131
            aload 0 /* type */
            invokeinterface org.eclipse.jdt.core.IType.getCompilationUnit:()Lorg/eclipse/jdt/core/ICompilationUnit;
            invokeinterface org.eclipse.jdt.core.ICompilationUnit.getTypes:()[Lorg/eclipse/jdt/core/IType;
            arraylength
            iconst_1
            if_icmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.eclipse.jdt.core.IType type
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  type  Lorg/eclipse/jdt/core/IType;
    Exceptions:
      throws org.eclipse.jdt.core.JavaModelException
    MethodParameters:
      Name  Flags
      type  

  public static boolean isAncestorOf(org.eclipse.jdt.core.IJavaElement, org.eclipse.jdt.core.IJavaElement);
    descriptor: (Lorg/eclipse/jdt/core/IJavaElement;Lorg/eclipse/jdt/core/IJavaElement;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.eclipse.jdt.core.IJavaElement ancestor
        start local 1 // org.eclipse.jdt.core.IJavaElement child
         0: .line 136
            aload 1 /* child */
            invokeinterface org.eclipse.jdt.core.IJavaElement.getParent:()Lorg/eclipse/jdt/core/IJavaElement;
            astore 2 /* parent */
        start local 2 // org.eclipse.jdt.core.IJavaElement parent
         1: .line 137
            goto 3
         2: .line 138
      StackMap locals: org.eclipse.jdt.core.IJavaElement
      StackMap stack:
            aload 2 /* parent */
            invokeinterface org.eclipse.jdt.core.IJavaElement.getParent:()Lorg/eclipse/jdt/core/IJavaElement;
            astore 2 /* parent */
         3: .line 137
      StackMap locals:
      StackMap stack:
            aload 2 /* parent */
            ifnull 4
            aload 2 /* parent */
            aload 0 /* ancestor */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 2
         4: .line 140
      StackMap locals:
      StackMap stack:
            aload 2 /* parent */
            ifnull 5
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         5: iconst_0
            ireturn
        end local 2 // org.eclipse.jdt.core.IJavaElement parent
        end local 1 // org.eclipse.jdt.core.IJavaElement child
        end local 0 // org.eclipse.jdt.core.IJavaElement ancestor
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0  ancestor  Lorg/eclipse/jdt/core/IJavaElement;
            0    6     1     child  Lorg/eclipse/jdt/core/IJavaElement;
            1    6     2    parent  Lorg/eclipse/jdt/core/IJavaElement;
    MethodParameters:
          Name  Flags
      ancestor  
      child     

  public static org.eclipse.jdt.core.IMethod[] getAllConstructors(org.eclipse.jdt.core.IType);
    descriptor: (Lorg/eclipse/jdt/core/IType;)[Lorg/eclipse/jdt/core/IMethod;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=1
        start local 0 // org.eclipse.jdt.core.IType type
         0: .line 144
            aload 0 /* type */
            invokestatic org.eclipse.jdt.internal.corext.util.JavaModelUtil.isInterfaceOrAnnotation:(Lorg/eclipse/jdt/core/IType;)Z
            ifeq 2
         1: .line 145
            iconst_0
            anewarray org.eclipse.jdt.core.IMethod
            areturn
         2: .line 146
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* result */
        start local 1 // java.util.List result
         3: .line 147
            aload 0 /* type */
            invokeinterface org.eclipse.jdt.core.IType.getMethods:()[Lorg/eclipse/jdt/core/IMethod;
            astore 2 /* methods */
        start local 2 // org.eclipse.jdt.core.IMethod[] methods
         4: .line 148
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         5: goto 10
         6: .line 149
      StackMap locals: java.util.List org.eclipse.jdt.core.IMethod[] int
      StackMap stack:
            aload 2 /* methods */
            iload 3 /* i */
            aaload
            astore 4 /* iMethod */
        start local 4 // org.eclipse.jdt.core.IMethod iMethod
         7: .line 150
            aload 4 /* iMethod */
            invokeinterface org.eclipse.jdt.core.IMethod.isConstructor:()Z
            ifeq 9
         8: .line 151
            aload 1 /* result */
            aload 4 /* iMethod */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // org.eclipse.jdt.core.IMethod iMethod
         9: .line 148
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 3 /* i */
            aload 2 /* methods */
            arraylength
            if_icmplt 6
        end local 3 // int i
        11: .line 153
            aload 1 /* result */
            aload 1 /* result */
            invokeinterface java.util.List.size:()I
            anewarray org.eclipse.jdt.core.IMethod
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast org.eclipse.jdt.core.IMethod[]
            areturn
        end local 2 // org.eclipse.jdt.core.IMethod[] methods
        end local 1 // java.util.List result
        end local 0 // org.eclipse.jdt.core.IType type
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   12     0     type  Lorg/eclipse/jdt/core/IType;
            3   12     1   result  Ljava/util/List<Lorg/eclipse/jdt/core/IMethod;>;
            4   12     2  methods  [Lorg/eclipse/jdt/core/IMethod;
            5   11     3        i  I
            7    9     4  iMethod  Lorg/eclipse/jdt/core/IMethod;
    Exceptions:
      throws org.eclipse.jdt.core.JavaModelException
    MethodParameters:
      Name  Flags
      type  

  public static org.eclipse.jdt.core.IJavaProject[] getReferencingProjects(org.eclipse.jdt.core.IPackageFragmentRoot);
    descriptor: (Lorg/eclipse/jdt/core/IPackageFragmentRoot;)[Lorg/eclipse/jdt/core/IJavaProject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=7, args_size=1
        start local 0 // org.eclipse.jdt.core.IPackageFragmentRoot root
         0: .line 162
            aload 0 /* root */
            invokeinterface org.eclipse.jdt.core.IPackageFragmentRoot.getRawClasspathEntry:()Lorg/eclipse/jdt/core/IClasspathEntry;
            astore 1 /* cpe */
        start local 1 // org.eclipse.jdt.core.IClasspathEntry cpe
         1: .line 163
            aload 1 /* cpe */
            invokeinterface org.eclipse.jdt.core.IClasspathEntry.getEntryKind:()I
            iconst_1
            if_icmpne 3
         2: .line 164
            aload 0 /* root */
            invokeinterface org.eclipse.jdt.core.IPackageFragmentRoot.getResolvedClasspathEntry:()Lorg/eclipse/jdt/core/IClasspathEntry;
            astore 1 /* cpe */
         3: .line 165
      StackMap locals: org.eclipse.jdt.core.IClasspathEntry
      StackMap stack:
            invokestatic org.eclipse.core.resources.ResourcesPlugin.getWorkspace:()Lorg/eclipse/core/resources/IWorkspace;
            invokeinterface org.eclipse.core.resources.IWorkspace.getRoot:()Lorg/eclipse/core/resources/IWorkspaceRoot;
            invokestatic org.eclipse.jdt.core.JavaCore.create:(Lorg/eclipse/core/resources/IWorkspaceRoot;)Lorg/eclipse/jdt/core/IJavaModel;
            invokeinterface org.eclipse.jdt.core.IJavaModel.getJavaProjects:()[Lorg/eclipse/jdt/core/IJavaProject;
            astore 2 /* allJavaProjects */
        start local 2 // org.eclipse.jdt.core.IJavaProject[] allJavaProjects
         4: .line 166
            new java.util.ArrayList
            dup
            aload 2 /* allJavaProjects */
            arraylength
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 3 /* result */
        start local 3 // java.util.List result
         5: .line 167
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         6: goto 12
         7: .line 168
      StackMap locals: org.eclipse.jdt.core.IJavaProject[] java.util.List int
      StackMap stack:
            aload 2 /* allJavaProjects */
            iload 4 /* i */
            aaload
            astore 5 /* project */
        start local 5 // org.eclipse.jdt.core.IJavaProject project
         8: .line 169
            aload 5 /* project */
            aload 1 /* cpe */
            invokeinterface org.eclipse.jdt.core.IJavaProject.findPackageFragmentRoots:(Lorg/eclipse/jdt/core/IClasspathEntry;)[Lorg/eclipse/jdt/core/IPackageFragmentRoot;
            astore 6 /* roots */
        start local 6 // org.eclipse.jdt.core.IPackageFragmentRoot[] roots
         9: .line 170
            aload 6 /* roots */
            arraylength
            ifle 11
        10: .line 171
            aload 3 /* result */
            aload 5 /* project */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // org.eclipse.jdt.core.IPackageFragmentRoot[] roots
        end local 5 // org.eclipse.jdt.core.IJavaProject project
        11: .line 167
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 4 /* i */
            aload 2 /* allJavaProjects */
            arraylength
            if_icmplt 7
        end local 4 // int i
        13: .line 173
            aload 3 /* result */
            aload 3 /* result */
            invokeinterface java.util.List.size:()I
            anewarray org.eclipse.jdt.core.IJavaProject
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast org.eclipse.jdt.core.IJavaProject[]
            areturn
        end local 3 // java.util.List result
        end local 2 // org.eclipse.jdt.core.IJavaProject[] allJavaProjects
        end local 1 // org.eclipse.jdt.core.IClasspathEntry cpe
        end local 0 // org.eclipse.jdt.core.IPackageFragmentRoot root
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   14     0             root  Lorg/eclipse/jdt/core/IPackageFragmentRoot;
            1   14     1              cpe  Lorg/eclipse/jdt/core/IClasspathEntry;
            4   14     2  allJavaProjects  [Lorg/eclipse/jdt/core/IJavaProject;
            5   14     3           result  Ljava/util/List<Lorg/eclipse/jdt/core/IJavaProject;>;
            6   13     4                i  I
            8   11     5          project  Lorg/eclipse/jdt/core/IJavaProject;
            9   11     6            roots  [Lorg/eclipse/jdt/core/IPackageFragmentRoot;
    Exceptions:
      throws org.eclipse.jdt.core.JavaModelException
    MethodParameters:
      Name  Flags
      root  

  public static org.eclipse.jdt.core.IMember[] merge(org.eclipse.jdt.core.IMember[], org.eclipse.jdt.core.IMember[]);
    descriptor: ([Lorg/eclipse/jdt/core/IMember;[Lorg/eclipse/jdt/core/IMember;)[Lorg/eclipse/jdt/core/IMember;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // org.eclipse.jdt.core.IMember[] a1
        start local 1 // org.eclipse.jdt.core.IMember[] a2
         0: .line 178
            new java.util.ArrayList
            dup
            aload 0 /* a1 */
            arraylength
            aload 1 /* a2 */
            arraylength
            iadd
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 2 /* result */
        start local 2 // java.util.List result
         1: .line 179
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: goto 7
         3: .line 180
      StackMap locals: java.util.List int
      StackMap stack:
            aload 0 /* a1 */
            iload 3 /* i */
            aaload
            astore 4 /* member */
        start local 4 // org.eclipse.jdt.core.IMember member
         4: .line 181
            aload 2 /* result */
            aload 4 /* member */
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifne 6
         5: .line 182
            aload 2 /* result */
            aload 4 /* member */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // org.eclipse.jdt.core.IMember member
         6: .line 179
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 3 /* i */
            aload 0 /* a1 */
            arraylength
            if_icmplt 3
        end local 3 // int i
         8: .line 184
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         9: goto 14
        10: .line 185
      StackMap locals:
      StackMap stack:
            aload 1 /* a2 */
            iload 3 /* i */
            aaload
            astore 4 /* member */
        start local 4 // org.eclipse.jdt.core.IMember member
        11: .line 186
            aload 2 /* result */
            aload 4 /* member */
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifne 13
        12: .line 187
            aload 2 /* result */
            aload 4 /* member */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // org.eclipse.jdt.core.IMember member
        13: .line 184
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 3 /* i */
            aload 1 /* a2 */
            arraylength
            if_icmplt 10
        end local 3 // int i
        15: .line 189
            aload 2 /* result */
            aload 2 /* result */
            invokeinterface java.util.List.size:()I
            anewarray org.eclipse.jdt.core.IMember
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast org.eclipse.jdt.core.IMember[]
            areturn
        end local 2 // java.util.List result
        end local 1 // org.eclipse.jdt.core.IMember[] a2
        end local 0 // org.eclipse.jdt.core.IMember[] a1
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   16     0      a1  [Lorg/eclipse/jdt/core/IMember;
            0   16     1      a2  [Lorg/eclipse/jdt/core/IMember;
            1   16     2  result  Ljava/util/List<Lorg/eclipse/jdt/core/IMember;>;
            2    8     3       i  I
            4    6     4  member  Lorg/eclipse/jdt/core/IMember;
            9   15     3       i  I
           11   13     4  member  Lorg/eclipse/jdt/core/IMember;
    MethodParameters:
      Name  Flags
      a1    
      a2    

  public static boolean isDefaultPackage(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Object element
         0: .line 193
            aload 0 /* element */
            instanceof org.eclipse.jdt.core.IPackageFragment
            ifeq 1
            aload 0 /* element */
            checkcast org.eclipse.jdt.core.IPackageFragment
            invokeinterface org.eclipse.jdt.core.IPackageFragment.isDefaultPackage:()Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // java.lang.Object element
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0  element  Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      element  

  public static org.eclipse.jdt.core.IPackageFragment[] getPackageAndSubpackages(org.eclipse.jdt.core.IPackageFragment);
    descriptor: (Lorg/eclipse/jdt/core/IPackageFragment;)[Lorg/eclipse/jdt/core/IPackageFragment;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=1
        start local 0 // org.eclipse.jdt.core.IPackageFragment pack
         0: .line 202
            aload 0 /* pack */
            invokeinterface org.eclipse.jdt.core.IPackageFragment.isDefaultPackage:()Z
            ifeq 2
         1: .line 203
            iconst_1
            anewarray org.eclipse.jdt.core.IPackageFragment
            dup
            iconst_0
            aload 0 /* pack */
            aastore
            areturn
         2: .line 205
      StackMap locals:
      StackMap stack:
            aload 0 /* pack */
            invokeinterface org.eclipse.jdt.core.IPackageFragment.getParent:()Lorg/eclipse/jdt/core/IJavaElement;
            checkcast org.eclipse.jdt.core.IPackageFragmentRoot
            astore 1 /* root */
        start local 1 // org.eclipse.jdt.core.IPackageFragmentRoot root
         3: .line 206
            aload 1 /* root */
            invokeinterface org.eclipse.jdt.core.IPackageFragmentRoot.getChildren:()[Lorg/eclipse/jdt/core/IJavaElement;
            astore 2 /* allPackages */
        start local 2 // org.eclipse.jdt.core.IJavaElement[] allPackages
         4: .line 207
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* subpackages */
        start local 3 // java.util.ArrayList subpackages
         5: .line 208
            aload 3 /* subpackages */
            aload 0 /* pack */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         6: .line 209
            new java.lang.StringBuilder
            dup
            aload 0 /* pack */
            invokeinterface org.eclipse.jdt.core.IPackageFragment.getElementName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            bipush 46
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* prefix */
        start local 4 // java.lang.String prefix
         7: .line 210
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         8: goto 13
         9: .line 211
      StackMap locals: org.eclipse.jdt.core.IPackageFragment org.eclipse.jdt.core.IPackageFragmentRoot org.eclipse.jdt.core.IJavaElement[] java.util.ArrayList java.lang.String int
      StackMap stack:
            aload 2 /* allPackages */
            iload 5 /* i */
            aaload
            checkcast org.eclipse.jdt.core.IPackageFragment
            astore 6 /* currentPackage */
        start local 6 // org.eclipse.jdt.core.IPackageFragment currentPackage
        10: .line 212
            aload 6 /* currentPackage */
            invokeinterface org.eclipse.jdt.core.IPackageFragment.getElementName:()Ljava/lang/String;
            aload 4 /* prefix */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 12
        11: .line 213
            aload 3 /* subpackages */
            aload 6 /* currentPackage */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // org.eclipse.jdt.core.IPackageFragment currentPackage
        12: .line 210
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        13: iload 5 /* i */
            aload 2 /* allPackages */
            arraylength
            if_icmplt 9
        end local 5 // int i
        14: .line 215
            aload 3 /* subpackages */
            aload 3 /* subpackages */
            invokevirtual java.util.ArrayList.size:()I
            anewarray org.eclipse.jdt.core.IPackageFragment
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast org.eclipse.jdt.core.IPackageFragment[]
            areturn
        end local 4 // java.lang.String prefix
        end local 3 // java.util.ArrayList subpackages
        end local 2 // org.eclipse.jdt.core.IJavaElement[] allPackages
        end local 1 // org.eclipse.jdt.core.IPackageFragmentRoot root
        end local 0 // org.eclipse.jdt.core.IPackageFragment pack
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   15     0            pack  Lorg/eclipse/jdt/core/IPackageFragment;
            3   15     1            root  Lorg/eclipse/jdt/core/IPackageFragmentRoot;
            4   15     2     allPackages  [Lorg/eclipse/jdt/core/IJavaElement;
            5   15     3     subpackages  Ljava/util/ArrayList<Lorg/eclipse/jdt/core/IPackageFragment;>;
            7   15     4          prefix  Ljava/lang/String;
            8   14     5               i  I
           10   12     6  currentPackage  Lorg/eclipse/jdt/core/IPackageFragment;
    Exceptions:
      throws org.eclipse.jdt.core.JavaModelException
    MethodParameters:
      Name  Flags
      pack  

  public static org.eclipse.jdt.core.IPackageFragment getParentSubpackage(org.eclipse.jdt.core.IPackageFragment);
    descriptor: (Lorg/eclipse/jdt/core/IPackageFragment;)Lorg/eclipse/jdt/core/IPackageFragment;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // org.eclipse.jdt.core.IPackageFragment pack
         0: .line 223
            aload 0 /* pack */
            invokeinterface org.eclipse.jdt.core.IPackageFragment.isDefaultPackage:()Z
            ifeq 2
         1: .line 224
            aconst_null
            areturn
         2: .line 226
      StackMap locals:
      StackMap stack:
            aload 0 /* pack */
            invokeinterface org.eclipse.jdt.core.IPackageFragment.getElementName:()Ljava/lang/String;
            bipush 46
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 1 /* index */
        start local 1 // int index
         3: .line 227
            iload 1 /* index */
            iconst_m1
            if_icmpne 5
         4: .line 228
            aconst_null
            areturn
         5: .line 230
      StackMap locals: int
      StackMap stack:
            aload 0 /* pack */
            invokeinterface org.eclipse.jdt.core.IPackageFragment.getParent:()Lorg/eclipse/jdt/core/IJavaElement;
            checkcast org.eclipse.jdt.core.IPackageFragmentRoot
            astore 2 /* root */
        start local 2 // org.eclipse.jdt.core.IPackageFragmentRoot root
         6: .line 231
            aload 0 /* pack */
            invokeinterface org.eclipse.jdt.core.IPackageFragment.getElementName:()Ljava/lang/String;
            iconst_0
            iload 1 /* index */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 3 /* newPackageName */
        start local 3 // java.lang.String newPackageName
         7: .line 232
            aload 2 /* root */
            aload 3 /* newPackageName */
            invokeinterface org.eclipse.jdt.core.IPackageFragmentRoot.getPackageFragment:(Ljava/lang/String;)Lorg/eclipse/jdt/core/IPackageFragment;
            astore 4 /* parent */
        start local 4 // org.eclipse.jdt.core.IPackageFragment parent
         8: .line 233
            aload 4 /* parent */
            invokeinterface org.eclipse.jdt.core.IPackageFragment.exists:()Z
            ifeq 10
         9: .line 234
            aload 4 /* parent */
            areturn
        10: .line 236
      StackMap locals: org.eclipse.jdt.core.IPackageFragmentRoot java.lang.String org.eclipse.jdt.core.IPackageFragment
      StackMap stack:
            aconst_null
            areturn
        end local 4 // org.eclipse.jdt.core.IPackageFragment parent
        end local 3 // java.lang.String newPackageName
        end local 2 // org.eclipse.jdt.core.IPackageFragmentRoot root
        end local 1 // int index
        end local 0 // org.eclipse.jdt.core.IPackageFragment pack
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   11     0            pack  Lorg/eclipse/jdt/core/IPackageFragment;
            3   11     1           index  I
            6   11     2            root  Lorg/eclipse/jdt/core/IPackageFragmentRoot;
            7   11     3  newPackageName  Ljava/lang/String;
            8   11     4          parent  Lorg/eclipse/jdt/core/IPackageFragment;
    MethodParameters:
      Name  Flags
      pack  

  public static org.eclipse.jdt.core.IMember[] sortByOffset(org.eclipse.jdt.core.IMember[]);
    descriptor: ([Lorg/eclipse/jdt/core/IMember;)[Lorg/eclipse/jdt/core/IMember;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.eclipse.jdt.core.IMember[] members
         0: .line 240
            new org.eclipse.jdt.internal.corext.refactoring.util.JavaElementUtil$1
            dup
            invokespecial org.eclipse.jdt.internal.corext.refactoring.util.JavaElementUtil$1.<init>:()V
            astore 1 /* comparator */
        start local 1 // java.util.Comparator comparator
         1: .line 250
            aload 0 /* members */
            aload 1 /* comparator */
            invokestatic java.util.Arrays.sort:([Ljava/lang/Object;Ljava/util/Comparator;)V
         2: .line 251
            aload 0 /* members */
            areturn
        end local 1 // java.util.Comparator comparator
        end local 0 // org.eclipse.jdt.core.IMember[] members
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0     members  [Lorg/eclipse/jdt/core/IMember;
            1    3     1  comparator  Ljava/util/Comparator<Lorg/eclipse/jdt/core/IMember;>;
    MethodParameters:
         Name  Flags
      members  

  public static boolean isSourceAvailable(org.eclipse.jdt.core.ISourceReference);
    descriptor: (Lorg/eclipse/jdt/core/ISourceReference;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.core.ISourceReference sourceReference
         0: .line 256
            aload 0 /* sourceReference */
            invokeinterface org.eclipse.jdt.core.ISourceReference.getSourceRange:()Lorg/eclipse/jdt/core/ISourceRange;
            invokestatic org.eclipse.jdt.core.SourceRange.isAvailable:(Lorg/eclipse/jdt/core/ISourceRange;)Z
         1: ireturn
         2: .line 257
      StackMap locals:
      StackMap stack: org.eclipse.jdt.core.JavaModelException
            pop
         3: .line 258
            iconst_0
            ireturn
        end local 0 // org.eclipse.jdt.core.ISourceReference sourceReference
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0  sourceReference  Lorg/eclipse/jdt/core/ISourceReference;
      Exception table:
        from    to  target  type
           0     1       2  Class org.eclipse.jdt.core.JavaModelException
    MethodParameters:
                 Name  Flags
      sourceReference  
}
SourceFile: "JavaElementUtil.java"
NestMembers:
  org.eclipse.jdt.internal.corext.refactoring.util.JavaElementUtil$1
InnerClasses:
  org.eclipse.jdt.internal.corext.refactoring.util.JavaElementUtil$1