Module openj9.dtfj

Interface ImageFactory

  • All Known Implementing Classes:
    DTFJImageFactory, ImageFactory, J9DDRImageFactory, JCImageFactory, PHDImageFactory

    public interface ImageFactory

    This interface is used for classes which can produce instances of Image implementers.

    Classes that implement this interface should provide a zero argument, public constructor so that they can be created using Class.newInstance().

    e.g.
    
     Image image;
     try {
       Class<?> factoryClass = Class.forName(&quot;com.ibm.dtfj.image.j9.ImageFactory&quot;);
       ImageFactory factory = (ImageFactory) factoryClass.newInstance();
       image = factory.getImage(new File(coreFileName), new File(xmlFileName));
     } catch (ClassNotFoundException e) {
       System.err.println(&quot;Could not find DTFJ factory class:&quot;);
       e.printStackTrace(System.err);
     } catch (IllegalAccessException e) {
       System.err.println(&quot;Could not instantiate DTFJ factory class:&quot;);
       e.printStackTrace(System.err);
     } catch (InstantiationException e) {
       System.err.println(&quot;Could not instantiate DTFJ factory class:&quot;);
       e.printStackTrace(System.err);
     } catch (IOException e) {
       System.err.println(&quot;Could not find file required for bootstrapping:&quot;);
       e.printStackTrace(System.err);
     }
     
    • Field Detail

      • DTFJ_MAJOR_VERSION

        static final int DTFJ_MAJOR_VERSION
        The major version number of the current API.
        See Also:
        Constant Field Values
      • DTFJ_MINOR_VERSION

        static final int DTFJ_MINOR_VERSION
        The minor version number of the current API.
        See Also:
        Constant Field Values
      • DTFJ_LOGGER_NAME

        static final String DTFJ_LOGGER_NAME
        This is the name of the java.util.logging.Logger subsystem to which DTFJ passes verbose messages.
        See Also:
        Constant Field Values
      • SYSTEM_PROPERTY_TMPDIR

        static final String SYSTEM_PROPERTY_TMPDIR
        If the image is to be created from a core file inside an archive, this property controls where the file will extracted. If this is not specified then the value of java.io.tmpdir will be used.
        Since:
        1.10
        See Also:
        Constant Field Values
    • Method Detail

      • getImage

        Image getImage​(File imageFile)
                throws IOException
        Creates a new Image object based on the contents of imageFile.
        Parameters:
        imageFile - a file with Image information, typically a core file
        Returns:
        an instance of Image
        Throws:
        IOException - if there's a problem reading the specified file
        NullPointerException - if imageFile is null
      • getImage

        Image getImage​(ImageInputStream in,
                       URI sourceID)
                throws IOException
        Creates a new Image object based on the contents of the given input stream.
        Parameters:
        in - a stream with image information, typically a core file
        sourceID - URI identifying the source of the image stream
        Returns:
        an instance of Image
        Throws:
        IOException - if there's a problem reading the given stream
        UnsupportedOperationException - if the factory does not support this method
        NullPointerException - if either of in or sourceID is null
        Since:
        1.10
      • getImage

        Image getImage​(ImageInputStream in,
                       ImageInputStream metadata,
                       URI sourceID)
                throws IOException
        Creates a new Image object based on the contents of the given input stream.
        Parameters:
        in - a stream with image information, typically a core file
        metadata - a stream with metadata associated with the image stream
        sourceID - URI identifying the source of the image stream
        Returns:
        an instance of Image
        Throws:
        IOException - if there's a problem reading the given streams
        UnsupportedOperationException - if the factory does not support this method
        NullPointerException - if any of in, metadata or sourceID is null
        Since:
        1.10
      • getImagesFromArchive

        Image[] getImagesFromArchive​(File archive,
                                     boolean extract)
                              throws IOException
        Creates an array of Image objects from an archive such as a zip or jar file.
        Parameters:
        archive - which typically contains one or more diagnostic artifacts
        extract - true if the files in the archive should be extracted to a temporary directory
        Returns:
        an array of Images
        Throws:
        IOException - if there's a problem reading the specified archive
        UnsupportedOperationException - if the factory does not support this method
        Since:
        1.10
      • getImage

        Image getImage​(File imageFile,
                       File metadata)
                throws IOException
        Creates a new Image object based on the contents of imageFile and metadata.
        Parameters:
        imageFile - a file with image information, typically a core file
        metadata - an (implementation-defined) file with additional image information (or null if not required)
        Returns:
        an instance of Image
        Throws:
        IOException - if there's a problem reading either of the specified files
        NullPointerException - if imageFile is null
      • getDTFJMajorVersion

        int getDTFJMajorVersion()
        Fetch the DTFJ major version number.
        Returns:
        an integer corresponding to the DTFJ API major version number
      • getDTFJMinorVersion

        int getDTFJMinorVersion()
        Fetch the DTFJ minor version number.
        Returns:
        an integer corresponding to the DTFJ API minor version number
      • getDTFJModificationLevel

        int getDTFJModificationLevel()
        Fetch the DTFJ modification level.
        Returns:
        an integer corresponding to the DTFJ API modification level
        Since:
        SDK 6.0 SR1 (DTFJ version 1.2)