com.opencms.template
Class CmsJavascriptTemplate

java.lang.Object
  |
  +--com.opencms.template.A_CmsTemplate
        |
        +--com.opencms.template.CmsJavascriptTemplate
All Implemented Interfaces:
I_CmsConstants, I_CmsJavascriptTemplate, I_CmsLogChannels, I_CmsTemplate

public class CmsJavascriptTemplate
extends A_CmsTemplate
implements I_CmsJavascriptTemplate


Field Summary
 
Fields inherited from interface com.opencms.core.I_CmsConstants
C_ACCESS_DEFAULT_FLAGS, C_ACCESS_GROUP, C_ACCESS_GROUP_READ, C_ACCESS_GROUP_VISIBLE, C_ACCESS_GROUP_WRITE, C_ACCESS_INTERNAL_READ, C_ACCESS_OWNER, C_ACCESS_OWNER_READ, C_ACCESS_OWNER_VISIBLE, C_ACCESS_OWNER_WRITE, C_ACCESS_PUBLIC, C_ACCESS_PUBLIC_READ, C_ACCESS_PUBLIC_VISIBLE, C_ACCESS_PUBLIC_WRITE, C_ACCESS_READ, C_ACCESS_VISIBLE, C_ACCESS_WRITE, C_ADDITIONAL_INFO_EXPLORERSETTINGS, C_ADDITIONAL_INFO_PREFERENCES, C_ADDITIONAL_INFO_STARTSETTINGS, C_ADDITIONAL_INFO_TASKSETTINGS, C_ADDITIONAL_INFO_TOWN, C_ADDITIONAL_INFO_ZIPCODE, C_AT_LEAST_ONCE, C_CLUSTERURL, C_CONFIGURATION_CACHE, C_CONFIGURATION_CLASS, C_CONFIGURATION_REGISTRY, C_CONFIGURATION_RESOURCEBROKER, C_COPYRIGHT, C_DEFAULT_SITE, C_DELETE_HISTORY, C_ENABLE_HISTORY, C_ERRPREFIX, C_ERRSPERATOR, C_EXPORT_TAG_ACCESS, C_EXPORT_TAG_ADDRESS, C_EXPORT_TAG_CREATOR, C_EXPORT_TAG_DATE, C_EXPORT_TAG_DEFAULTGROUP, C_EXPORT_TAG_DESCRIPTION, C_EXPORT_TAG_DESTINATION, C_EXPORT_TAG_EMAIL, C_EXPORT_TAG_EXPORT, C_EXPORT_TAG_FILE, C_EXPORT_TAG_FIRSTNAME, C_EXPORT_TAG_FLAGS, C_EXPORT_TAG_GROUP, C_EXPORT_TAG_GROUPDATA, C_EXPORT_TAG_GROUPNAME, C_EXPORT_TAG_INFO, C_EXPORT_TAG_LASTMODIFIED, C_EXPORT_TAG_LASTNAME, C_EXPORT_TAG_LAUNCHER_START_CLASS, C_EXPORT_TAG_MODULEXPORT, C_EXPORT_TAG_NAME, C_EXPORT_TAG_OC_VERSION, C_EXPORT_TAG_PARENTGROUP, C_EXPORT_TAG_PASSWORD, C_EXPORT_TAG_PROJECT, C_EXPORT_TAG_PROPERTIES, C_EXPORT_TAG_PROPERTY, C_EXPORT_TAG_RECOVERYPASSWORD, C_EXPORT_TAG_SECTION, C_EXPORT_TAG_SOURCE, C_EXPORT_TAG_TYPE, C_EXPORT_TAG_USER, C_EXPORT_TAG_USERDATA, C_EXPORT_TAG_USERGROUPDATA, C_EXPORT_TAG_USERGROUPS, C_EXPORT_TAG_USERINFO, C_EXPORT_TAG_VALUE, C_EXPORT_TAG_VERSION, C_EXPORT_VERSION, C_EXPORT_XMLFILENAME, C_EXPORTONLYFILES, C_EXPORTONLYUSERS, C_EXPORTPOINT, C_EXPORTPOINT_PATH, C_EXPORTUSERSFILES, C_FCONTENT, C_FELEMENT, C_FILE, C_FILECONTENT, C_FILES_IMPORTED, C_FLAG_DISABLED, C_FLAG_ENABLED, C_FLAG_GROUP_PROJECTCOWORKER, C_FLAG_GROUP_PROJECTMANAGER, C_FLAG_GROUP_ROLE, C_FOLDER, C_FOLDER_SEPARATOR, C_GROUP, C_GROUP_ADMIN, C_GROUP_GUEST, C_GROUP_PROJECTLEADER, C_GROUP_USERS, C_LINKCHECKTABLE_DATE, C_MAX_LENGTH_RESOURCE_NAME, C_MODULE_PROPERTY_ADDITIONAL_RESOURCES, C_MODULE_PROPERTY_ADDITIONAL_RESOURCES_SEPARATOR, C_MODUS_AUTO, C_MODUS_EXPORT, C_MODUS_EXTERN, C_MODUS_OFFLINE, C_MODUS_ONLINE, C_MOUNTPOINT_FILESYSTEM, C_MOUNTPOINT_MYSQL, C_NEVER, C_NO_FILES_IMPORTED, C_ORDER_AGENTUSER, C_ORDER_ENDTIME, C_ORDER_ID, C_ORDER_INITIATORUSER, C_ORDER_NAME, C_ORDER_ORIGINALUSER, C_ORDER_PERCENTAGE, C_ORDER_PRIORITY, C_ORDER_ROLE, C_ORDER_STARTTIME, C_ORDER_STATE, C_ORDER_TASKTYPE, C_ORDER_TIMEOUT, C_ORDER_WAKEUPTIME, C_PASSWORD_MINIMUMSIZE, C_PROJECT_ONLINE, C_PROJECT_ONLINE_ID, C_PROJECT_STATE_ARCHIVE, C_PROJECT_STATE_INVISIBLE, C_PROJECT_STATE_LOCKED, C_PROJECT_STATE_UNLOCKED, C_PROJECT_TYPE_INVISIBLE, C_PROJECT_TYPE_NORMAL, C_PROJECT_TYPE_TEMPORARY, C_PROPERTY_ACTIV, C_PROPERTY_CHANNELID, C_PROPERTY_CONTENT_ENCODING, C_PROPERTY_DEFAULT_FILE, C_PROPERTY_DESCRIPTION, C_PROPERTY_EXPORT, C_PROPERTY_EXPORTNAME, C_PROPERTY_KEYWORDS, C_PROPERTY_NAVPOS, C_PROPERTY_NAVTEXT, C_PROPERTY_RELATIVEROOT, C_PROPERTY_TEMPLATETYPE, C_PROPERTY_TITLE, C_PROPERTY_VISIBLE, C_PUBLISH_METHOD_LINK, C_REGISTRY_DESTINATION, C_REGISTRY_HISTORY, C_REGISTRY_KNOWNLAUNCHERS, C_REGISTRY_LAUNCHER, C_REGISTRY_SOURCE, C_REQUEST_CONSOLE, C_REQUEST_HTTP, C_RESPONSE_CONSOLE, C_RESPONSE_HTTP, C_ROOT, C_ROOT_TEMPLATE_NAME, C_ROOTNAME_COS, C_ROOTNAME_VFS, C_SESSION_ADMIN_POS, C_SESSION_BROADCASTMESSAGE, C_SESSION_CONTENT_ENCODING, C_SESSION_CURRENTGROUP, C_SESSION_DATA, C_SESSION_IS_DIRTY, C_SESSION_MESSAGEPENDING, C_SESSION_MODULE_VECTOR, C_SESSION_PROJECT, C_SESSION_THREAD_ERROR, C_SESSION_USERNAME, C_SORT_ASC, C_SORT_DESC, C_START_ACCESSFLAGS, C_START_DEFAULTGROUP, C_START_LANGUAGE, C_START_LOCKDIALOG, C_START_PROJECT, C_START_VIEW, C_STATE_CHANGED, C_STATE_DELETED, C_STATE_NEW, C_STATE_UNCHANGED, C_STATICEXPORT_PATH, C_STATICEXPORT_START, C_SYNCHRONISATION_PATH, C_SYNCHRONISATION_PROJECT, C_SYNCHRONISATION_RESOURCE, C_SYNCHRONISATION_RESOURCETAG, C_SYSTEMPROPERTY_CRONTABLE, C_SYSTEMPROPERTY_EXPORTPATH, C_SYSTEMPROPERTY_EXTENSIONS, C_SYSTEMPROPERTY_LINKCHECKTABLE, C_SYSTEMPROPERTY_MIMETYPES, C_SYSTEMPROPERTY_MOUNTPOINT, C_SYSTEMPROPERTY_RESOURCE_TYPE, C_TABLE_CHANNELID, C_TASK_FILTER, C_TASK_MESSAGES, C_TASK_MESSAGES_ACCEPTED, C_TASK_MESSAGES_COMPLETED, C_TASK_MESSAGES_FORWARDED, C_TASK_MESSAGES_MEMBERS, C_TASK_ORDER_BY_DATE, C_TASK_ORDER_BY_NAME, C_TASK_PRIORITY_HIGH, C_TASK_PRIORITY_LOW, C_TASK_PRIORITY_NORMAL, C_TASK_STATE_ENDED, C_TASK_STATE_HALTED, C_TASK_STATE_NOTENDED, C_TASK_STATE_PREPARE, C_TASK_STATE_START, C_TASK_STATE_STARTED, C_TASK_VIEW_ALL, C_TASKLOG_SYSTEM, C_TASKLOG_USER, C_TASKORDER_NONE, C_TASKORDER_STARTDATE, C_TASKORDER_TIMEOUT, C_TASKS_ACTIVE, C_TASKS_ALL, C_TASKS_DONE, C_TASKS_NEW, C_TASKS_OPEN, C_TASKSORDER_TASKNAME, C_TEMP_PREFIX, C_TFACCESS, C_TFGROUP, C_TFILEOBJ, C_TFILES, C_TFNAME, C_TFPROPERTYINFO, C_TFPROPERTYNAME, C_TFPROPERTYTYPE, C_TFPROPERTYVALUE, C_TFTYPE, C_TFTYPENAME, C_TFUSER, C_TGDESC, C_TGFLAG, C_TGNAME, C_TGPARENTGROUP, C_TGROUPOBJ, C_TGROUPS, C_TGROUPUSERS, C_TGUSER, C_TUADDINFO, C_TUDESC, C_TUDGROUP, C_TUDISABLED, C_TUEMAIL, C_TUFIRSTNAME, C_TUFLAG, C_TUGROUP, C_TUINFOKEY, C_TUINFOVALUE, C_TULOGIN, C_TUNAME, C_TUPASSWD, C_TUSERGROUPS, C_TUSEROBJ, C_TUSERS, C_TYPE_BODY_NAME, C_TYPE_COMPATIBLEPLAIN_NAME, C_TYPE_FOLDER, C_TYPE_FOLDER_NAME, C_TYPE_IMAGE_NAME, C_TYPE_LAST_INDEX, C_TYPE_PAGE_NAME, C_TYPE_PLAIN_NAME, C_UNKNOWN_ID, C_UNKNOWN_INT, C_UNKNOWN_LAUNCHER, C_UNKNOWN_LAUNCHER_ID, C_UNKNOWN_LONG, C_URL_PREFIX_EXPORT, C_URL_PREFIX_HTTP, C_URL_PREFIX_HTTPS, C_URL_PREFIX_SERVERNAME, C_USER, C_USER_ADMIN, C_USER_GUEST, C_USER_TYPE_SYSTEMANDWEBUSER, C_USER_TYPE_SYSTEMUSER, C_USER_TYPE_WEBUSER, C_WEB_APP_REPLACE_KEY, C_WEEKS_HISTORY, C_WHATEVER, C_XML_BODY_ELEMENT
 
