Class Utility

java.lang.Object
org.jibx.binding.Utility

public class Utility extends Object
Binding compiler support class. Supplies common methods for use in compiling binding definitions.
Author:
Dennis M. Sosnoski
  • Field Details

  • Constructor Details

    • Utility

      private Utility()
  • Method Details

    • getStreamData

      private static byte[] getStreamData(InputStream is) throws IOException
      Read contents of stream into byte array.
      Parameters:
      is - input stream to be read
      Returns:
      array of bytes containing all data from stream
      Throws:
      IOException - on stream access error
    • recursePathJars

      private static void recursePathJars(String path, ArrayList paths)
      Recurse through jar file path component, adding all jars referenced from the original jar to the path collection. Silently ignores problems loading jar files.
      Parameters:
      path - jar path component
      paths - set of paths processed (added to by call)
    • getClassPaths

      public static String[] getClassPaths()
      Method builds a string array of items in the class path.
      Returns:
      array of classpath components
    • fileName

      public static String fileName(String path)
      Extract base file name from a full path.
      Parameters:
      path - full file path
      Returns:
      file name component from path
    • bindingFromFileName

      public static String bindingFromFileName(String fname)
      Get the default binding name from a supplied file name.
      Parameters:
      fname - simple file name (without leading path information)
      Returns:
      default binding name
    • validateBinding

      public static BindingElement validateBinding(String name, URL url, InputStream is)
      Validate binding definition. If issues are found in the binding the issues are printed directly to the console.
      Parameters:
      name - identifier for binding definition
      url - URL for binding definition (null if not available)
      is - input stream for reading binding definition
      Returns:
      root element of binding model if binding is valid, null if one or more errors in binding
    • loadBinding

      public static BindingDefinition loadBinding(String fname, String sname, InputStream istrm, URL url, boolean test) throws JiBXException, IOException
      Load validated binding definition. This first reads the input stream into a memory buffer, then parses the data once for validation and a second time for the actual binding definition construction. If any errors are found in the binding definition validation the construction is skipped and an exception is thrown.
      Parameters:
      fname - binding definition full name
      sname - short form of name to use as the default name of the binding
      istrm - input stream for binding definition document
      url - URL for binding definition (null if not available)
      test - validate binding flag
      Returns:
      constructed binding definition
      Throws:
      FileNotFoundException - if path cannot be accessed
      JiBXException - if error in processing the binding definition
      IOException - if error reading the binding
    • findMappedClass

      private static ClassFile findMappedClass(BindingElement root)
      Recursively search through binding definitions for a modifiable mapped class. This is used to determine the default package for code generation.
      Parameters:
      root - binding element at root of definition
      Returns:
      modifiable mapped class, or null if none
    • loadFileBinding

      public static BindingDefinition loadFileBinding(String path, boolean valid) throws JiBXException, IOException
      Load binding definition from file.
      Parameters:
      path - file path for binding definition
      valid - validate binding flag
      Returns:
      constructed binding definition
      Throws:
      IOException - if error accessing file
      JiBXException - if error in processing the binding definition