org.jicengine.element
Interface ValueElement

All Superinterfaces:
Element
All Known Implementing Classes:
ArrayElementCompiler.RenamedValueElement, ElementImpl.ValueElementImpl, StaticValueElement

public interface ValueElement
extends Element

ValueElements are elements that both have a value and let the clients/users decide what to do with the value. The client/user of a ValueElement is typically the parent element.

The latter aspect is an important one. A ValueElement doesn't actually know what to do with the value, it can only create the value. It is the responsibility of the client/user to use the value for something.

ValueElements are usually used for producing parameters of various operations, like the constructor and action operation of an element.

Author:
.timo

Field Summary
 
Fields inherited from interface org.jicengine.element.Element
VARIABLE_NAME_CDATA, VARIABLE_NAME_ELEMENT_INSTANCE, VARIABLE_NAME_PARENT_INSTANCE
 
Method Summary
 java.lang.Object getValue(Context globalContext, java.lang.Object parentInstance)
           Creates and returns the value of this element.
 
Methods inherited from interface org.jicengine.element.Element
getName
 

Method Detail

getValue

public java.lang.Object getValue(Context globalContext,
                                 java.lang.Object parentInstance)
                          throws ElementException

Creates and returns the value of this element.

The client/user of this element will call this method. currently, the method is called only once. No caching of the result is needed. However, the object should be able to be executed multiple times.

in general, the creation of the value consists of the following steps:

  1. the instance of the element is created first (with parameters)
  2. if the element has other ActionElements as children, they are executed next
  3. the instance is returned.

Parameters:
globalContext - a Context where the instances marked with the 'id'-attribute are put.
parentInstance - the instance of the parent element. NOTE: null-value means that the value of the parent is not available (not yet or never), not that the instance of the parent is null!
Returns:
the value of the element. the operation can return null! (although that is not currently supported by other parts of the framework)
Throws:
ElementException - if any part of the execution of the action fails.