Fields inherited from interface com.opencms.boot.I_CmsLogChannels
C_FLEX_CACHE, C_FLEX_LOADER, C_LOGGING, C_MODULE_CRITICAL, C_MODULE_DEBUG, C_MODULE_INFO, C_OPENCMS_CACHE, C_OPENCMS_CRITICAL, C_OPENCMS_CRONSCHEDULER, C_OPENCMS_DEBUG, C_OPENCMS_ELEMENTCACHE, C_OPENCMS_INFO, C_OPENCMS_INIT, C_OPENCMS_POOL, C_OPENCMS_STATICEXPORT, C_OPENCMS_STREAMING, C_PREPROCESSOR_IS_LOGGING
 
Constructor Summary
CmsJavascriptTemplate()
           
 
Method Summary
 A_CmsElement createElement(CmsObject cms, String templateFile, Hashtable parameters)
          Not yet implemented
 byte[] getContent(CmsObject cms, String templateFile, String elementName, Hashtable parameters)
          Gets the content of a given template file with the given parameters.
 byte[] getContent(CmsObject cms, String templateFile, String elementName, Hashtable parameters, String templateSelector)
          Gets the content of a defined section in a given template file with the given parameters.
 Object getKey(CmsObject cms, String templateFile, Hashtable parameters, String templateSelector)
          Gets the key that should be used to cache the results of this template class.
 boolean isStreamable(CmsObject cms, String templateFile, String elementName, Hashtable parameters, String templateSelector)
          Indicates if the current template class is able to stream it's results directly to the response oputput stream.
 boolean isTemplateCacheSet()
          Tests, if the template cache is setted.
 void setTemplateCache(I_CmsTemplateCache c)
          Set the instance of template cache that should be used to store cacheable results of the subtemplates.
 boolean shouldReload(CmsObject cms, String templateFile, String elementName, Hashtable parameters, String templateSelector)
          Indicates if a previous cached result should be reloaded.
 
