Class CalltreeResource

  • All Implemented Interfaces:
    Resource, java.io.Closeable, java.lang.AutoCloseable

    public class CalltreeResource
    extends WriteResource
    Create an XML call tree of a set of classes. The structure of the XML is:
      calltree ::= <using> <usedby> using ::= <method> *
     usedby ::= <method> * method ::= <ref>
     
    The using element contains methods in the set of classes and their references. The usedby element contains the used methods and their references to the set of classes. The ref element contains the class, the method name, the descriptor, and a pretty print version of the method. The XML does not contain an XML processor instruction to make it easier to include in other XML. The encoding is always UTF-8. This class can be used as a resource, just add it to a JAR and the data is generated when the resource is written (saving time when the JAR is up to date and does not have to be generated). However, the actual write method is a static method and can be called as well: writeCalltree(PrintWriter, Collection).
    • Constructor Summary

      Constructors 
      Constructor Description
      CalltreeResource​(java.util.Collection<Clazz> values)
      Create a resource for inclusion that will print a call tree.
    • Constructor Detail

      • CalltreeResource

        public CalltreeResource​(java.util.Collection<Clazz> values)
        Create a resource for inclusion that will print a call tree.
        Parameters:
        values - the classes for which the call tree is generated.
    • Method Detail

      • lastModified

        public long lastModified()
        We set the last modified to 0 so this resource does not force a new JAR if all other resources are up to date.
        Specified by:
        lastModified in interface Resource
        Specified by:
        lastModified in class WriteResource
      • write

        public void write​(java.io.OutputStream out)
                   throws java.lang.Exception
        The write method is called to write the resource. We just call the static method.
        Specified by:
        write in interface Resource
        Specified by:
        write in class WriteResource
        Throws:
        java.lang.Exception
      • writeCalltree

        public static void writeCalltree​(java.io.PrintWriter out,
                                         java.util.Collection<Clazz> classes)
                                  throws java.lang.Exception
        Print the call tree in XML.
        Parameters:
        out - The output writer
        classes - The set of classes
        Throws:
        java.lang.Exception - Any errors