Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

com.opencms.template
Class A_CmsTemplate  view A_CmsTemplate download A_CmsTemplate.java

java.lang.Object
  extended bycom.opencms.template.A_CmsTemplate
All Implemented Interfaces:
com.opencms.core.I_CmsConstants, com.opencms.boot.I_CmsLogChannels, I_CmsTemplate
Direct Known Subclasses:
CmsDumpTemplate, CmsJavascriptTemplate, CmsXmlTemplate

public abstract class A_CmsTemplate
extends java.lang.Object
implements com.opencms.core.I_CmsConstants, I_CmsTemplate, com.opencms.boot.I_CmsLogChannels

Abstract template class. Contains all commonly used methods for handling cache properties.

Version:
$Revision: 1.10 $ $Date: 2003/03/02 18:43:55 $

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
A_CmsTemplate()
           
 
Method Summary
 CmsCacheDirectives collectCacheDirectives(com.opencms.file.CmsObject cms, java.lang.String templateFile, java.lang.String elementName, java.util.Hashtable parameters, java.lang.String templateSelector)
          Collect caching informations from the current template class.
protected  void debugPrint(java.lang.String s, int i)
           
protected  java.lang.String getClassName()
          Help method to print nice classnames in error messages
 boolean isCacheable(com.opencms.file.CmsObject cms, java.lang.String templateFile, java.lang.String elementName, java.util.Hashtable parameters, java.lang.String templateSelector)
          Indicates if the results of this class are cacheable in the internal caches.
 boolean isExportable(com.opencms.file.CmsObject cms, java.lang.String templateFile, java.lang.String elementName, java.util.Hashtable parameters, java.lang.String templateSelector)
          Indicates if the results of this class are "static" and may be exported.
 boolean isProxyPrivateCacheable(com.opencms.file.CmsObject cms, java.lang.String templateFile, java.lang.String elementName, java.util.Hashtable parameters, java.lang.String templateSelector)
          Indicates if the results of this class may be cached by private proxy caches (browsers).
 boolean isProxyPublicCacheable(com.opencms.file.CmsObject cms, java.lang.String templateFile, java.lang.String elementName, java.util.Hashtable parameters, java.lang.String templateSelector)
          Indicates if the results of this class may be cached by public proxy caches.
 boolean isStreamable(com.opencms.file.CmsObject cms, java.lang.String templateFile, java.lang.String elementName, java.util.Hashtable parameters, java.lang.String templateSelector)
          Indicates if the current template class is able to stream it's results directly to the response oputput stream.
protected  void throwException(java.lang.String errorMessage)
          Help method that handles any occuring error by writing an error message to the OpenCms logfile and throwing a CmsException of the type "unknown".
protected  void throwException(java.lang.String errorMessage, java.lang.Exception e)
          Help method that handles any occuring error by writing an error message to the OpenCms logfile and re-throwing a caught exception.
protected  void throwException(java.lang.String errorMessage, int type)
          Help method that handles any occuring error by writing an error message to the OpenCms logfile and throwing a CmsException of the given type.
 
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
createElement, getContent, getContent, getKey, isTemplateCacheSet, setTemplateCache, shouldReload
 

Constructor Detail

A_CmsTemplate

public A_CmsTemplate()
Method Detail

getClassName

protected java.lang.String getClassName()
Help method to print nice classnames in error messages


isCacheable

public boolean isCacheable(com.opencms.file.CmsObject cms,
                           java.lang.String templateFile,
                           java.lang.String elementName,
                           java.util.Hashtable parameters,
                           java.lang.String templateSelector)
Indicates if the results of this class are cacheable in the internal caches. By default all resources in the online project may be stored in the internal cache.

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

Specified by:
isCacheable in interface I_CmsTemplate

isProxyPrivateCacheable

public boolean isProxyPrivateCacheable(com.opencms.file.CmsObject cms,
                                       java.lang.String templateFile,
                                       java.lang.String elementName,
                                       java.util.Hashtable parameters,
                                       java.lang.String templateSelector)
Indicates if the results of this class may be cached by private proxy caches (browsers).

Default conditions are:

  • Resource is cacheable in the internal cache
  • Caching key only consists of the URL

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

Specified by:
isProxyPrivateCacheable in interface I_CmsTemplate

isProxyPublicCacheable

public boolean isProxyPublicCacheable(com.opencms.file.CmsObject cms,
                                      java.lang.String templateFile,
                                      java.lang.String elementName,
                                      java.util.Hashtable parameters,
                                      java.lang.String templateSelector)
Indicates if the results of this class may be cached by public proxy caches.

Default conditions are:

  • Resource may be cached by private proxies
  • Current user is Guest (otherwise privat information may be stored)

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

Specified by:
isProxyPublicCacheable in interface I_CmsTemplate

isExportable

public boolean isExportable(com.opencms.file.CmsObject cms,
                            java.lang.String templateFile,
                            java.lang.String elementName,
                            java.util.Hashtable parameters,
                            java.lang.String templateSelector)
Indicates if the results of this class are "static" and may be exported.

Default conditions are:

  • Resource may be cached by public proxies
  • There are no parameters in the URL
  • The resource's internal flag must not be set

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

Specified by:
isExportable in interface I_CmsTemplate

isStreamable

public boolean isStreamable(com.opencms.file.CmsObject cms,
                            java.lang.String templateFile,
                            java.lang.String elementName,
                            java.util.Hashtable parameters,
                            java.lang.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 to include other subtemplates have to check the streaming ability of their subclasses here!

Specified by:
isStreamable in interface I_CmsTemplate

collectCacheDirectives

public CmsCacheDirectives collectCacheDirectives(com.opencms.file.CmsObject cms,
                                                 java.lang.String templateFile,
                                                 java.lang.String elementName,
                                                 java.util.Hashtable parameters,
                                                 java.lang.String templateSelector)
Collect caching informations from the current template class.

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

Specified by:
collectCacheDirectives in interface I_CmsTemplate

debugPrint

protected void debugPrint(java.lang.String s,
                          int i)

throwException

protected void throwException(java.lang.String errorMessage)
                       throws com.opencms.core.CmsException
Help method that handles any occuring error by writing an error message to the OpenCms logfile and throwing a CmsException of the type "unknown".


throwException

protected void throwException(java.lang.String errorMessage,
                              int type)
                       throws com.opencms.core.CmsException
Help method that handles any occuring error by writing an error message to the OpenCms logfile and throwing a CmsException of the given type.


throwException

protected void throwException(java.lang.String errorMessage,
                              java.lang.Exception e)
                       throws com.opencms.core.CmsException
Help method that handles any occuring error by writing an error message to the OpenCms logfile and re-throwing a caught exception.