terp - the Codemesh Modular
Template Interpreter v1.3.309

com.codemesh.terp.eval
Class TerpContextImpl

java.lang.Object
  extended by com.codemesh.terp.eval.TerpContextImpl
All Implemented Interfaces:
TerpContext, java.lang.Cloneable

public class TerpContextImpl
extends java.lang.Object
implements TerpContext

The public portion of the context in which bindings and general evaluation settings are specified.


Field Summary
protected  java.lang.Appendable appendable
           
protected  java.util.Map<java.lang.String,java.lang.Object> bindings
           
protected  boolean bInMetadata
           
protected  TextLayoutEngine engine
           
protected  java.util.Map<java.lang.String,java.lang.Object> externaBindings
           
protected static java.util.Map<java.lang.String,java.lang.Object> GLOBAL_BINDINGS
           
protected  java.util.concurrent.atomic.AtomicInteger iSuppress
           
protected  java.util.Stack<TextLayoutEngine.LayoutRelevantData> layoutData
           
protected  java.util.Stack<InternalContext> stackCtx
           
protected  java.util.Stack<java.lang.Object> stackExec
           
protected  java.util.Stack<InputSource> stackSource
           
 
Constructor Summary
TerpContextImpl()
           
TerpContextImpl(java.util.Map<java.lang.String,java.lang.Object> bindings)
           
TerpContextImpl(java.util.Map<java.lang.String,java.lang.Object> bindings, java.lang.Appendable app)
           
TerpContextImpl(java.util.Stack<InternalContext> stackCtx, java.util.Stack<java.lang.Object> stackExec, java.util.Stack<InputSource> stackSrc, java.util.Stack<TextLayoutEngine.LayoutRelevantData> layoutData)
           
 
Method Summary
 void appendForeachPrefix()
           
 void appendForeachSeparator()
           
 void appendForeachSuffix()
           
 void appendText(java.lang.String text)
           
protected  TextLayoutEngine.LayoutRelevantData calculateLayoutData()
           
 TerpContext clone()
          Returns a cloned context object.
 TerpContext createChained()
          Creates a context that shares the same variables but has a different appendable and an empty line.
 void done()
           
 void enterScope(TerpEvaluator eval, Node meta)
           
 java.lang.Appendable getAppendable()
          Returns the appendable target to which template expansions are appended.
 java.util.Map<java.lang.String,java.lang.Object> getBindings()
          Returns the input bindings.
 java.util.Map<java.lang.String,java.lang.Object> getExternalBindings()
          Returns the external properties.
 Lvalue getMetadataLvalue(java.lang.String id)
           
 Rvalue getMetadataRvalue(java.lang.String id)
           
 void leaveScope()
           
 java.lang.Object peek()
          Returns the topmost execution stack object.
 InternalContext peekContext()
          Returns the topmost scope stack context.
 InputSource peekSource()
           
 java.lang.Object pop()
          Pops an object from the execution stack.
 InternalContext popContext()
          Pops an internal scope context from the scope stack.
 InputSource popSource()
           
 void push(java.lang.Object obj)
          Pushes an object onto the execution stack.
 void pushContext(InternalContext ctx)
          Pushes a new internal scope context onto the scope stack.
 void pushSource(InputSource source)
           
 Lvalue resolveLvalue(TerpEvaluator eval, Rvalue rval, java.lang.String id)
           
 Lvalue resolveLvalue(TerpEvaluator eval, java.lang.String id)
           
 Rvalue resolveRvalue(TerpEvaluator eval, Rvalue rval, java.lang.String id)
           
 Rvalue resolveRvalue(TerpEvaluator eval, java.lang.String id)
          Attempts to resolve an rvalue absolutely (from the global level).
 java.lang.Object resolveSource(java.lang.Object source)
           
 void setAppendable(java.lang.Appendable app)
          Sets the Appendable into which template expansions are written.
 void setBindings(java.util.Map<java.lang.String,java.lang.Object> bindings)
          Sets the bindings that represent input variables.
 void setExternalBindings(java.util.Map<java.lang.String,java.lang.Object> bindings)
          Sets the bindings that are inherited from an external component.
 void setScopeVariable(java.lang.String id, java.lang.Object value)
           
 boolean suppressSevere()
           
 boolean suppressSevere(boolean bSuppress)
           
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

stackCtx

protected final java.util.Stack<InternalContext> stackCtx

stackExec

protected final java.util.Stack<java.lang.Object> stackExec

stackSource

protected final java.util.Stack<InputSource> stackSource

layoutData

protected final java.util.Stack<TextLayoutEngine.LayoutRelevantData> layoutData

appendable

protected java.lang.Appendable appendable

bindings

protected java.util.Map<java.lang.String,java.lang.Object> bindings

externaBindings

protected java.util.Map<java.lang.String,java.lang.Object> externaBindings

engine

protected TextLayoutEngine engine

bInMetadata

protected boolean bInMetadata

iSuppress

protected java.util.concurrent.atomic.AtomicInteger iSuppress

GLOBAL_BINDINGS

protected static final java.util.Map<java.lang.String,java.lang.Object> GLOBAL_BINDINGS
Constructor Detail

TerpContextImpl

public TerpContextImpl()

TerpContextImpl

public TerpContextImpl(java.util.Map<java.lang.String,java.lang.Object> bindings)

TerpContextImpl

public TerpContextImpl(java.util.Map<java.lang.String,java.lang.Object> bindings,
                       java.lang.Appendable app)

TerpContextImpl

public TerpContextImpl(java.util.Stack<InternalContext> stackCtx,
                       java.util.Stack<java.lang.Object> stackExec,
                       java.util.Stack<InputSource> stackSrc,
                       java.util.Stack<TextLayoutEngine.LayoutRelevantData> layoutData)
