Package org.jibx.binding
Class Utility
java.lang.Object
org.jibx.binding.Utility
Binding compiler support class. Supplies common methods for use in compiling
binding definitions.
- Author:
- Dennis M. Sosnoski
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic String
bindingFromFileName
(String fname) Get the default binding name from a supplied file name.static String
Extract base file name from a full path.private static ClassFile
Recursively search through binding definitions for a modifiable mapped class.static String[]
Method builds a string array of items in the class path.private static byte[]
Read contents of stream into byte array.static BindingDefinition
loadBinding
(String fname, String sname, InputStream istrm, URL url, boolean test) Load validated binding definition.static BindingDefinition
loadFileBinding
(String path, boolean valid) Load binding definition from file.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.static BindingElement
validateBinding
(String name, URL url, InputStream is) Validate binding definition.
-
Field Details
-
COPY_BUFFER_SIZE
private static final int COPY_BUFFER_SIZE- See Also:
-
-
Constructor Details
-
Utility
private Utility()
-
-
Method Details
-
getStreamData
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
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
Method builds a string array of items in the class path.- Returns:
- array of classpath components
-
fileName
Extract base file name from a full path.- Parameters:
path
- full file path- Returns:
- file name component from path
-
bindingFromFileName
Get the default binding name from a supplied file name.- Parameters:
fname
- simple file name (without leading path information)- Returns:
- default binding name
-
validateBinding
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(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 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:
FileNotFoundException
- if path cannot be accessedJiBXException
- if error in processing the binding definitionIOException
- if error reading the binding
-
findMappedClass
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 definitionvalid
- validate binding flag- Returns:
- constructed binding definition
- Throws:
IOException
- if error accessing fileJiBXException
- if error in processing the binding definition
-