org.ujac.util.template
Class ProcedureToken

java.lang.Object
  extended by org.ujac.util.template.TemplateToken
      extended by org.ujac.util.template.TemplateTokenContainer
          extended by org.ujac.util.template.ProcedureToken
All Implemented Interfaces:
Serializable, Cloneable

public class ProcedureToken
extends TemplateTokenContainer

Name: ProcedureToken
Description: Represents a _procedure_ statement.

Author:
lauerc
See Also:
Serialized Form

Field Summary
static TokenAncestor[] ancestorRules
          The ancestor rules.
 
Fields inherited from class org.ujac.util.template.TemplateTokenContainer
procedureRegistry
 
Fields inherited from class org.ujac.util.template.TemplateToken
interpreter, nextLegalAncestor, parent, position, source
 
Constructor Summary
ProcedureToken()
          Constructs a ProcedureToken instance with no specific attributes.
 
Method Summary
 boolean checkContainer(TemplateTokenContainer container)
          Checks whether this token is valid for the given container.
 Object clone()
           
protected  TemplateToken cloneToken(BaseTemplateInterpreter interpreter, TemplateTokenContainer parent)
          Clones the token for caching reasons.
protected  void execute(List arguments, Writer writer, TemplateContext ctx)
          Calls the procedure.
 void execute(Writer writer, TemplateContext ctx)
          Excecutes the statement token.
 TokenAncestor[] getAncestorRules()
          Gets the ancestor rules for this template.
 List getArguments()
          Getter method for the the property arguments.
protected  String getArgumentsAsString()
          Gets the argument list as string.
 String getName()
          Getter method for the the property name.
 String getTokenName()
          Gets the token name.
 void initialize(BaseTemplateInterpreter interpreter, char[] source, int position, int length)
          Initializes the token.
 void setArgument(Operand argument, int idx)
          Sets an argument.
 String toString()
           
 
Methods inherited from class org.ujac.util.template.TemplateTokenContainer
addToken, clearTokens, cloneChildTokens, close, getBodyEnd, getBodyStart, getProcedureRegistry, getToken, getTokenCount, isBodyToken, isClosed, setBodyStart, setProcedureRegistry
 
Methods inherited from class org.ujac.util.template.TemplateToken
getEndPosition, getIndention, getLength, getLevel, getParent, getPosition, getSource, isLegalAncestor, isLegalAncestor, parseArguments, parseArguments, setLength, setLevel, setParent
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

ancestorRules

public static final TokenAncestor[] ancestorRules
The ancestor rules.

Constructor Detail

ProcedureToken

public ProcedureToken()
Constructs a ProcedureToken instance with no specific attributes.

Method Detail

getTokenName

public String getTokenName()
Gets the token name.

Overrides:
getTokenName in class TemplateToken
Returns:
The token name.

initialize

public void initialize(BaseTemplateInterpreter interpreter,
                       char[] source,
                       int position,
                       int length)
                throws TemplateException
Initializes the token.

Overrides:
initialize in class TemplateToken
Parameters:
interpreter - The template interpreter.
source - The source code.
position - The start position.
length - The length of the interresting area.
Throws:
TemplateException - In case the initialization failed.

getName

public String getName()
Getter method for the the property name.

Returns:
The current value of property name.

getAncestorRules

public TokenAncestor[] getAncestorRules()
Gets the ancestor rules for this template.

Overrides:
getAncestorRules in class TemplateToken
Returns:
An array of template ancestors.

checkContainer

public boolean checkContainer(TemplateTokenContainer container)
Checks whether this token is valid for the given container.

Overrides:
checkContainer in class TemplateToken
Parameters:
container - The container that wants to add the token.
Returns:
true if the token may be added to the container, else false.

setArgument

public void setArgument(Operand argument,
                        int idx)
Sets an argument.

Specified by:
setArgument in class TemplateToken
Parameters:
argument - The argument to set.
idx - The argument index.

getArguments

public List getArguments()
Getter method for the the property arguments.

Returns:
The current value of property arguments.

execute

public void execute(Writer writer,
                    TemplateContext ctx)
             throws ExpressionException,
                    IOException
Excecutes the statement token.

Specified by:
execute in class TemplateToken
Parameters:
writer - The writer to write to.
ctx - The template context.
Throws:
ExpressionException - If the token could not be successfuly executed.
IOException - In case an output failure occurred.

execute

protected void execute(List arguments,
                       Writer writer,
                       TemplateContext ctx)
                throws IOException,
                       TemplateException
Calls the procedure.

Parameters:
arguments - The arguments to use for the procedure call.
writer - The writer, to which to write the result.
ctx - The template context.
Throws:
IOException - In case an I/O problem occurred.
TemplateException - If something went wrong.

toString

public String toString()
Overrides:
toString in class TemplateTokenContainer
See Also:
Object.toString()

getArgumentsAsString

protected String getArgumentsAsString()
Gets the argument list as string.

Overrides:
getArgumentsAsString in class TemplateToken
Returns:
The arguements as a comma separated text.

cloneToken

protected TemplateToken cloneToken(BaseTemplateInterpreter interpreter,
                                   TemplateTokenContainer parent)
Clones the token for caching reasons.

Specified by:
cloneToken in class TemplateToken
Parameters:
interpreter - The interpreter to use.
parent - The actual parent in the cloned object tree.
Returns:
The clone.

clone

public Object clone()
Overrides:
clone in class Object
See Also:
Object.clone()


Copyright © 2003-2004 UJAC.org. All Rights Reserved.