Method Detail

clone

public TerpContext clone()
Description copied from interface: TerpContext
Returns a cloned context object.

Specified by:
clone in interface TerpContext
Overrides:
clone in class java.lang.Object
Returns:
a context that contains duplicated stacks and bindings populated with the same stack elements.

setAppendable

public void setAppendable(java.lang.Appendable app)
Sets the Appendable into which template expansions are written.

Specified by:
setAppendable in interface TerpContext
Parameters:
app - the appendable target for template expansions.

getAppendable

public java.lang.Appendable getAppendable()
Returns the appendable target to which template expansions are appended.

Specified by:
getAppendable in interface TerpContext
Returns:
an appendable object.

setBindings

public void setBindings(java.util.Map<java.lang.String,java.lang.Object> bindings)
Sets the bindings that represent input variables.

Specified by:
setBindings in interface TerpContext
Parameters:
bindings - the input bindings.

getBindings

public java.util.Map<java.lang.String,java.lang.Object> getBindings()
Returns the input bindings.

Specified by:
getBindings in interface TerpContext
Returns:
the input bindings.

setExternalBindings

public void setExternalBindings(java.util.Map<java.lang.String,java.lang.Object> bindings)
Sets the bindings that are inherited from an external component. These bindings are typically a properties set from a tool like ANT or Maven.

Specified by:
setExternalBindings in interface TerpContext
Parameters:
bindings - externally maintained bindings.

getExternalBindings

public java.util.Map<java.lang.String,java.lang.Object> getExternalBindings()
Returns the external properties.

Specified by:
getExternalBindings in interface TerpContext
Returns:
the external bindings.

createChained

public TerpContext createChained()
Creates a context that shares the same variables but has a different appendable and an empty line.

Specified by:
createChained in interface TerpContext
Returns:
a related context.

push

public void push(java.lang.Object obj)
Pushes an object onto the execution stack.

Specified by:
push in interface TerpContext
Parameters:
obj - the object to push.

pop

public java.lang.Object pop()
Pops an object from the execution stack.

Specified by:
pop in interface TerpContext
Returns:
the popped object.

peek

public java.lang.Object peek()
Returns the topmost execution stack object.

Specified by:
peek in interface TerpContext
Returns:
the topmost execution stack object.

pushContext

public void pushContext(InternalContext ctx)
Pushes a new internal scope context onto the scope stack. The scope stack maintains settings that are of limited scope, for example the metadata settings of block statements.

Specified by:
pushContext in interface TerpContext
Parameters:
ctx - the internal context to push.

popContext

public InternalContext popContext()
Pops an internal scope context from the scope stack.

Specified by:
popContext in interface TerpContext
Returns:
the pooped context.

peekContext

public InternalContext peekContext()
Returns the topmost scope stack context.

Specified by:
peekContext in interface TerpContext
Returns:
the topmost scope stack context.

pushSource

public void pushSource(InputSource source)
Specified by:
pushSource in interface TerpContext

resolveSource

public java.lang.Object resolveSource(java.lang.Object source)
Specified by:
resolveSource in interface TerpContext

popSource

public InputSource popSource()
Specified by:
popSource in interface TerpContext

peekSource

public InputSource peekSource()
Specified by:
peekSource in interface TerpContext

resolveRvalue

public Rvalue resolveRvalue(TerpEvaluator eval,
                            Rvalue rval,
                            java.lang.String id)
Specified by:
resolveRvalue in interface TerpContext

resolveRvalue

public Rvalue resolveRvalue(TerpEvaluator eval,
                            java.lang.String id)
Attempts to resolve an rvalue absolutely (from the global level).

Specified by:
resolveRvalue in interface TerpContext
Parameters:
eval - the evaluator.
id - the global identifier of the object.
Returns:
an rvalue returning the value of the object or null.

getMetadataRvalue

public Rvalue getMetadataRvalue(java.lang.String id)
Specified by:
getMetadataRvalue in interface TerpContext

getMetadataLvalue

public Lvalue getMetadataLvalue(java.lang.String id)
Specified by:
getMetadataLvalue in interface TerpContext

resolveLvalue

public Lvalue resolveLvalue(TerpEvaluator eval,
                            Rvalue rval,
                            java.lang.String id)
Specified by:
resolveLvalue in interface TerpContext

resolveLvalue

public Lvalue resolveLvalue(TerpEvaluator eval,
                            java.lang.String id)
Specified by:
resolveLvalue in interface TerpContext

enterScope

public void enterScope(TerpEvaluator eval,
                       Node meta)
Specified by:
enterScope in interface TerpContext

leaveScope

public void leaveScope()
Specified by:
leaveScope in interface TerpContext

setScopeVariable

public void setScopeVariable(java.lang.String id,
                             java.lang.Object value)
Specified by:
setScopeVariable in interface TerpContext

calculateLayoutData

protected TextLayoutEngine.LayoutRelevantData calculateLayoutData()

appendText

public void appendText(java.lang.String text)
Specified by:
appendText in interface TerpContext

done

public void done()
Specified by:
done in interface TerpContext

appendForeachPrefix

public void appendForeachPrefix()
Specified by:
appendForeachPrefix in interface TerpContext

appendForeachSeparator

public void appendForeachSeparator()
Specified by:
appendForeachSeparator in interface TerpContext

appendForeachSuffix

public void appendForeachSuffix()
Specified by:
appendForeachSuffix in interface TerpContext

suppressSevere

public boolean suppressSevere()
Specified by:
suppressSevere in interface TerpContext

suppressSevere

public boolean suppressSevere(boolean bSuppress)
Specified by:
suppressSevere in interface TerpContext

terp - the Codemesh Modular
Template Interpreter v1.3.309

Copyright © 2008-2012 by Codemesh, Inc. All Rights Reserved.