ua.gradsoft.termware.debug
Class DebugStubCompilationFileManager

java.lang.Object
  extended by javax.tools.ForwardingJavaFileManager
      extended by ua.gradsoft.termware.debug.DebugStubCompilationFileManager
All Implemented Interfaces:
Closeable, Flushable, JavaFileManager, OptionChecker

public class DebugStubCompilationFileManager
extends ForwardingJavaFileManager

Implementation of debug file manager, which keep on-line created in-memory input and in-memory output.

Author:
rssh

Nested Class Summary
 
Nested classes/interfaces inherited from interface javax.tools.JavaFileManager
JavaFileManager.Location
 
Field Summary
 
Fields inherited from class javax.tools.ForwardingJavaFileManager
fileManager
 
Constructor Summary
DebugStubCompilationFileManager(JavaFileManager delegated)
          Creates a new instance of DebugStubCompilationFileManager
 
Method Summary
 void addLocation(String className, SourceCodeLocation location)
           
 void addSourceTerm(String className, Term t)
           
 byte[] getCompiled(String className)
           
 DebugStubJavaSourceObject getJavaDebugStubSourceInput(JavaFileManager.Location location, String className, JavaFileObject.Kind kind)
           
 JavaFileObject getJavaFileForInput(JavaFileManager.Location location, String className, JavaFileObject.Kind kind)
           
 JavaFileObject getJavaFileForOutput(JavaFileManager.Location location, String className, JavaFileObject.Kind kind, FileObject sibling)
          create new ByteCodeOutputFileObject
 
Methods inherited from class javax.tools.ForwardingJavaFileManager
close, flush, getClassLoader, getFileForInput, getFileForOutput, handleOption, hasLocation, inferBinaryName, isSameFile, isSupportedOption, list
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DebugStubCompilationFileManager

public DebugStubCompilationFileManager(JavaFileManager delegated)
Creates a new instance of DebugStubCompilationFileManager

Method Detail

getJavaFileForInput

public JavaFileObject getJavaFileForInput(JavaFileManager.Location location,
                                          String className,
                                          JavaFileObject.Kind kind)
                                   throws IOException
Specified by:
getJavaFileForInput in interface JavaFileManager
Overrides:
getJavaFileForInput in class ForwardingJavaFileManager
Throws:
IllegalArgumentException
IllegalStateException
IOException

getJavaDebugStubSourceInput

public DebugStubJavaSourceObject getJavaDebugStubSourceInput(JavaFileManager.Location location,
                                                             String className,
                                                             JavaFileObject.Kind kind)
                                                      throws IOException
Throws:
IOException

getJavaFileForOutput

public JavaFileObject getJavaFileForOutput(JavaFileManager.Location location,
                                           String className,
                                           JavaFileObject.Kind kind,
                                           FileObject sibling)
                                    throws IOException
create new ByteCodeOutputFileObject

Specified by:
getJavaFileForOutput in interface JavaFileManager
Overrides:
getJavaFileForOutput in class ForwardingJavaFileManager
Throws:
IOException

addLocation

public void addLocation(String className,
                        SourceCodeLocation location)

addSourceTerm

public void addSourceTerm(String className,
                          Term t)

getCompiled

public byte[] getCompiled(String className)