Package org.apache.velocity.runtime.directive

# Class Scope

java.lang.Object
java.util.AbstractMap<Object,Object>
org.apache.velocity.runtime.directive.Scope

All Implemented Interfaces:
  `Map<Object,Object>`

Direct Known Subclasses:
  `ForeachScope`

public class Scope extends AbstractMap<Object,Object>
This handles context scoping and metadata for directives.

Version:
  $Id$
Author:
  Nathan Bubna

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static class`
`Scope.Info`
Class to encapsulate and provide access to info about the current scope for debugging.

## Nested classes/interfaces inherited from class java.util.AbstractMap

`AbstractMap.SimpleEntry<K,V>, AbstractMap.SimpleImmutableEntry<K,V>`

## Nested classes/interfaces inherited from interface java.util.Map

`Map.Entry<K,V>`

## Field Summary

Fields
Modifier and Type
Field
Description
`protected final Object`
`owner`

## Constructor Summary

Constructors
Constructor
Description
`Scope(Object owner, Object previous)`

## Method Summary

Modifier and Type
Method
Description
`Set<Map.Entry<Object,Object>>`
`entrySet()`
`Object`
`get(Object key)`
getter
`protected int`
`getDepth()`
Returns the number of control arguments of this type that are stacked up.
`Scope.Info`
`getInfo()`
Returns info about the current scope for debugging purposes.
`Scope`
`getParent()`
Returns the parent control reference overridden by the placement of this instance in the context.
`Object`
`getReplaced()`
Returns the user's context reference overridden by the placement of this instance in the context.
`Scope`
`getTopmost()`
Returns the topmost parent control reference, retrieved by simple recursion on `getParent()`.
`Object`
`put(Object key, Object value)`
setter
`String`
`set(Object key, Object value)`
Convenience method to call put(key,val) in a template without worrying about what is returned/rendered by the call.
`protected void`
`stop()`
Allows #stop to easily trigger the proper StopCommand for this scope.

### Methods inherited from class java.util.AbstractMap

`clear, clone, containsKey, containsValue, equals, hashCode, isEmpty, keySet, putAll, remove, size, toString, values`

### Methods inherited from class java.lang.Object

`finalize, getClass, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface java.util.Map

`compute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, merge, putIfAbsent, remove, replace, replace, replaceAll`

## Field Details

### owner

protected final Object owner

## Constructor Details

### Scope

public Scope(Object owner, Object previous)

Parameters:
  `owner` -
  `previous` -

## Method Details

### entrySet

public Set<Map.Entry<Object,Object>> entrySet()

Specified by:
  `entrySet` in interface `Map<Object,Object>`
Specified by:
  `entrySet` in class `AbstractMap<Object,Object>`
Returns:
  entry set

### get

public Object get(Object key)
getter

Specified by:
  `get` in interface `Map<Object,Object>`
Overrides:
  `get` in class `AbstractMap<Object,Object>`
Parameters:
  `key` -
Returns:
  found value

### put

public Object put(Object key, Object value)
setter

Specified by:
  `put` in interface `Map<Object,Object>`
Overrides:
  `put` in class `AbstractMap<Object,Object>`
Parameters:
  `key` -
  `value` -
Returns:
  previous value

### set

public String set(Object key, Object value)
Convenience method to call put(key,val) in a template without worrying about what is returned/rendered by the call. This should ALWAYS return an empty string.

Parameters:
  `key` -
  `value` -
Returns:
  empty string

### stop

protected void stop()
Allows #stop to easily trigger the proper StopCommand for this scope.

### getDepth

protected int getDepth()
Returns the number of control arguments of this type that are stacked up. This is the distance between this instance and the topmost instance, plus one. This value will never be negative or zero.

Returns:
  depth

### getTopmost

public Scope getTopmost()
Returns the topmost parent control reference, retrieved by simple recursion on `getParent()`.

Returns:
  top-most scope

### getParent

public Scope getParent()
Returns the parent control reference overridden by the placement of this instance in the context.

Returns:
  parent scope

### getReplaced

public Object getReplaced()
Returns the user's context reference overridden by the placement of this instance in the context. If there was none (as is hoped), then this will return null. This never returns parent controls; those are returned by `getParent()`.

Returns:
  replaced reference value, or null

### getInfo

public Scope.Info getInfo()
Returns info about the current scope for debugging purposes.

Returns:
  template debugging infos