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 Details

    • DTFJ_MAJOR_VERSION

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

      static final int DTFJ_MINOR_VERSION
      The minor version number of the current API.
      See Also:
    • 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:
    • 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:
  • Method Details

    • 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)