Methods inherited from class com.opencms.template.A_CmsTemplate
collectCacheDirectives, debugPrint, getClassName, isCacheable, isExportable, isProxyPrivateCacheable, isProxyPublicCacheable, throwException, throwException, throwException
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.opencms.template.I_CmsTemplate
collectCacheDirectives, isCacheable, isExportable, isProxyPrivateCacheable, isProxyPublicCacheable
 

Constructor Detail

CmsJavascriptTemplate

public CmsJavascriptTemplate()
Method Detail

getContent

public byte[] getContent(CmsObject cms,
                         String templateFile,
                         String elementName,
                         Hashtable parameters)
                  throws CmsException
Gets the content of a given template file with the given parameters.

Parameters are stored in a hashtable and can derive from

Paramter names must be in "elementName.parameterName" format.

Specified by:
getContent in interface I_CmsTemplate
Parameters:
cms - CmsObject Object for accessing system resources
templateFile - Filename of the template file
elementName - Element name of this template in our parent template
parameters - Hashtable with all template class parameters.
Returns:
Content of the template and all subtemplates.
Throws:
CmsException

getContent

public byte[] getContent(CmsObject cms,
                         String templateFile,
                         String elementName,
                         Hashtable parameters,
                         String templateSelector)
                  throws CmsException
