freemarker.ext.beans
Class ObjectModelBase

java.lang.Object
  |
  +--freemarker.ext.beans.ObjectModelBase
All Implemented Interfaces:
TemplateModel, TemplateObjectModel, TemplateScalarModel
Direct Known Subclasses:
ArrayModel, ObjectModel, ResourceBundleModel

public class ObjectModelBase
extends java.lang.Object
implements TemplateScalarModel, TemplateObjectModel

Base class for all classes that wrap objects into template models. Instances of this class and descendant classes can be created directly, or utilizing a model cache through getInstance() calls, or polymorphically through the BeansWrapper.wrap(Object) method.

Version:
$Id: ObjectModelBase.java,v 1.7 2003/11/28 04:50:43 run2000 Exp $
Author:
Attila Szegedi, attila@szegedi.org

Field Summary
static int TYPE_ARRAY
          Returned from getType() if the object is a ArrayModel
static int TYPE_COLLECTION
          Returned from getType() if the object is a CollectionModel
static int TYPE_ENUMERATION
          Returned from getType() if the object is a EnumerationModel
static int TYPE_ITERATOR
          Returned from getType() if the object is a IteratorModel
static int TYPE_LIST
          Returned from getType() if the object is a List
static int TYPE_MAP
          Returned from getType() if the object is a MapModel
static int TYPE_OBJECT
          Returned from getType() if the object is a ObjectModel
static int TYPE_OBJECT_BASE
          Returned from getType() if the object is a ObjectModelBase
static int TYPE_RESOURCE_BUNDLE
          Returned from getType() if the object is a ResourceBundleModel
 
Method Summary
 java.lang.Object getAsObject()
          Returns the wrapped object.
 java.lang.String getAsString()
          Returns either the toString() of the wrapped object or the string "null", if the wrapped object is null.
static ObjectModelBase getInstance(java.lang.String object)
          Returns a model wrapping the specified String object.
 int getType()
          Returns the type of this object (which is TYPE_OBJECT_BASE)
 boolean isEmpty()
          Tells whether the model is empty.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

TYPE_OBJECT_BASE

public static final int TYPE_OBJECT_BASE
Returned from getType() if the object is a ObjectModelBase

TYPE_OBJECT

public static final int TYPE_OBJECT
Returned from getType() if the object is a ObjectModel

TYPE_ARRAY

public static final int TYPE_ARRAY
Returned from getType() if the object is a ArrayModel

TYPE_COLLECTION

public static final int TYPE_COLLECTION
Returned from getType() if the object is a CollectionModel

TYPE_MAP

public static final int TYPE_MAP
Returned from getType() if the object is a MapModel

TYPE_ITERATOR

public static final int TYPE_ITERATOR
Returned from getType() if the object is a IteratorModel

TYPE_ENUMERATION

public static final int TYPE_ENUMERATION
Returned from getType() if the object is a EnumerationModel

TYPE_RESOURCE_BUNDLE

public static final int TYPE_RESOURCE_BUNDLE
Returned from getType() if the object is a ResourceBundleModel

TYPE_LIST

public static final int TYPE_LIST
Returned from getType() if the object is a List
Method Detail

getInstance

public static final ObjectModelBase getInstance(java.lang.String object)

Returns a model wrapping the specified String object. If there is already a cached model instance for this String, returns the cached model instance. Models are cached using WeakReference objects. The caching can be turned off by setting the expose.reflection.nocache system property to true. In this case calling this method is equivalent to constructing a new model.

Note that since the only FM-Classic-specific method in this class is getAsString() there is no sense in creating an object of this class directly with anything except a String. If you need to wrap an object of another class, use one of specialized subclasses, or delegate the choice to BeansWrapper.wrap(Object).

Parameters:
object - the String to wrap into a model.
Returns:
the model for the String

getAsObject

public java.lang.Object getAsObject()
Returns the wrapped object.
Specified by:
getAsObject in interface TemplateObjectModel
Following copied from interface: freemarker.template.TemplateObjectModel
Returns:
the underlying object for this template model
Throws:
TemplateModelException - the object could not be returned

getType

public int getType()
Returns the type of this object (which is TYPE_OBJECT_BASE)

getAsString

public java.lang.String getAsString()
Returns either the toString() of the wrapped object or the string "null", if the wrapped object is null.
Specified by:
getAsString in interface TemplateScalarModel
Following copied from interface: freemarker.template.TemplateScalarModel
Returns:
the String value of this scalar.

isEmpty

public boolean isEmpty()
Tells whether the model is empty. It is empty if either the wrapped object is null, or it is a Boolean with false value.
Specified by:
isEmpty in interface TemplateModel
Following copied from interface: freemarker.template.TemplateModel
Returns:
true if this object is empty, otherwise false