Top Description Fields Constructors Methods
ch.qos.logback.core.subst

public Class NodeToStringTransformer

extends Object
Class Inheritance
Imports
ch.qos.logback.core.CoreConstants, ch.qos.logback.core.spi.PropertyContainer, .ScanException, ch.qos.logback.core.subst.Node.Type, ch.qos.logback.core.util.OptionHelper, java.util.List, .Stack

Compiles a previously parsed Node chain into a String.
Author
Ceki Gülcü

Field Summary

Modifier and TypeField and Description
public static final String
pack-priv final Node
pack-priv final PropertyContainer
pack-priv final PropertyContainer

Constructor Summary

AccessConstructor and Description
public
NodeToStringTransformer(Node node, PropertyContainer propertyContainer0, PropertyContainer propertyContainer1)

public

Method Summary

Modifier and TypeMethod and Description
private void
compileNode(Node inputNode, StringBuilder stringBuilder, Stack<Node> cycleCheckStack)

private String
private boolean
equalNodes(Node node1, Node node2)

private void
handleLiteral(Node n, StringBuilder stringBuilder)

private void
handleVariable(Node n, StringBuilder stringBuilder, Stack<Node> cycleCheckStack)

private boolean
haveVisitedNodeAlready(Node node, Stack<Node> cycleDetectionStack)

Determine if a node has already been visited already by checking the cycleDetectionStack for its existence.

private String
public static String
private static Node
public String
private String
variableNodeValue(Node variableNode)

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

CIRCULAR_VARIABLE_REFERENCE_DETECTEDback to summary
public static final String CIRCULAR_VARIABLE_REFERENCE_DETECTED
nodeback to summary
pack-priv final Node node
propertyContainer0back to summary
pack-priv final PropertyContainer propertyContainer0
propertyContainer1back to summary
pack-priv final PropertyContainer propertyContainer1

Constructor Detail

NodeToStringTransformerback to summary
public NodeToStringTransformer(Node node, PropertyContainer propertyContainer0, PropertyContainer propertyContainer1)
NodeToStringTransformerback to summary
public NodeToStringTransformer(Node node, PropertyContainer propertyContainer0)

Method Detail

compileNodeback to summary
private void compileNode(Node inputNode, StringBuilder stringBuilder, Stack<Node> cycleCheckStack) throws ScanException
constructRecursionErrorMessageback to summary
private String constructRecursionErrorMessage(Stack<Node> recursionNodes)
equalNodesback to summary
private boolean equalNodes(Node node1, Node node2)
handleLiteralback to summary
private void handleLiteral(Node n, StringBuilder stringBuilder)
handleVariableback to summary
private void handleVariable(Node n, StringBuilder stringBuilder, Stack<Node> cycleCheckStack) throws ScanException
haveVisitedNodeAlreadyback to summary
private boolean haveVisitedNodeAlready(Node node, Stack<Node> cycleDetectionStack)

Determine if a node has already been visited already by checking the cycleDetectionStack for its existence. This method is used -- rather than Stack.contains() -- because we want to ignore the Node's 'next' attribute when comparing for equality.

lookupKeyback to summary
private String lookupKey(String key)
substituteVariableback to summary
public static String substituteVariable(String input, PropertyContainer pc0, PropertyContainer pc1) throws ScanException
tokenizeAndParseStringback to summary
private static Node tokenizeAndParseString(String value) throws ScanException
transformback to summary
public String transform() throws ScanException
variableNodeValueback to summary
private String variableNodeValue(Node variableNode)