Package ch.qos.logback.core.subst
Class NodeToStringTransformer
- java.lang.Object
-
- ch.qos.logback.core.subst.NodeToStringTransformer
-
public class NodeToStringTransformer extends java.lang.ObjectCompiles a previously parsed Node chain into a String.
-
-
Field Summary
Fields Modifier and Type Field Description (package private) Nodenode(package private) PropertyContainerpropertyContainer0(package private) PropertyContainerpropertyContainer1
-
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 voidcompileNode(Node inputNode, java.lang.StringBuilder stringBuilder, java.util.Stack<Node> cycleCheckStack)private java.lang.StringconstructRecursionErrorMessage(java.util.Stack<Node> recursionNodes)private booleanequalNodes(Node node1, Node node2)private voidhandleLiteral(Node n, java.lang.StringBuilder stringBuilder)private voidhandleVariable(Node n, java.lang.StringBuilder stringBuilder, java.util.Stack<Node> cycleCheckStack)private booleanhaveVisitedNodeAlready(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.StringlookupKey(java.lang.String key)static java.lang.StringsubstituteVariable(java.lang.String input, PropertyContainer pc0, PropertyContainer pc1)private static NodetokenizeAndParseString(java.lang.String value)java.lang.Stringtransform()private java.lang.StringvariableNodeValue(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.
-
-