Gets the content of a defined section in a given template file with the given parameters.

Specified by:
getContent in interface I_CmsTemplate
Parameters:
cms - CmsObject Object for accessing system resources.
templateFile - Filename of the template file.
elementName - Element name of this template in our parent template.
parameters - Hashtable with all template class parameters.
templateSelector - section that should be processed.
Returns:
Content of the template and all subtemplates.
Throws:
CmsException
See Also:
getContent(CmsObject, String, String, Hashtable, String)

getKey

public Object getKey(CmsObject cms,
                     String templateFile,
                     Hashtable parameters,
                     String templateSelector)
Gets the key that should be used to cache the results of this template class. For simple template classes, e.g. classes only dumping file contents and not using parameters, the name of the template file may be adequate. Other classes have to return a more complex key.

Specified by:
getKey in interface I_CmsTemplate
Parameters:
cms - CmsObject Object for accessing system resources
templateFile - Filename of the template file
parameters - Hashtable with all template class parameters.
templateSelector - template section that should be processed.
Returns:
key that can be used for caching

isStreamable

public boolean isStreamable(CmsObject cms,
                            String templateFile,
                            String elementName,
                            Hashtable parameters,
                            String templateSelector)
Indicates if the current template class is able to stream it's results directly to the response oputput stream.

Classes must not set this feature, if they might throw special exception that cause HTTP errors (e.g. 404/Not Found), or if they might send HTTP redirects.

If a class sets this feature, it has to check the isStreaming() property of the RequestContext. If this is set to true the results must be streamed directly to the output stream. If it is false the results must not be streamed.

Complex classes that are able top include other subtemplates have to check the streaming ability of their subclasses here!

Specified by:
isStreamable in interface I_CmsTemplate
Overrides:
isStreamable in class A_CmsTemplate
Parameters:
cms - CmsObject Object for accessing system resources
templateFile - Filename of the template file
elementName - Element name of this template in our parent template.
parameters - Hashtable with all template class parameters.
templateSelector - template section that should be processed.
Returns:
true if this class may stream it's results, false otherwise.

isTemplateCacheSet

public boolean isTemplateCacheSet()
Tests, if the template cache is setted.

Specified by:
isTemplateCacheSet in interface I_CmsTemplate
Returns:
true if setted, false otherwise.

setTemplateCache

public void setTemplateCache(I_CmsTemplateCache c)
Set the instance of template cache that should be used to store cacheable results of the subtemplates. If the template cache is not set, caching will be disabled.

Specified by:
setTemplateCache in interface I_CmsTemplate
Parameters:
c - Template cache to be used.

shouldReload

public boolean shouldReload(CmsObject cms,
                            String templateFile,
                            String elementName,
                            Hashtable parameters,
                            String templateSelector)
Indicates if a previous cached result should be reloaded.

Specified by:
shouldReload in interface I_CmsTemplate
Parameters:
cms - CmsObject Object for accessing system resources
templateFile - Filename of the template file
elementName - Element name of this template in our parent template.
parameters - Hashtable with all template class parameters.
templateSelector - template section that should be processed.
Returns:
true if reload is neccesary, false otherwise.

createElement

public A_CmsElement createElement(CmsObject cms,
                                  String templateFile,
                                  Hashtable parameters)
Not yet implemented

Specified by:
createElement in interface I_CmsTemplate
Parameters:
cms - CmsObject for accessing system resources.
templateFile - Name of the template file for the new element
parameters - All parameters of the current request
Returns:
New element for the element cache