Package ch.qos.logback.core.subst
Class NodeToStringTransformer
- java.lang.Object
-
- ch.qos.logback.core.subst.NodeToStringTransformer
-
public class NodeToStringTransformer extends java.lang.Object
Compiles a previously parsed Node chain into a String.
-
-
Field Summary
Fields Modifier and Type Field Description (package private) Node
node
(package private) PropertyContainer
propertyContainer0
(package private) PropertyContainer
propertyContainer1
-
Constructor Summary
Constructors Constructor Description NodeToStringTransformer(Node node, PropertyContainer propertyContainer0)
NodeToStringTransformer(Node node, PropertyContainer propertyContainer0, PropertyContainer propertyContainer1)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
compileNode(Node inputNode, java.lang.StringBuilder stringBuilder, java.util.Stack<Node> cycleCheckStack)
private java.lang.String
constructRecursionErrorMessage(java.util.Stack<Node> recursionNodes)
private boolean
equalNodes(Node node1, Node node2)
private void
handleLiteral(Node n, java.lang.StringBuilder stringBuilder)
private void
handleVariable(Node n, java.lang.StringBuilder stringBuilder, java.util.Stack<Node> cycleCheckStack)
private boolean
haveVisitedNodeAlready(Node node, java.util.Stack<Node> cycleDetectionStack)
Determine if a node has already been visited already by checking the cycleDetectionStack for it's existence.private java.lang.String
lookupKey(java.lang.String key)
static java.lang.String
substituteVariable(java.lang.String input, PropertyContainer pc0, PropertyContainer pc1)
private static Node
tokenizeAndParseString(java.lang.String value)
java.lang.String
transform()
private java.lang.String
variableNodeValue(Node variableNode)
-
-
-
Field Detail
-
node
final Node node
-
propertyContainer0
final PropertyContainer propertyContainer0
-
propertyContainer1
final PropertyContainer propertyContainer1
-
-
Constructor Detail
-
NodeToStringTransformer
public NodeToStringTransformer(Node node, PropertyContainer propertyContainer0, PropertyContainer propertyContainer1)
-
NodeToStringTransformer
public NodeToStringTransformer(Node node, PropertyContainer propertyContainer0)
-
-
Method Detail
-
substituteVariable
public static java.lang.String substituteVariable(java.lang.String input, PropertyContainer pc0, PropertyContainer pc1) throws ScanException
- Throws:
ScanException
-
tokenizeAndParseString
private static Node tokenizeAndParseString(java.lang.String value) throws ScanException
- Throws:
ScanException
-
transform
public java.lang.String transform() throws ScanException
- Throws:
ScanException
-
compileNode
private void compileNode(Node inputNode, java.lang.StringBuilder stringBuilder, java.util.Stack<Node> cycleCheckStack) throws ScanException
- Throws:
ScanException
-
handleVariable
private void handleVariable(Node n, java.lang.StringBuilder stringBuilder, java.util.Stack<Node> cycleCheckStack) throws ScanException
- Throws:
ScanException
-
lookupKey
private java.lang.String lookupKey(java.lang.String key)
-
handleLiteral
private void handleLiteral(Node n, java.lang.StringBuilder stringBuilder)
-
variableNodeValue
private java.lang.String variableNodeValue(Node variableNode)
-
constructRecursionErrorMessage
private java.lang.String constructRecursionErrorMessage(java.util.Stack<Node> recursionNodes)
-
haveVisitedNodeAlready
private boolean haveVisitedNodeAlready(Node node, java.util.Stack<Node> cycleDetectionStack)
Determine if a node has already been visited already by checking the cycleDetectionStack for it's existence. This method is used -- rather than Stack.contains() -- because we want to ignore the Node's 'next' attribute when comparing for equality.
-
-