public class DataProcessor extends WithDiagnostics
Constructor and Description |
---|
DataProcessor(edu.illinois.ncsa.daffodil.processors.DataProcessor dp) |
Modifier and Type | Method and Description |
---|---|
ParseResult |
parse(java.nio.channels.ReadableByteChannel input)
Deprecated.
Use parse(ReadableByteChannel, InfosetOutputter) to parse the data and get the infoset representation from the InfosetOutputter instead of ParseResult#result(). Since 2.0.0.
|
ParseResult |
parse(java.nio.channels.ReadableByteChannel input,
InfosetOutputter output)
Parse input data without specifying a length
|
ParseResult |
parse(java.nio.channels.ReadableByteChannel input,
InfosetOutputter output,
long lengthLimitInBits)
Parse input data with a specified length
|
ParseResult |
parse(java.nio.channels.ReadableByteChannel input,
long lengthLimitInBits)
Deprecated.
Use parse(ReadableByteChannel, InfosetOutputter, long) to parse the data and get the infoset representation from the InfosetOutputter instead of ParseResult#result(). Since 2.0.0.
|
void |
save(java.nio.channels.WritableByteChannel output)
Save the DataProcessor
|
void |
setDebugger(DebuggerRunner dr)
Set the debugger runer
|
void |
setDebugging(boolean flag)
Enable/disable debugging.
|
void |
setExternalVariables(java.io.File extVars)
Read external variables from a Daffodil configuration file
|
void |
setExternalVariables(scala.collection.immutable.Map<java.lang.String,java.lang.String> extVars)
Set the value of multiple DFDL variables
|
void |
setValidationMode(ValidationMode mode)
Set validation mode
|
UnparseResult |
unparse(InfosetInputter input,
java.nio.channels.WritableByteChannel output)
Unparse an InfosetInputter
|
UnparseResult |
unparse(java.nio.channels.WritableByteChannel output,
org.jdom2.Document infoset)
Deprecated.
Use unparse(InfosetInputter, WritableByteChannel). Since 2.0.0.
|
canProceed, getDiagnostics, isError
public DataProcessor(edu.illinois.ncsa.daffodil.processors.DataProcessor dp)
public void setDebugging(boolean flag)
Before enabling, setDebugger(DebuggerRunner)
must be called with a non-null debugger.
flag
- true to enable debugging, false to disabledpublic void setDebugger(DebuggerRunner dr)
dr
- debugger runnerpublic void setValidationMode(ValidationMode mode) throws InvalidUsageException
mode
- mode to control validationInvalidUsageException
public void setExternalVariables(java.io.File extVars)
extVars
- file to read DFDL variables from.public void setExternalVariables(scala.collection.immutable.Map<java.lang.String,java.lang.String> extVars)
extVars
- a map of key/value pairs, where the key is the variable
name, and the value is the value of the variable. The key
may be preceded by a string of the form "{namespace}" to
define a namespace for the variable. If preceded with "{}",
then no namespace is used. If not preceded by anything,
then Daffodil will figure out the namespace.public void save(java.nio.channels.WritableByteChannel output)
The resulting output can be reloaded by Compiler.reload(java.nio.channels.ReadableByteChannel)
.
output
- the byte channel to write the DataProcessor
topublic ParseResult parse(java.nio.channels.ReadableByteChannel input, long lengthLimitInBits)
public ParseResult parse(java.nio.channels.ReadableByteChannel input)
public ParseResult parse(java.nio.channels.ReadableByteChannel input, InfosetOutputter output, long lengthLimitInBits)
input
- data to be parsedoutput
- the InfosetOutputter that will be used to output the infosetlengthLimitInBits
- the length of the input data in bits. This must
be the actual length in bits if you want the
location().isAtEnd() function to work. If value
is -1, the isAtEnd() function will always return true.public ParseResult parse(java.nio.channels.ReadableByteChannel input, InfosetOutputter output)
Use this when you don't know how big the data is. Note that the isAtEnd()
does not work properly and will always return -1. If you need isAtEnd() to
work, you must use parse(java.nio.channels.ReadableByteChannel, InfosetOutputter, long)
and
specify the length of the data.
input
- data to be parsedoutput
- the InfosetOutputter that will be used to output the infosetpublic UnparseResult unparse(InfosetInputter input, java.nio.channels.WritableByteChannel output)
input
- the infoset inputter to use for unparsingoutput
- the byte channel to write the data topublic UnparseResult unparse(java.nio.channels.WritableByteChannel output, org.jdom2.Document infoset)
output
- the byte channel to write the data toinfoset
- the infoset to unparse, as a jdom event cursor