public class org.eclipse.jdt.internal.launching.ProjectClasspathVariableResolver implements org.eclipse.core.variables.IDynamicVariableResolver
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.eclipse.jdt.internal.launching.ProjectClasspathVariableResolver
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.launching.ProjectClasspathVariableResolver this
         0: .line 42
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.eclipse.jdt.internal.launching.ProjectClasspathVariableResolver this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/launching/ProjectClasspathVariableResolver;

  public java.lang.String resolveValue(org.eclipse.core.variables.IDynamicVariable, java.lang.String);
    descriptor: (Lorg/eclipse/core/variables/IDynamicVariable;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=11, locals=11, args_size=3
        start local 0 // org.eclipse.jdt.internal.launching.ProjectClasspathVariableResolver this
        start local 1 // org.eclipse.core.variables.IDynamicVariable variable
        start local 2 // java.lang.String argument
         0: .line 46
            aconst_null
            astore 3 /* proj */
        start local 3 // org.eclipse.core.resources.IProject proj
         1: .line 47
            aload 2 /* argument */
            ifnonnull 7
         2: .line 48
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.launching.ProjectClasspathVariableResolver.getSelectedResource:()Lorg/eclipse/core/resources/IResource;
            astore 4 /* resource */
        start local 4 // org.eclipse.core.resources.IResource resource
         3: .line 49
            aload 4 /* resource */
            ifnull 5
            aload 4 /* resource */
            invokeinterface org.eclipse.core.resources.IResource.exists:()Z
            ifeq 5
         4: .line 50
            aload 4 /* resource */
            invokeinterface org.eclipse.core.resources.IResource.getProject:()Lorg/eclipse/core/resources/IProject;
            astore 3 /* proj */
         5: .line 52
      StackMap locals: org.eclipse.core.resources.IProject org.eclipse.core.resources.IResource
      StackMap stack:
            aload 3 /* proj */
            ifnonnull 8
         6: .line 53
            new org.eclipse.core.runtime.CoreException
            dup
            new org.eclipse.core.runtime.Status
            dup
            iconst_4
            ldc "org.eclipse.jdt.launching"
            getstatic org.eclipse.jdt.internal.launching.LaunchingMessages.ProjectClasspathVariableResolver_2:Ljava/lang/String;
            invokespecial org.eclipse.core.runtime.Status.<init>:(ILjava/lang/String;Ljava/lang/String;)V
            invokespecial org.eclipse.core.runtime.CoreException.<init>:(Lorg/eclipse/core/runtime/IStatus;)V
            athrow
        end local 4 // org.eclipse.core.resources.IResource resource
         7: .line 56
      StackMap locals:
      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;
            aload 2 /* argument */
            invokeinterface org.eclipse.core.resources.IWorkspaceRoot.getProject:(Ljava/lang/String;)Lorg/eclipse/core/resources/IProject;
            astore 3 /* proj */
         8: .line 58
      StackMap locals:
      StackMap stack:
            aload 3 /* proj */
            invokestatic org.eclipse.jdt.core.JavaCore.create:(Lorg/eclipse/core/resources/IProject;)Lorg/eclipse/jdt/core/IJavaProject;
            astore 4 /* javaProject */
        start local 4 // org.eclipse.jdt.core.IJavaProject javaProject
         9: .line 59
            aload 4 /* javaProject */
            invokeinterface org.eclipse.jdt.core.IJavaProject.exists:()Z
            ifeq 33
        10: .line 60
            aload 4 /* javaProject */
            invokestatic org.eclipse.jdt.launching.JavaRuntime.newDefaultProjectClasspathEntry:(Lorg/eclipse/jdt/core/IJavaProject;)Lorg/eclipse/jdt/launching/IRuntimeClasspathEntry;
            checkcast org.eclipse.jdt.launching.IRuntimeClasspathEntry2
            astore 5 /* defClassPath */
        start local 5 // org.eclipse.jdt.launching.IRuntimeClasspathEntry2 defClassPath
        11: .line 61
            aload 5 /* defClassPath */
            iconst_0
            invokeinterface org.eclipse.jdt.launching.IRuntimeClasspathEntry2.getRuntimeClasspathEntries:(Z)[Lorg/eclipse/jdt/launching/IRuntimeClasspathEntry;
            astore 6 /* entries */
        start local 6 // org.eclipse.jdt.launching.IRuntimeClasspathEntry[] entries
        12: .line 62
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 7 /* collect */
        start local 7 // java.util.List collect
        13: .line 63
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        14: goto 22
        15: .line 64
      StackMap locals: org.eclipse.jdt.internal.launching.ProjectClasspathVariableResolver org.eclipse.core.variables.IDynamicVariable java.lang.String org.eclipse.core.resources.IProject org.eclipse.jdt.core.IJavaProject org.eclipse.jdt.launching.IRuntimeClasspathEntry2 org.eclipse.jdt.launching.IRuntimeClasspathEntry[] java.util.List int
      StackMap stack:
            aload 6 /* entries */
            iload 8 /* i */
            aaload
            aload 4 /* javaProject */
            iconst_0
            invokestatic org.eclipse.jdt.launching.JavaRuntime.resolveRuntimeClasspathEntry:(Lorg/eclipse/jdt/launching/IRuntimeClasspathEntry;Lorg/eclipse/jdt/core/IJavaProject;Z)[Lorg/eclipse/jdt/launching/IRuntimeClasspathEntry;
            astore 9 /* children */
        start local 9 // org.eclipse.jdt.launching.IRuntimeClasspathEntry[] children
        16: .line 65
            iconst_0
            istore 10 /* j */
        start local 10 // int j
        17: goto 20
        18: .line 66
      StackMap locals: org.eclipse.jdt.launching.IRuntimeClasspathEntry[] int
      StackMap stack:
            aload 7 /* collect */
            aload 9 /* children */
            iload 10 /* j */
            aaload
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        19: .line 65
            iinc 10 /* j */ 1
      StackMap locals:
      StackMap stack:
        20: iload 10 /* j */
            aload 9 /* children */
            arraylength
            if_icmplt 18
        end local 10 // int j
        end local 9 // org.eclipse.jdt.launching.IRuntimeClasspathEntry[] children
        21: .line 63
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        22: iload 8 /* i */
            aload 6 /* entries */
            arraylength
            if_icmplt 15
        end local 8 // int i
        23: .line 69
            aload 7 /* collect */
            aload 7 /* collect */
            invokeinterface java.util.List.size:()I
            anewarray org.eclipse.jdt.launching.IRuntimeClasspathEntry
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast org.eclipse.jdt.launching.IRuntimeClasspathEntry[]
            astore 6 /* entries */
        24: .line 70
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 8 /* buffer */
        start local 8 // java.lang.StringBuilder buffer
        25: .line 71
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        26: goto 31
        27: .line 72
      StackMap locals: org.eclipse.jdt.internal.launching.ProjectClasspathVariableResolver org.eclipse.core.variables.IDynamicVariable java.lang.String org.eclipse.core.resources.IProject org.eclipse.jdt.core.IJavaProject org.eclipse.jdt.launching.IRuntimeClasspathEntry2 org.eclipse.jdt.launching.IRuntimeClasspathEntry[] java.util.List java.lang.StringBuilder int
      StackMap stack:
            iload 9 /* i */
            ifle 29
        28: .line 73
            aload 8 /* buffer */
            getstatic java.io.File.pathSeparatorChar:C
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        29: .line 75
      StackMap locals:
      StackMap stack:
            aload 8 /* buffer */
            aload 6 /* entries */
            iload 9 /* i */
            aaload
            invokeinterface org.eclipse.jdt.launching.IRuntimeClasspathEntry.getLocation:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        30: .line 71
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        31: iload 9 /* i */
            aload 6 /* entries */
            arraylength
            if_icmplt 27
        end local 9 // int i
        32: .line 77
            aload 8 /* buffer */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 8 // java.lang.StringBuilder buffer
        end local 7 // java.util.List collect
        end local 6 // org.eclipse.jdt.launching.IRuntimeClasspathEntry[] entries
        end local 5 // org.eclipse.jdt.launching.IRuntimeClasspathEntry2 defClassPath
        33: .line 79
      StackMap locals: org.eclipse.jdt.internal.launching.ProjectClasspathVariableResolver org.eclipse.core.variables.IDynamicVariable java.lang.String org.eclipse.core.resources.IProject org.eclipse.jdt.core.IJavaProject
      StackMap stack:
            new org.eclipse.core.runtime.CoreException
            dup
            new org.eclipse.core.runtime.Status
            dup
            iconst_4
            ldc "org.eclipse.jdt.launching"
            getstatic org.eclipse.jdt.internal.launching.LaunchingMessages.ProjectClasspathVariableResolver_1:Ljava/lang/String;
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 2 /* argument */
            aastore
            invokestatic org.eclipse.osgi.util.NLS.bind:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial org.eclipse.core.runtime.Status.<init>:(ILjava/lang/String;Ljava/lang/String;)V
            invokespecial org.eclipse.core.runtime.CoreException.<init>:(Lorg/eclipse/core/runtime/IStatus;)V
            athrow
        end local 4 // org.eclipse.jdt.core.IJavaProject javaProject
        end local 3 // org.eclipse.core.resources.IProject proj
        end local 2 // java.lang.String argument
        end local 1 // org.eclipse.core.variables.IDynamicVariable variable
        end local 0 // org.eclipse.jdt.internal.launching.ProjectClasspathVariableResolver this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   34     0          this  Lorg/eclipse/jdt/internal/launching/ProjectClasspathVariableResolver;
            0   34     1      variable  Lorg/eclipse/core/variables/IDynamicVariable;
            0   34     2      argument  Ljava/lang/String;
            1   34     3          proj  Lorg/eclipse/core/resources/IProject;
            3    7     4      resource  Lorg/eclipse/core/resources/IResource;
            9   34     4   javaProject  Lorg/eclipse/jdt/core/IJavaProject;
           11   33     5  defClassPath  Lorg/eclipse/jdt/launching/IRuntimeClasspathEntry2;
           12   33     6       entries  [Lorg/eclipse/jdt/launching/IRuntimeClasspathEntry;
           13   33     7       collect  Ljava/util/List<Lorg/eclipse/jdt/launching/IRuntimeClasspathEntry;>;
           14   23     8             i  I
           16   21     9      children  [Lorg/eclipse/jdt/launching/IRuntimeClasspathEntry;
           17   21    10             j  I
           25   33     8        buffer  Ljava/lang/StringBuilder;
           26   32     9             i  I
    Exceptions:
      throws org.eclipse.core.runtime.CoreException
    MethodParameters:
          Name  Flags
      variable  
      argument  

  protected org.eclipse.core.resources.IResource getSelectedResource();
    descriptor: ()Lorg/eclipse/core/resources/IResource;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=3, args_size=1
        start local 0 // org.eclipse.jdt.internal.launching.ProjectClasspathVariableResolver this
         0: .line 92
            invokestatic org.eclipse.core.variables.VariablesPlugin.getDefault:()Lorg/eclipse/core/variables/VariablesPlugin;
            invokevirtual org.eclipse.core.variables.VariablesPlugin.getStringVariableManager:()Lorg/eclipse/core/variables/IStringVariableManager;
            astore 1 /* manager */
        start local 1 // org.eclipse.core.variables.IStringVariableManager manager
         1: .line 94
            aload 1 /* manager */
            ldc "${selected_resource_path}"
            invokeinterface org.eclipse.core.variables.IStringVariableManager.performStringSubstitution:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* pathString */
        start local 2 // java.lang.String pathString
         2: .line 95
            invokestatic org.eclipse.core.resources.ResourcesPlugin.getWorkspace:()Lorg/eclipse/core/resources/IWorkspace;
            invokeinterface org.eclipse.core.resources.IWorkspace.getRoot:()Lorg/eclipse/core/resources/IWorkspaceRoot;
            new org.eclipse.core.runtime.Path
            dup
            aload 2 /* pathString */
            invokespecial org.eclipse.core.runtime.Path.<init>:(Ljava/lang/String;)V
            invokeinterface org.eclipse.core.resources.IWorkspaceRoot.findMember:(Lorg/eclipse/core/runtime/IPath;)Lorg/eclipse/core/resources/IResource;
         3: areturn
        end local 2 // java.lang.String pathString
         4: .line 96
      StackMap locals: org.eclipse.jdt.internal.launching.ProjectClasspathVariableResolver org.eclipse.core.variables.IStringVariableManager
      StackMap stack: org.eclipse.core.runtime.CoreException
            pop
         5: .line 99
            new org.eclipse.core.runtime.CoreException
            dup
            new org.eclipse.core.runtime.Status
            dup
            iconst_4
            ldc "org.eclipse.jdt.launching"
            getstatic org.eclipse.jdt.internal.launching.LaunchingMessages.ProjectClasspathVariableResolver_3:Ljava/lang/String;
            invokespecial org.eclipse.core.runtime.Status.<init>:(ILjava/lang/String;Ljava/lang/String;)V
            invokespecial org.eclipse.core.runtime.CoreException.<init>:(Lorg/eclipse/core/runtime/IStatus;)V
            athrow
        end local 1 // org.eclipse.core.variables.IStringVariableManager manager
        end local 0 // org.eclipse.jdt.internal.launching.ProjectClasspathVariableResolver this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lorg/eclipse/jdt/internal/launching/ProjectClasspathVariableResolver;
            1    6     1     manager  Lorg/eclipse/core/variables/IStringVariableManager;
            2    4     2  pathString  Ljava/lang/String;
      Exception table:
        from    to  target  type
           1     3       4  Class org.eclipse.core.runtime.CoreException
    Exceptions:
      throws org.eclipse.core.runtime.CoreException
}
SourceFile: "ProjectClasspathVariableResolver.java"