Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.velocity.runtime.directive
Class Include

    java.lang.Object
      |
      +--org.apache.velocity.runtime.directive.Directive
            |
            +--org.apache.velocity.runtime.directive.Include

All Implemented Interfaces:
  java.lang.Cloneable, DirectiveConstants

public class Include
extends Directive

Pluggable directive that handles the #include() statement in VTL. This #include() can take multiple arguments of either StringLiteral or Reference. Notes: ----- 1) The included source material can only come from somewhere in the TemplateRoot tree for security reasons. There is no way around this. If you want to include content from elsewhere on your disk, use a link from somwhere under Template Root to that content. 2) By default, there is no output to the render stream in the event of a problem. You can override this behavior with two property values : include.output.errormsg.start include.output.errormsg.end If both are defined in velocity.properties, they will be used to in the render output to bracket the arg string that caused the problem. Ex. : if you are working in html then include.output.errormsg.start= might be an excellent way to start... 3) As noted above, #include() can take multiple arguments. Ex : #include( "foo.vm" "bar.vm" $foo ) will simply include all three if valid to output w/o any special separator.

Version:
  $Id: Include.java,v 1.23 2001/10/22 03:53:24 jon Exp $
Author:
  Geir Magnusson Jr., Jason van Zyl, Kasper Nielsen

Field Summary
`private java.lang.String` | `outputMsgEnd`
`private java.lang.String` | `outputMsgStart`

Fields inherited from class org.apache.velocity.runtime.directive.Directive
`column, line, rsvc`

Fields inherited from interface org.apache.velocity.runtime.directive.DirectiveConstants
`BLOCK, LINE`

Constructor Summary
`Include()`

Method Summary
`java.lang.String` | `getName()` Return name of this directive.
`int` | `getType()` Return type of this directive.
`void` | `init(RuntimeServices rs, InternalContextAdapter context, Node node)` simple init - init the tree and get the elementKey from the AST
`private void` | `outputErrorToStream(java.io.Writer writer, java.lang.String msg)` Puts a message to the render output stream if ERRORMSG_START / END are valid property strings.
`boolean` | `render(InternalContextAdapter context, java.io.Writer writer, Node node)` iterates through the argument list and renders every argument that is appropriate.
`private boolean` | `renderOutput(Node node, InternalContextAdapter context, java.io.Writer writer)` does the actual rendering of the included file

Methods inherited from class org.apache.velocity.runtime.directive.Directive
`getColumn, getLine, setLocation`

Methods inherited from class java.lang.Object
`, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait`

Field Detail

### outputMsgStart

    private java.lang.String outputMsgStart

### outputMsgEnd

    private java.lang.String outputMsgEnd

Constructor Detail

### Include

    public Include()

Method Detail

### getName

    public java.lang.String getName()

  Return name of this directive.
  Overrides:
    `getName` in class `Directive`

### getType

    public int getType()

  Return type of this directive.
  Overrides:
    `getType` in class `Directive`

### init

    public void init(RuntimeServices rs,
                     InternalContextAdapter context,
                     Node node)
              throws java.lang.Exception

  simple init - init the tree and get the elementKey from the AST
  Overrides:
    `init` in class `Directive`

### render

    public boolean render(InternalContextAdapter context,
                          java.io.Writer writer,
                          Node node)
                   throws java.io.IOException,
                          MethodInvocationException,
                          ResourceNotFoundException

  iterates through the argument list and renders every argument that is appropriate. Any non appropriate arguments are logged, but render() continues.
  Overrides:
    `render` in class `Directive`

### renderOutput

    private boolean renderOutput(Node node,
                                 InternalContextAdapter context,
                                 java.io.Writer writer)
                          throws java.io.IOException,
                                 MethodInvocationException,
                                 ResourceNotFoundException

  does the actual rendering of the included file
  Parameters:
    `node` - AST argument of type StringLiteral or Reference
    `context` - valid context so we can render References
    `writer` - output Writer
  Returns:
    boolean success or failure. failures are logged

### outputErrorToStream

    private void outputErrorToStream(java.io.Writer writer,
                                     java.lang.String msg)
                              throws java.io.IOException

  Puts a message to the render output stream if ERRORMSG_START / END are valid property strings. Mainly used for end-user template debugging.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2003 Apache Software Foundation. All Rights Reserved.