VelocimacroFactory (Velocity 1.4 API)
Keywords: org.apache.velocity.runtime.VelocimacroFactory class

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

## org.apache.velocity.runtime
Class VelocimacroFactory

    java.lang.Object
      org.apache.velocity.runtime.VelocimacroFactory

public class VelocimacroFactory
extends java.lang.Object

VelocimacroFactory.java manages the set of VMs in a running Velocity engine.

Version:
  $Id: VelocimacroFactory.java,v 1.17.4.1 2004/03/03 23:22:55 geirm Exp $
Author:
  Geir Magnusson Jr.

Nested Class Summary
`private class` | `VelocimacroFactory.Twonk` small continer class to hold the duple of a template and modification time.

Field Summary
`private boolean` | `addNewAllowed` controls if new VMs can be added.
`private boolean` | `autoReloadLibrary` determines if the libraries are auto-loaded when they change
`private boolean` | `blather` controls log output
`private java.util.Map` | `libModMap` map of the library Template objects used for reload determination
`private java.util.Vector` | `macroLibVec` vector of the library names
`private boolean` | `replaceAllowed` determines if replacement of global VMs are allowed controlled by VM_PERM_ALLOW_INLINE_REPLACE_GLOBAL
`private RuntimeServices` | `rsvc` runtime services for this instance
`private boolean` | `templateLocal` sets if template-local namespace in used
`private VelocimacroManager` | `vmManager` VMManager : deal with namespace management and actually keeps all the VM definitions

Constructor Summary
`VelocimacroFactory(RuntimeServices rs)` CTOR : requires a runtime services from now on

Method Summary
`boolean` | `addVelocimacro(java.lang.String name, java.lang.String macroBody, java.lang.String[] argArray, java.lang.String sourceTemplate)` adds a macro to the factory.
`private boolean` | `canAddVelocimacro(java.lang.String name, java.lang.String sourceTemplate)` determines if a given macro/namespace (name, source) combo is allowed to be added
`boolean` | `dumpVMNamespace(java.lang.String namespace)` tells the vmManager to dump the specified namespace
`private boolean` | `getAutoload()` get the switch for automatic reloading of global library-based VMs
`private boolean` | `getBlather()` get output message mode
`private boolean` | `getTemplateLocalInline()`
`Directive` | `getVelocimacro(java.lang.String vmName, java.lang.String sourceTemplate)` actual factory : creates a Directive that will behave correctly wrt getting the framework to dig out the correct # of args
`void` | `initVelocimacro()` initialize the factory - setup all permissions load all global libraries.
`boolean` | `isVelocimacro(java.lang.String vm, java.lang.String sourceTemplate)` Tells the world if a given directive string is a Velocimacro
`private void` | `logVMMessageInfo(java.lang.String s)` localization of the logging logic
`private void` | `logVMMessageWarn(java.lang.String s)` localization of the logging logic
`private boolean` | `setAddMacroPermission(boolean arg)` sets the permission to add new macros
`private void` | `setAutoload(boolean b)` set the switch for automatic reloading of global library-based VMs
`private void` | `setBlather(boolean b)` set output message mode
`private boolean` | `setReplacementPermission(boolean arg)` sets the permission for allowing addMacro() calls to replace existing VM's
`private void` | `setTemplateLocalInline(boolean b)` sets permission to have VMs local in scope to their declaring template note that this is really taken care of in the VMManager class, but we need it here for gating purposes in addVM eventually, I will slide this all into the manager, maybe.

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

Field Detail

### rsvc

    private RuntimeServices rsvc

  runtime services for this instance

### vmManager

    private VelocimacroManager vmManager

  VMManager : deal with namespace management and actually keeps all the VM definitions

### replaceAllowed

    private boolean replaceAllowed

  determines if replacement of global VMs are allowed controlled by VM_PERM_ALLOW_INLINE_REPLACE_GLOBAL

### addNewAllowed

    private boolean addNewAllowed

  controls if new VMs can be added. Set by VM_PERM_ALLOW_INLINE Note the assumption that only through inline defs can this happen. additions through autoloaded VMs is allowed

### templateLocal

    private boolean templateLocal

  sets if template-local namespace in used

### blather

    private boolean blather

  controls log output

### autoReloadLibrary

    private boolean autoReloadLibrary

  determines if the libraries are auto-loaded when they change

### macroLibVec

    private java.util.Vector macroLibVec

  vector of the library names

### libModMap

    private java.util.Map libModMap

  map of the library Template objects used for reload determination

Constructor Detail

### VelocimacroFactory

    public VelocimacroFactory(RuntimeServices rs)

  CTOR : requires a runtime services from now on

Method Detail

### initVelocimacro

    public void initVelocimacro()

  initialize the factory - setup all permissions load all global libraries.

### addVelocimacro

    public boolean addVelocimacro(java.lang.String name,
                                  java.lang.String macroBody,
                                  java.lang.String[] argArray,
                                  java.lang.String sourceTemplate)

  adds a macro to the factory.

### canAddVelocimacro

    private boolean canAddVelocimacro(java.lang.String name,
                                      java.lang.String sourceTemplate)

  determines if a given macro/namespace (name, source) combo is allowed to be added

  Parameters:
    `name` - Name of VM to add
    `sourceTemplate` - Source template that contains the defintion of the VM
  Returns:
    true if it is allowed to be added, false otherwise

### logVMMessageInfo

    private void logVMMessageInfo(java.lang.String s)

  localization of the logging logic

### logVMMessageWarn

    private void logVMMessageWarn(java.lang.String s)

  localization of the logging logic

### isVelocimacro

    public boolean isVelocimacro(java.lang.String vm,
                                 java.lang.String sourceTemplate)

  Tells the world if a given directive string is a Velocimacro

### getVelocimacro

    public Directive getVelocimacro(java.lang.String vmName,
                                    java.lang.String sourceTemplate)

  actual factory : creates a Directive that will behave correctly wrt getting the framework to dig out the correct # of args

### dumpVMNamespace

    public boolean dumpVMNamespace(java.lang.String namespace)

  tells the vmManager to dump the specified namespace

### setTemplateLocalInline

    private void setTemplateLocalInline(boolean b)

  sets permission to have VMs local in scope to their declaring template note that this is really taken care of in the VMManager class, but we need it here for gating purposes in addVM eventually, I will slide this all into the manager, maybe.

### getTemplateLocalInline

    private boolean getTemplateLocalInline()

### setAddMacroPermission

    private boolean setAddMacroPermission(boolean arg)

  sets the permission to add new macros

### setReplacementPermission

    private boolean setReplacementPermission(boolean arg)

  sets the permission for allowing addMacro() calls to replace existing VM's

### setBlather

    private void setBlather(boolean b)

  set output message mode

### getBlather

    private boolean getBlather()

  get output message mode

### setAutoload

    private void setAutoload(boolean b)

  set the switch for automatic reloading of global library-based VMs

### getAutoload

    private boolean getAutoload()

  get the switch for automatic reloading of global library-based VMs

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

Copyright © 2002 Apache Software Foundation. All Rights Reserved.