public class EvtreeNode_FBcl
extends java.lang.Object
implements org.vishia.util.ToStringBuilder
evout
-source to evinDst
-destination.
nodes
of this instances and also the parents
.
Usual only one parent exists, but if there are cross over connections,
a part of FBlocks is activated also from another event source, then more as one parent can exist.
nDeepness
is related to the track with the first parent.
See documentation chapter Event tree nodeModifier and Type | Class and Description |
---|---|
static class |
EvtreeNode_FBcl.IteratorEvoutTree
It is an
Iterator for the tree for all nodes starting from the given node as root. |
private static class |
EvtreeNode_FBcl.IteratorParent
Iterator to all parents.
|
Modifier and Type | Field and Description |
---|---|
private long[][] |
conditionBits
This condition bits describes that the following chain is conditional from this point.
|
private static int |
ctNode |
Evin_FBcl |
evinDst
The destination, this is the action to do with this node.
|
Evout_FBcl |
evout
The evout as src for this connection.
|
EvtreeNode_FBcl[] |
forkNodes
Contains all nodes where the condition changes.
|
int |
nDeepness |
protected java.util.List<EvtreeNode_FBcl> |
nodes
Child nodes, often only one, if more as one then it is a parallel processing possible.
|
int |
nrNode
This is the order of creation, for debug yet.
|
java.util.List<EvtreeNode_FBcl> |
parents |
java.lang.String |
sVariant |
Constructor and Description |
---|
EvtreeNode_FBcl(java.util.List<EvtreeNode_FBcl> parentsArg,
Evout_FBcl evout,
Evin_FBcl evinDst,
long[][] condition,
java.lang.String sVariant) |
Modifier and Type | Method and Description |
---|---|
void |
addParent(EvtreeNode_FBcl parent) |
long[][] |
getConditionBits() |
EvtreeNode_FBcl |
getLastParent() |
boolean |
isNew()
true if the node is yet just created, for example with
Evin_FBcl#getEvoutTreeNode(EvtreeNode_FBcl) . |
java.lang.Iterable<EvtreeNode_FBcl> |
iterNode()
Access to all added nodes via
nodes as Iterable |
java.lang.Iterable<EvtreeNode_FBcl> |
iterParent()
Iterable to track back all parents.
|
EvtreeNode_FBcl.IteratorEvoutTree |
iterTree(boolean bAlsoThisNode)
Iterator to track all nodes in the tree starting from this node.
|
java.lang.String |
toString() |
java.lang.StringBuilder |
toString(java.lang.StringBuilder app,
java.lang.String... cond) |
private static int ctNode
public final int nrNode
public final int nDeepness
public final java.util.List<EvtreeNode_FBcl> parents
public EvtreeNode_FBcl[] forkNodes
conditionBits
,
means here the condition changes.
The used fork node(s) where a new branch should be added (starts) is/are the parents
of this fork node. Else if it has no parents, then it is the evstart node.public final Evout_FBcl evout
public final Evin_FBcl evinDst
private long[][] conditionBits
evinDst
.
Or if the evoutSrc is a FBexprEv_OFB with "true" and "false" output.
See org.vishia.fbcl.fblockwr.Write_Module_FBwr#completeCondEvents()
This element is null if the condition itself in the event tree is given but unchanged,
whereas the evout
contains its Evinout_FBcl.condBits
for the wiring selection on code generation.
Means, if this element is set, also a fork is often given in the event tree.
This is then the first node after the fork.public final java.lang.String sVariant
protected java.util.List<EvtreeNode_FBcl> nodes
public EvtreeNode_FBcl(java.util.List<EvtreeNode_FBcl> parentsArg, Evout_FBcl evout, Evin_FBcl evinDst, long[][] condition, java.lang.String sVariant)
public long[][] getConditionBits()
public EvtreeNode_FBcl getLastParent()
public java.lang.Iterable<EvtreeNode_FBcl> iterNode()
nodes
as Iterable
public java.lang.Iterable<EvtreeNode_FBcl> iterParent()
EvtreeNode_FBcl.IteratorParent
public EvtreeNode_FBcl.IteratorEvoutTree iterTree(boolean bAlsoThisNode)
nodes
via all other first nodes
of the sub node,
then the second sub node of the last sub node etc.
See schema:0 -> 1 -> 2 -> 3 | | + -> 31 | + -> 21-> 41 | + -> 42 + -> 11in the order
0 1 2 3 31 21 41 42 111
bAlsoThisNode
- true then output also this as root itself in the iterator,
false then do not output this as root.Iterable
and also Iterator
but with an additional operation EvtreeNode_FBcl.IteratorEvoutTree.getSibling()
public boolean isNew()
Evin_FBcl#getEvoutTreeNode(EvtreeNode_FBcl)
.
The node is new if neverpublic void addParent(EvtreeNode_FBcl parent)
public java.lang.StringBuilder toString(java.lang.StringBuilder app, java.lang.String... cond)
toString
in interface org.vishia.util.ToStringBuilder
ToStringBuilder.toString(StringBuilder, String...)
public java.lang.String toString()
toString
in class java.lang.Object