Package org.jibx.binding
Class Utility
- java.lang.Object
-
- org.jibx.binding.Utility
-
public class Utility extends java.lang.Object
Binding compiler support class. Supplies common methods for use in compiling binding definitions.- Author:
- Dennis M. Sosnoski
-
-
Field Summary
Fields Modifier and Type Field Description private static int
COPY_BUFFER_SIZE
-
Constructor Summary
Constructors Modifier Constructor Description private
Utility()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static java.lang.String
bindingFromFileName(java.lang.String fname)
Get the default binding name from a supplied file name.static java.lang.String
fileName(java.lang.String path)
Extract base file name from a full path.private static ClassFile
findMappedClass(BindingElement root)
Recursively search through binding definitions for a modifiable mapped class.static java.lang.String[]
getClassPaths()
Method builds a string array of items in the class path.private static byte[]
getStreamData(java.io.InputStream is)
Read contents of stream into byte array.static BindingDefinition
loadBinding(java.lang.String fname, java.lang.String sname, java.io.InputStream istrm, java.net.URL url, boolean test)
Load validated binding definition.static BindingDefinition
loadFileBinding(java.lang.String path, boolean valid)
Load binding definition from file.private static void
recursePathJars(java.lang.String path, java.util.ArrayList paths)
Recurse through jar file path component, adding all jars referenced from the original jar to the path collection.static BindingElement
validateBinding(java.lang.String name, java.net.URL url, java.io.InputStream is)
Validate binding definition.
-
-
-
Field Detail
-
COPY_BUFFER_SIZE
private static final int COPY_BUFFER_SIZE
- See Also:
- Constant Field Values
-
-
Method Detail
-
getStreamData
private static byte[] getStreamData(java.io.InputStream is) throws java.io.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:
java.io.IOException
- on stream access error
-
recursePathJars
private static void recursePathJars(java.lang.String path, java.util.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 componentpaths
- set of paths processed (added to by call)
-
getClassPaths
public static java.lang.String[] getClassPaths()
Method builds a string array of items in the class path.- Returns:
- array of classpath components
-
fileName
public static java.lang.String fileName(java.lang.String path)
Extract base file name from a full path.- Parameters:
path
- full file path- Returns:
- file name component from path
-
bindingFromFileName
public static java.lang.String bindingFromFileName(java.lang.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(java.lang.String name, java.net.URL url, java.io.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 definitionurl
- 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(java.lang.String fname, java.lang.String sname, java.io.InputStream istrm, java.net.URL url, boolean test) throws JiBXException, java.io.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 namesname
- short form of name to use as the default name of the bindingistrm
- input stream for binding definition documenturl
- URL for binding definition (null
if not available)test
- validate binding flag- Returns:
- constructed binding definition
- Throws:
java.io.FileNotFoundException
- if path cannot be accessedJiBXException
- if error in processing the binding definitionjava.io.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(java.lang.String path, boolean valid) throws JiBXException, java.io.IOException
Load binding definition from file.- Parameters:
path
- file path for binding definitionvalid
- validate binding flag- Returns:
- constructed binding definition
- Throws:
java.io.IOException
- if error accessing fileJiBXException
- if error in processing the binding definition
-
-