class JavaClassSource extends ClassSource {
  private static final Logger logger = LoggerFactory.getLogger(JavaClassSource.class);

  private final File fullPath;

  public JavaClassSource(String className, File fullPath) {
    super(className);
    this.fullPath = fullPath;
  }

  public JavaClassSource(String className) {
    this(className, null);
  }

  @Override
  public Dependencies resolve(SootClass sc) {<FILL_FUNCTION_BODY>}
}

    if (Options.v().verbose()) {
      logger.debug("resolving [from .java]: " + className);
    }

    IInitialResolver resolver = Options.v().polyglot() ? InitialResolver.v() : JastAddInitialResolver.v();

    if (fullPath != null) {
      resolver.formAst(fullPath.getPath(), SourceLocator.v().sourcePath(), className);
    }
    // System.out.println("about to call initial resolver in j2j: "+sc.getName());
    Dependencies references = resolver.resolveFromJavaFile(sc);

    /*
     * 1st March 2006 Nomair This seems to be a good place to calculate all the AST Metrics needed from Java's AST
     */
    if (Options.v().ast_metrics()) {
      // System.out.println("CALLING COMPUTEASTMETRICS!!!!!!!");
      Node ast = InitialResolver.v().getAst();
      if (ast == null) {
        logger.debug("No compatible AST available for AST metrics. Skipping. Try -polyglot option.");
      } else {
        ComputeASTMetrics metrics = new ComputeASTMetrics(ast);
        metrics.apply();
      }
    }

    return references;
  
<methods>public void <init>(java.lang.String) ,public void close() ,public abstract soot.javaToJimple.IInitialResolver.Dependencies resolve(soot.SootClass) <variables>protected final non-sealed java.lang.String className