private static class OutTextPreparer.ParseHelper
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
(package private) boolean |
bNewline |
(package private) java.lang.Class<?> |
execClass |
(package private) java.util.Map<java.lang.String,java.lang.Object> |
idxConstData |
(package private) java.util.Map<java.lang.String,OutTextPreparer> |
idxScript |
(package private) int[] |
ixCtrlCmd |
(package private) int |
ixixCmd |
(package private) int |
nLastWasSkipOverWhitespace |
(package private) OutTextPreparer |
otx |
(package private) int |
pos0 |
(package private) int |
pos1 |
(package private) StringPartScanLineCol |
sp |
Constructor and Description |
---|
ParseHelper(OutTextPreparer otx,
java.lang.Class<?> execClass,
java.util.Map<java.lang.String,java.lang.Object> idxConstDataArg,
java.util.Map<java.lang.String,OutTextPreparer> idxScript) |
Modifier and Type | Method and Description |
---|---|
private void |
addCmd(java.lang.String src,
int[] linecol,
int from,
int to,
OutTextPreparer.Cmd cmd)
Common addCmd with given Cmd instance (may be derived).
|
private OutTextPreparer.Cmd |
addCmd(java.lang.String src,
int[] linecol,
int from,
int to,
OutTextPreparer.ECmd ecmd,
java.lang.String sDatapath)
Explore the sDatapath and adds the proper Cmd
|
private void |
addCmdSimpleVar(java.lang.String src,
int[] linecol,
int from,
int to,
OutTextPreparer.ECmd eCmd,
java.lang.String sName)
Called if a simple
<&name> is detected. |
private void |
addCmdValueAccess(java.lang.String src,
int[] linecol,
int from,
int to,
java.lang.String sDatapath,
java.lang.String sFormat,
java.lang.Class<?> execClass,
java.util.Map<java.lang.String,java.lang.Object> idxConstData)
Called if a simple
<&name> is detected. |
private void |
addError(java.lang.String sError,
int[] linecol) |
(package private) void |
parse()
Parse the given script in the created
OutTextPreparer instance with given variables. |
private void |
parseArgs() |
private void |
parseCall(java.lang.String src,
int pos0,
int pos1,
StringPartScanLineCol sp,
java.lang.Class<?> reflData,
java.util.Map<java.lang.String,java.lang.Object> idxConstData,
java.util.Map<java.lang.String,OutTextPreparer> idxScript) |
private void |
parseElement() |
private OutTextPreparer.Cmd |
parseExec(java.lang.String src,
int pos0,
int pos1,
StringPartScanLineCol sp,
java.lang.Class<?> reflData,
java.util.Map<java.lang.String,java.lang.Object> idxConstData,
java.util.Map<java.lang.String,OutTextPreparer> idxScript) |
private void |
parseIf(OutTextPreparer.ECmd ecmd) |
private void |
parseWr() |
final OutTextPreparer otx
final java.util.Map<java.lang.String,java.lang.Object> idxConstData
final java.lang.Class<?> execClass
final java.util.Map<java.lang.String,OutTextPreparer> idxScript
int pos0
int pos1
int[] ixCtrlCmd
int ixixCmd
boolean bNewline
final StringPartScanLineCol sp
int nLastWasSkipOverWhitespace
ParseHelper(OutTextPreparer otx, java.lang.Class<?> execClass, java.util.Map<java.lang.String,java.lang.Object> idxConstDataArg, java.util.Map<java.lang.String,OutTextPreparer> idxScript)
void parse() throws java.text.ParseException
OutTextPreparer
instance with given variables.java.text.ParseException
private void parseElement() throws java.text.ParseException
java.text.ParseException
private void parseArgs()
private void parseWr()
private void parseIf(OutTextPreparer.ECmd ecmd)
private OutTextPreparer.Cmd parseExec(java.lang.String src, int pos0, int pos1, StringPartScanLineCol sp, java.lang.Class<?> reflData, java.util.Map<java.lang.String,java.lang.Object> idxConstData, java.util.Map<java.lang.String,OutTextPreparer> idxScript) throws java.text.ParseException
java.text.ParseException
private void parseCall(java.lang.String src, int pos0, int pos1, StringPartScanLineCol sp, java.lang.Class<?> reflData, java.util.Map<java.lang.String,java.lang.Object> idxConstData, java.util.Map<java.lang.String,OutTextPreparer> idxScript)
private void addError(java.lang.String sError, int[] linecol)
private void addCmd(java.lang.String src, int[] linecol, int from, int to, OutTextPreparer.Cmd cmd)
src
- the pattern or specific Stringfrom
- position of text before this cmd from pattern, or from specific Stringto
- end text after from.cmd
- the intrinsic OutTextPreparer.Cmd
to add. Can be null, then not added.private void addCmdSimpleVar(java.lang.String src, int[] linecol, int from, int to, OutTextPreparer.ECmd eCmd, java.lang.String sName)
<&name>
is detected.
It is searched firstly in idxConstData
, then in OutTextPreparer.nameVariables
and at least in the execClass via Datapath access.
If not found then ?sName??>
is output on runtime.
It adds the plain text if necessary and the data access calling Cmd#Cmd(ECmd, int, DataAccess, Object, String)
to the list of commands.src
- The text before to output the plain text beforefrom
- range in srcto
- to > from, then output the plain texteCmd
- The OutTextPreparer.ECmd
for the CmdsName
- name of the argument or variable or field.execClass
- to search in a data field.private void addCmdValueAccess(java.lang.String src, int[] linecol, int from, int to, java.lang.String sDatapath, java.lang.String sFormat, java.lang.Class<?> execClass, java.util.Map<java.lang.String,java.lang.Object> idxConstData)
<&name>
is detected.
It is searched firstly in idxConstData
, then in OutTextPreparer.nameVariables
and at least in the execClass via Datapath access.
If not found then ?sName??>
is output on runtime.
It adds the plain text if necessary and the data access as Cmd#Cmd(ECmd, int, DataAccess, Object, String)
to the list of commands.src
- The text before to output the plain text beforefrom
- range in srcto
- to > from, then output the plain texteCmd
- The OutTextPreparer.ECmd
for the CmdsName
- name of the argument or variable or field.execClass
- to search in a data field.private OutTextPreparer.Cmd addCmd(java.lang.String src, int[] linecol, int from, int to, OutTextPreparer.ECmd ecmd, java.lang.String sDatapath)
src
- The pattern to get text contentsfrom
- start position for text contentto
- end position for text content, if <= from then no text content is stored (both = 0)ecmd
- The cmd kindsDatapath
- null or a textual data path. It will be split to CalculatorExpr.Operand.ixValue
and CalculatorExpr.Operand.dataAccess
reflData
- class to main data, usable for static operations, also otxScript for callidxConstData
- container of constant data for compile (parse) timeidxScript
- can contain some other OutTextPreparer instances for call.