Class Channel

    • Field Detail

      • context

        protected javax.servlet.ServletContext context
      • storeFilePath

        protected java.lang.String storeFilePath
      • classLoader

        protected java.lang.ClassLoader classLoader
      • name

        protected java.lang.String name
      • isAvailable

        protected boolean isAvailable
      • urid

        protected java.lang.String urid
      • url

        protected java.lang.String url
      • securedUrl

        protected java.lang.String securedUrl
      • uri

        protected java.lang.String uri
      • store

        protected Store store
      • language

        protected java.lang.String language
      • defaultLanguage

        protected java.lang.String defaultLanguage
      • country

        protected java.lang.String country
      • locale

        protected java.util.Locale locale
      • zoneId

        protected java.time.ZoneId zoneId
      • isTimeZoneEnabled

        protected java.lang.Boolean isTimeZoneEnabled
      • dateTimeFormat

        protected java.text.SimpleDateFormat dateTimeFormat
      • dateFormat

        protected java.text.SimpleDateFormat dateFormat
      • defaultGroup

        protected Group defaultGroup
      • organizationRootGroup

        protected Group organizationRootGroup
      • isFlowChartBackwardCompatibilityEnabled

        protected java.lang.Boolean isFlowChartBackwardCompatibilityEnabled
      • defaultAdmin

        protected Member defaultAdmin
      • defaultWorkspace

        protected Workspace defaultWorkspace
      • defaultEmail

        protected java.lang.String defaultEmail
      • realPathLength

        protected int realPathLength
      • webappDir

        protected java.io.File webappDir
      • alarmManagerMap

        protected java.util.Map<java.lang.String,​AlarmManager> alarmManagerMap
      • adminIpPattern

        protected org.apache.oro.text.regex.Pattern adminIpPattern
      • adminIpNoPattern

        protected boolean adminIpNoPattern
      • workspacesIpPattern

        protected org.apache.oro.text.regex.Pattern workspacesIpPattern
      • workspacesIpNoPattern

        protected boolean workspacesIpNoPattern
      • isDataWriteEnabled

        protected boolean isDataWriteEnabled
      • isDataWriteEnabledComputed

        protected boolean isDataWriteEnabledComputed
      • isAttachWSEnabled

        protected boolean isAttachWSEnabled
      • isAttachWSEnabledComputed

        protected boolean isAttachWSEnabledComputed
      • isWebdavEnable

        protected boolean isWebdavEnable
      • isWebdavEnableComputed

        protected boolean isWebdavEnableComputed
      • isGzipCompressionEnabled

        protected boolean isGzipCompressionEnabled
      • isDeployManagerEnabled

        protected boolean isDeployManagerEnabled
      • webdavEncoding

        protected java.lang.String webdavEncoding
      • currentServletRequest

        protected java.lang.ThreadLocal<javax.servlet.http.HttpServletRequest> currentServletRequest
      • currentServletResponse

        protected java.lang.ThreadLocal<javax.servlet.http.HttpServletResponse> currentServletResponse
      • storeBackupDir

        protected java.io.File storeBackupDir
      • storeBackupMax

        protected int storeBackupMax
      • httpHeaderMap

        protected java.util.Map<java.lang.String,​java.lang.String> httpHeaderMap
      • httpHeaderExcludedSet

        protected java.util.Set<java.lang.String> httpHeaderExcludedSet
      • globalHttpHeaderMap

        protected java.util.Map<java.lang.String,​java.lang.String> globalHttpHeaderMap
      • globalHttpHeaderExcludedSet

        protected java.util.Set<java.lang.String> globalHttpHeaderExcludedSet
      • isReverseProxyEnabled

        protected boolean isReverseProxyEnabled
      • ipToReverseProxyConfNameMap

        protected java.util.HashMap<java.lang.String,​java.lang.String> ipToReverseProxyConfNameMap
      • reverseProxyContextPath

        protected java.util.HashMap<java.lang.String,​java.lang.String> reverseProxyContextPath
      • reverseProxyBaseURL

        protected java.util.HashMap<java.lang.String,​java.lang.String> reverseProxyBaseURL
      • reverseProxySSLBaseURL

        protected java.util.HashMap<java.lang.String,​java.lang.String> reverseProxySSLBaseURL
      • isNotificationEnabled

        protected boolean isNotificationEnabled
      • isIncomingMailEnabled

        protected boolean isIncomingMailEnabled
      • isSSLenabled

        protected static boolean isSSLenabled
      • SSLport

        protected static int SSLport
      • jsyncEnabled

        protected boolean jsyncEnabled
      • jsyncReplicaUrl

        protected java.lang.String jsyncReplicaUrl
      • jsyncLeaderUrl

        protected java.lang.String jsyncLeaderUrl
      • jsyncHasLeader

        protected boolean jsyncHasLeader
      • jsyncUpdateMode

        protected java.lang.String jsyncUpdateMode
      • jsyncStabDelay

        protected long jsyncStabDelay
      • jsyncAutoUpdate

        protected boolean jsyncAutoUpdate
      • jsyncSyncFiles

        protected boolean jsyncSyncFiles
      • jsyncDownloadInterval

        protected long jsyncDownloadInterval
      • jsyncIpPattern

        protected org.apache.oro.text.regex.Pattern jsyncIpPattern
      • jsyncSuggestJoin

        protected boolean jsyncSuggestJoin
      • jsyncExplicitReplicaList

        protected java.lang.String jsyncExplicitReplicaList
      • channelListenerSet

        protected java.util.TreeSet<ChannelListener> channelListenerSet
      • class2dataSet

        protected java.util.Map<java.lang.Class<? extends Data>,​java.util.Set<Data>> class2dataSet
      • rootCategory

        protected Category rootCategory
      • rootCategoryAsSet

        protected java.util.Set<Category> rootCategoryAsSet
      • searchRootSet

        protected java.util.Set<Category> searchRootSet
      • refineRootSet

        protected java.util.Set<Category> refineRootSet
      • advRefineRootSet

        protected java.util.Set<Category> advRefineRootSet
      • coreTypeList

        protected java.util.ArrayList<java.lang.Class<? extends Publication>> coreTypeList
      • publicationTypeMap

        protected java.util.Map<java.lang.String,​java.util.List<java.lang.Class<? extends Publication>>> publicationTypeMap
      • defaultQueryTypes

        protected java.lang.String[] defaultQueryTypes
      • defaultQueryTypesOff

        protected java.lang.String[] defaultQueryTypesOff
      • pubWithoutCategories

        protected java.util.Set<Publication> pubWithoutCategories
      • virtualIDMap

        protected java.util.HashMap<java.lang.String,​java.util.Set<java.lang.String>> virtualIDMap
      • allTypeFieldEntriesCacheMap

        protected java.util.HashMap<java.lang.Class<?>,​java.util.Map<java.lang.String,​TypeFieldEntry>> allTypeFieldEntriesCacheMap
      • exactTypeFieldEntriesCacheMap

        protected java.util.HashMap<java.lang.Class<?>,​java.util.Map<java.lang.String,​TypeFieldEntry>> exactTypeFieldEntriesCacheMap
      • dataControllerMap

        protected java.util.HashMap<java.lang.Class<?>,​java.util.Set<DataController>> dataControllerMap
      • dataIntegrityReportDate

        protected java.util.Date dataIntegrityReportDate
      • publicationSuperTypes

        protected java.lang.Class<?>[] publicationSuperTypes
      • isUsingAdvancedI18N

        protected boolean isUsingAdvancedI18N
      • rightToLeftLanguageSet

        protected java.util.HashSet<java.lang.String> rightToLeftLanguageSet
      • channel

        protected static Channel channel
    • Method Detail

      • removeMultipleLaunchCheck

        public static void removeMultipleLaunchCheck()
        Remove the property used to check that the current site has not been started multiple times.
      • reloadLanguageProperties

        public void reloadLanguageProperties()
                                      throws java.io.IOException
        Reload languages properties of JCMS (WEB-INF/jalios/languages/{lang}.prop) and its plugin.
        Throws:
        java.io.IOException - If an error occurs
      • reloadProperties

        public void reloadProperties()
        Reload all properties and notify all JPropertiesListener.
        Since:
        jcms-9.0.0
      • getCustomPropFilePath

        public java.lang.String getCustomPropFilePath()
        Returns the file path of the custom.prop file.
        Returns:
        the file path of the custom.prop file.
        Since:
        jcms-10.0.0
      • getChannel

        public static Channel getChannel()
        Singleton Method to get the channel
        Returns:
        The Channel Singleton
      • initialize

        protected static void initialize​(javax.servlet.ServletContext context,
                                         java.lang.String logFile,
                                         java.lang.String webappPropFile,
                                         java.lang.String customPropFile,
                                         java.lang.ClassLoader classLoader)
                                  throws java.lang.Exception
        Singleton method to Instanciate the channel.
        You do not need to call this method which is called automatically on startup by the servlet ChannelInitServlet declared in web.xml.
        Parameters:
        context - the ServletContext
        logFile - the relative file path of the log
        webappPropFile - the relative file path of the webapp.prop properties
        customPropFile - the relative file path of the webapp.prop properties
        classLoader - the web-app ClassLoader
        Throws:
        java.lang.Exception - If an error occurs
      • destroy

        protected static void destroy()
        Singleton Method to finalize and destroy the channel.
      • finalize

        protected void finalize()
                         throws java.lang.Throwable
        Handles the finalize invocation
        Overrides:
        finalize in class java.lang.Object
        Throws:
        java.lang.Throwable
        Since:
        jcms-2.1
      • handleFinalize

        public void handleFinalize()
        This method is called when the site is restarted or shutdown.
        Since:
        jcms-2.1
        See Also:
        ChannelListener
      • initHibernate

        protected void initHibernate()
                              throws java.lang.Exception
        Throws:
        java.lang.Exception
      • initBeforeLoad

        protected void initBeforeLoad()
                               throws java.lang.Exception
        Perform all the initializations before the store has been loaded (called by ChannelInitServlet)
        Throws:
        java.lang.Exception - If an error occurs
        Since:
        jcms-5.0.3
      • loadStore

        protected void loadStore()
                          throws LogException
        Load the JCMS store file.
        Throws:
        LogException - If an error occurs
      • initAfterLoad

        protected void initAfterLoad()
                              throws java.lang.Exception
        Perform all the initializations after the store has been loaded (called by ChannelInitServlet)
        Throws:
        java.lang.Exception - If an error occurs
        Since:
        jcms-2.1
      • initAfterStartup

        protected void initAfterStartup()
      • propertiesChange

        public void propertiesChange​(JProperties p)
        This methods triggers re-initialization of all the managers/parameters of this JCMS site, only those that can be reinitialized without a restart.
        It is the method to support implementation of the JPropertiesListener and is called after a change of the properties.
        Specified by:
        propertiesChange in interface JPropertiesListener
        Parameters:
        p - the properties which have been submitted to change
      • getAppServerInfo

        public AppServerInfo getAppServerInfo()
        Return the AppServerInfo instance (a singleton) which describe the underlying application server.
        Returns:
        a AppServerInfo singleton instance
        Since:
        jcms-4.0
      • isReverseProxyEnabled

        public boolean isReverseProxyEnabled()
        Checks if the reverse proxy is enabled.
        Returns:
        true if the reverse proxy is enabled false otherwise.
        Since:
        jcms-5.5.0
      • getReverseProxyBaseURLMap

        public java.util.HashMap<java.lang.String,​java.lang.String> getReverseProxyBaseURLMap()
        returns the reverseProxyBaseURL map
        Returns:
        the reverseProxyBaseURL map
        Since:
        jcms-10.0.7
      • getReverseProxySSLBaseURL

        public java.util.HashMap<java.lang.String,​java.lang.String> getReverseProxySSLBaseURL()
        returns the reverseProxySSLBaseURL map
        Returns:
        the reverseProxySSLBaseURL map
        Since:
        jcms-10.0.7
      • getReverseProxyContextPathMap

        public java.util.HashMap<java.lang.String,​java.lang.String> getReverseProxyContextPathMap()
        returns the reverseProxyContextPath map
        Returns:
        the reverseProxyContextPath map
        Since:
        jcms-10.0.7
      • processReverseProxyRequest

        public boolean processReverseProxyRequest​(javax.servlet.ServletRequest request)
        Check if the given request comes from one of the reverse proxies specified in the configuration (channel.reverse-proxy.conf*).
        If the request is a proxy request, then the following attributes are added to the request:
        • contextPath
        • baseUrl
        • securedBaseUrl

        Those attributes are used by ServletUtil methods to properly initialize the corresponding value in doInitPage. (Thus this method must be called early in doInitPage.jsp).
        Parameters:
        request - the current request
        Returns:
        true if the request comes from the reverse proxy and that attributes were added to the request
        Since:
        jcms-5.5.0
      • processReverseProxyRedirect

        public java.lang.String processReverseProxyRedirect​(javax.servlet.ServletRequest request,
                                                            java.lang.String url)
        Check if the given request comes from one of the reverse proxies specified in the configuration (channel.reverse-proxy.conf*).
        If the request is a proxy request, then make sure the given url is always an absolute url to prevent rewriting problem in apache when url are relative, such as "/index.jsp", when path is different on the reverse proxy and in tomcat.
        Parameters:
        request - the current request
        url - the URL to be modified with reverse proxy settings
        Returns:
        the modified url.
        Since:
        jcms-5.6.2
      • isDeployManagerEnabled

        public boolean isDeployManagerEnabled()
        Returns true if the DeployManager is enabled.
        Returns:
        true if the DeployManager is enabled.
        Since:
        jcms-5.6.2
      • getLimitController

        public LimitController getLimitController()
        Returns the LimitController which is in charge to validate license limitations of JCMS.
        Returns:
        the LimitController.
        Since:
        jcms-5.5.0
      • isJSyncEnabled

        public boolean isJSyncEnabled()
        Returns:
        true if JSync is enabled
        Since:
        jcms-4.1
      • isMainLeader

        public boolean isMainLeader()
        Return leadership status of JCMS when using in cluster. You should use this method in Listener to prevent some actions to be triggered on all replicas (for example, sending mail) but instead only on the main leader.
        Returns:
        true if this instance of JCMS is either: - not in cluster - or a replica super leader
        Since:
        jcms-5.0.1
      • getJSyncReplica

        public JSyncReplica getJSyncReplica()
        Returns:
        the JSyncReplica singleton
        Since:
        jcms-4.1
      • getJSyncPreviousReplicaManager

        public JSyncPreviousReplicaManager getJSyncPreviousReplicaManager()
        Returns:
        the Unique JSyncPreviousReplicaManager instance
        Since:
        jcms-5.7.4
      • getJSyncReplicaUrl

        public java.lang.String getJSyncReplicaUrl()
        Returns:
        the url of this replica
        Since:
        jcms-4.1
      • getJSyncLeaderUrl

        public java.lang.String getJSyncLeaderUrl()
        Returns:
        the url of the JSync leader
        Since:
        jcms-4.1
      • isJSyncAutoUpdate

        public boolean isJSyncAutoUpdate()
        Returns:
        true if JSync update mode is set to auto
        Since:
        jcms-4.1
      • getJSyncStabDelay

        public long getJSyncStabDelay()
        Returns:
        the delay of stablization for auto update mode
        Since:
        jcms-4.1
      • getJSyncIpPattern

        public org.apache.oro.text.regex.Pattern getJSyncIpPattern()
        Returns:
        the pattern to be used to check remote IP
        Since:
        jcms-4.1
      • isGzipCompressionEnabled

        public boolean isGzipCompressionEnabled()
        Returns:
        true if the gzip compression is enabled, false otherwise.
        Since:
        jcms-4.1.1
      • isNotificationEnabled

        public boolean isNotificationEnabled()
        Returns:
        true if Notification is enabled, false otherwise
      • getNotificationManager

        public NotificationManager getNotificationManager()
        Returns:
        the NotificationManager.
      • isMailEnabled

        public boolean isMailEnabled()
        Returns:
        true if Mail is enabled, false otherwise
        Since:
        jcms-5.5.0
      • isIncomingMailEnabled

        public boolean isIncomingMailEnabled()
        Checks if site incoming mail is enabled (see mail.incoming.enabled property)
        Returns:
        true if site incoming mail is enabled
        Since:
        jcms-9.0.0
      • getLinkIndexManager

        public LinkIndexManager getLinkIndexManager()
        Return the LinkIndexManager singleton instance which manages Data's links on each other.
        Returns:
        the LinkIndexManager singleton
      • getLinkIndexedDataSet

        public <T> java.util.TreeSet<T> getLinkIndexedDataSet​(Data data,
                                                              java.lang.Class<T> clazz)
        Returns the Set of Data of the given Class, referring the given data.
        CAUTION: returns all the data whatever their rights and their state. CAUTION: returns an internal Set, DO NOT alter this Set, clone prior modification.
        Type Parameters:
        T - any object type (usually something extending Data)
        Parameters:
        data - the data
        clazz - the class to search the referring instances
        Returns:
        a immutable TreeSet of Data
        Since:
        jcms-3.0
      • getLinkIndexedDataSet

        public <T> java.util.TreeSet<T> getLinkIndexedDataSet​(Data data,
                                                              java.lang.Class<T> clazz,
                                                              java.lang.String field)
        Returns the Set of Data of the given Class, referring the given data with the given field.
        CAUTION: returns all the data whatever their rights and their state. CAUTION: returns an internal Set, DO NOT alter this Set, clone prior modification.
        Type Parameters:
        T - any object type (usually something extending Data)
        Parameters:
        data - the data
        clazz - the class to search the referring instances
        field - the name of the field which contains the reference
        Returns:
        a TreeSet of Data
        Since:
        jcms-4.0.2
      • getLinkCount

        public int getLinkCount​(Data data)
        Returns the number of instances of Data referring the given Data
        Parameters:
        data - the data for which we want to retrieve link count
        Returns:
        the number of instances of Data referring this data
        Since:
        jcms-3.0
      • getFileIndexManager

        public FileIndexManager getFileIndexManager()
        Return the FileIndexManager singleton instance which manages Data's links to filename.
        It is used to check access rights of a given file (using its access filename) when accessing file using
        Returns:
        the FileIndexManager singleton
        Since:
        jcms-3.0
      • getCleanFilename

        public java.lang.String getCleanFilename​(java.lang.String filename)
        Clean the given filename.
        For example: ///upload%2Fmydir///private.%70df -> upload/mydir/private.pdf
        Parameters:
        filename - the URI to be decoded, converted to a valid path relative to the webapp
        Returns:
        the cleaned filename
        Since:
        jcms-4.0
      • getFileIndexedDataSet

        public java.util.TreeSet<Data> getFileIndexedDataSet​(java.lang.String filename)
        Returns the set of data bound to the given filename.
        Parameters:
        filename - a relative filename ("upload/...").
        Returns:
        a set of Data
        Since:
        jcms-3.0
      • canMemberAccessFile

        public boolean canMemberAccessFile​(java.lang.String filename,
                                           Member member)
        Check if the given member can access the given file (dangling documents are checked, see checkMemberAccessFile()).
        Parameters:
        filename - the filename to be checked
        member - the member
        Returns:
        true if member can access to this file
        Since:
        jcms-3.0
        See Also:
        checkMemberAccessFile(String, Member, Set)
      • checkMemberAccessFile

        public int checkMemberAccessFile​(java.lang.String filename,
                                         Member member,
                                         java.util.Set<java.lang.String> authorizedFilenames)
        Check the access mode the given member has for the given file
        Parameters:
        filename - the filename to be checked
        member - the member
        authorizedFilenames - Set of filename authorized, placed in session while executing version.jsp
        Returns:
        one of the JcmsConstants PRIVATE_FILE_ACCESS, PUBLIC_FILE_ACCESS, FORBIDDEN_FILE_ACCESS
        Since:
        jcms-6.1.0
        See Also:
        canMemberAccessFile(String, com.jalios.jcms.Member)
      • getOrphanFiles

        public java.util.List<java.io.File> getOrphanFiles()
        Returns the files which are not referenced by any JCMS publication.
        Returns:
        a list of java.io.File
        Since:
        jcms-6.2.0
      • getOrphanFiles

        public java.util.List<java.io.File> getOrphanFiles​(boolean searchInDB)
        Returns the files which are not referenced by any JCMS publication.
        Parameters:
        searchInDB - if true extends the search to the database
        Returns:
        a list of java.io.File
        Since:
        jcms-6.2.0
      • getOrphanFiles

        public java.util.List<java.io.File> getOrphanFiles​(java.io.FileFilter filter)
        Returns the files which are not referenced by any JCMS publication. Technical files such as thumbnails and PDF generated with JCMS Universal are skipped.
        Parameters:
        filter - the FileFilter to use (may be null)
        Returns:
        a list of java.io.File
        Since:
        jcms-5.5.0
      • getOrphanFiles

        public java.util.List<java.io.File> getOrphanFiles​(java.io.FileFilter filter,
                                                           boolean searchInDB)
        Returns the files which are not referenced by any JCMS publication. Technical files such as thumbnails and PDF generated with JCMS Universal are skipped.
        Parameters:
        filter - the FileFilter to use (may be null)
        searchInDB - true if file search should also be performed for DBFileDocument, false otherwise
        Returns:
        a list of java.io.File
        Since:
        jcms-5.5.0
      • isSSLenabled

        public final boolean isSSLenabled()
        Returns:
        true if SSL is enabled, false otherwise
        Since:
        jcms-5.0.0
      • getSSLport

        public final int getSSLport()
        Returns:
        the SSL port used for authentication
        Since:
        jcms-5.0.0
      • getSecuredBaseUrl

        public final java.lang.String getSecuredBaseUrl​(javax.servlet.http.HttpServletRequest request)
        Returns the base URL of the given request, modifying it according to the fact that SSL is enabled or not. For example, if the request url is http://mysite.com:8080/dir/webapp/subdir/my.jsp?param=value If SSL is enabled with port 8443, it will return: https://mysite.com:8443/dir/webapp/ otherwise: http://mysite.com:8080/dir/webapp/ Note the trailing slash. Similar to ServletUtil.getBaseUrl(). Used by login forms (doPortletLoginFullDisplay.jsp, login jsp, privateLogin jsp, ...)
        Parameters:
        request - the request
        Returns:
        the possibly secured base URL of the request
        Since:
        jcms-5.0.0
      • isLdapEnabled

        public boolean isLdapEnabled()
        Returns:
        true if LDAP directory is enabled, false otherwise
        Since:
        jcms-4.0
      • getLDAPConfigurationFromLogin

        public LDAPConfiguration getLDAPConfigurationFromLogin​(java.lang.String login)
        Retrieve the LDAPConfiguration to use based on the specified login.

        If the specified login is a mail, a Windows UPN (User Principal Name) format, or a down-level windows logon format (DOMAIN\sAMAccountName), the domain part is extracted and the LDAP configuration will be read from properties ldap.server.{DOMAIN}.* (if available) instead of the default ldap.server.* properties.
        Configuration alias can also be defined with property ldap.conf-aliases.{domain}: confname allowing several domain to match on LDAP configuration.

        Parameters:
        login - the login used to determine which configuration to use
        Returns:
        a LDAPConfiguration, never return null (default to getLDAPConfiguration().
        Since:
        jcms-8.0.0
      • getLDAPConfigurationFromDomain

        public LDAPConfiguration getLDAPConfigurationFromDomain​(java.lang.String domain)
        Retrieve the LDAPConfiguration for the specific domain.
        Parameters:
        domain - an optional configuration name or alias, as declared in ldap configuration properties ldap.server.{domain}.* or through LDAP configuration alias declared in property ldap.conf-aliases.{domain}: confname
        Returns:
        an instance of LDAPConfiguration, never return null (default to getLDAPConfiguration())
        Since:
        jcms-8.0.0
      • getAuthMgr

        public AuthenticationManager getAuthMgr()
        Returns the current AuthenticationManager instance used by JCMS to authenticate members into JCMS.
        Returns:
        the AuthenticationManager singleton.
      • isAuthenticationRequired

        public boolean isAuthenticationRequired()
        Returns true if the authentication is required in this site (use the value of channel.is-authentication-required property)
        Returns:
        true if authentication is required for JCMS acces, false otherwise.
      • isLoginCaseSensitive

        public boolean isLoginCaseSensitive()
        Returns true if login should be treated as case sensitive (myLogin != mylogin). Defined by value of property channel.login-casesensitive.
        Returns:
        true if login is accent sensitive
        Since:
        jcms-4.0.2
        See Also:
        AuthenticationManager.isLoginCaseSensitive()
      • isLoginAccentSensitive

        public boolean isLoginAccentSensitive()
        Returns true if login should be treated as accent sensitive (mylogin != mylogìn). Defined by value of property channel.login-accentsensitive.
        Returns:
        true if login is sensitive to accent (ie diacritics)
        Since:
        jcms-8.0.2
        See Also:
        AuthenticationManager.isLoginAccentSensitive()
      • getCacheManager

        public CacheManager getCacheManager()
        Returns:
        the CacheManager
        Since:
        jcms-3.0
      • getAlarmManager

        public AlarmManager getAlarmManager​(java.lang.String name)
        Returns the AlarmManager associated to the given name. If it does not exist, a new AlarmManager is created. This method should only be used if all the alarms of the alarm manager must be homogeneous so that they can be listed (AlarmManager.getAllAlarms()) or removed (AlarmManager.removeAllAlarms()).
        Parameters:
        name - the name of the AlarmManager.
        Returns:
        an AlarmManager.
        See Also:
        getCommonAlarmManager()
      • getAllAlarmManager

        public java.util.Map<java.lang.String,​AlarmManager> getAllAlarmManager()
        Returns All alarmManager present in the channel
        Returns:
        the Map of AlarmManager with the name as key
      • getServletContext

        public javax.servlet.ServletContext getServletContext()
        Returns the ServletContext used for this site.
        This is the ServletContext that was used to initialized this Channel.
        Returns:
        the ServletContext
        Since:
        jcms-3.0
      • getRealPath

        public java.lang.String getRealPath​(java.lang.String uri)
        Retrieves the file system path of the specified uri relative to the webapp root folder.
        The returned file path will be in native path format, suitable for use with new File() constructor.
         String realFilePath = channel.getRealPath("/upload/myfile.txt");
         File myFile = new File(realFilePath);
         
        Parameters:
        uri - a path relative to the webapp root (with or without starting slash). e.g "/upload/somefile.txt", "WEB-INF/data/somefolder"
        Returns:
        an absolute file system path, e.g. "C:\tomcat\webapps\jcms\WEB-INF\data\somefolder".
        Returns null if uri is null.
      • getRealPath

        public java.lang.String getRealPath​(java.lang.String constraintDirectory,
                                            java.lang.String uri)
        Retrieves the file system path of the specified uri relative to the webapp root folder.
        The returned file path will be in native path format, suitable for use with new File() constructor. The returned file is guaranteed to belong to the constraint directory, otherwise null is returned.
         String realFilePath = channel.getRealPath("/upload", "/upload/myfile.txt");
         File myFile = new File(realFilePath);
         
         String evilFilePath = channel.getRealPath("/upload", "/upload/../myfile.txt");
         // evilFilePath == null
         
        Parameters:
        constraintDirectory - a directory path relative to the webapp root (with or without starting slash) in which the specified uri MUST belong to be accepted. webapp root directory is used if null is specified
        e.g "/upload/", "WEB-INF/data/"
        uri - a path relative to the webapp root (with or without starting slash).
        e.g "upload/docs/somefile.txt", "/WEB-INF/data/custom.prop"
        Returns:
        an absolute file system path, e.g. "C:\tomcat\webapps\jcms\WEB-INF\data\somefolder".
        Returns null if uri is outside constraintDirectory.
        Returns null if uri is null.
        Since:
        jcms-10.0.4
      • getWebappPath

        public java.lang.String getWebappPath()
        Retrieves the file system path of the webapp root.
        Returns:
        the path of the root of the webapp. e.g "C:\tomcat\webapps\jcms\".
        Since:
        jcms-5.7.3
      • getWebInfPath

        public java.lang.String getWebInfPath​(java.lang.String uri)
        Retrieves the file system path of the specified uri relative to the directory /WEB-INF/ of the webapp.
        The returned file path will be in native path format, suitable for use with new File() constructor.
           String webXmlPath = channel.getWebInfPath("web.xml");
           File webXmlFile = new File(webXmlPath);
         
        Parameters:
        uri - a path relative to the /WEB-INF/ directory (with or without starting slash). e.g "web.xml"
        Returns:
        an absolute file system path, e.g. "C:\tomcat\webapps\jcms\WEB-INF\web.xml"..
        Returns null if specified uri is null or invalid.
        See Also:
        getRealPath(String)
      • getDataPath

        public java.lang.String getDataPath​(java.lang.String uri)
        Retrieves the file system path of the specified uri relative to the directory /WEB-INF/data/ of the webapp.
        The returned file path will be in native path format, suitable for use with new File() constructor.
           String statusPropPath = channel.getDataPath("status.prop");
           File statusPropFile = new File(statusPropPath);
         
        Parameters:
        uri - a path relative to the /WEB-INF/data/ directory (with or without starting slash). e.g "status.prop"
        Returns:
        an absolute file system path, e.g. "C:\tomcat\webapps\jcms\WEB-INF\data\status.prop"..
        Returns null if specified uri is null or invalid.
        See Also:
        getRealPath(String)
      • getLucenePath

        public java.lang.String getLucenePath​(java.lang.String uri)
        Retrieves the file system path of the specified uri relative to the directory /WEB-INF/data/lucene/ of the webapp.
        The returned file path will be in native path format, suitable for use with new File() constructor.
           String fileIndexPath = channel.getLucenePath("FilesIndex");
           File fileIndexFile = new File(fileIndexPath);
         
        Parameters:
        uri - a path relative to the /WEB-INF/data/lucene/ directory (with or without starting slash). e.g "FilesIndex"
        Returns:
        an absolute file system path, e.g. "C:\tomcat\webapps\jcms\WEB-INF\data\lucene\FilesIndex\"..
        Returns null if specified uri is null or invalid.
        Since:
        jcms-5.5.0
        See Also:
        getRealPath(String)
      • getJaliosPath

        public java.lang.String getJaliosPath​(java.lang.String uri)
        Retrieves the file system path of the specified uri relative to the directory /WEB-INF/jalios/ of the webapp.
        The returned file path will be in native path format, suitable for use with new File() constructor.
           String jcmsPropPath = channel.getJaliosPath("jcms.prop");
           File jcmsPropFile = new File(jcmsPropPath);
         
        Parameters:
        uri - a path relative to the /WEB-INF/jalios/ directory (with or without starting slash). e.g "jcms.prop"
        Returns:
        an absolute file system path, e.g. "C:\tomcat\webapps\jcms\WEB-INF\jalios\jcms.prop"..
        Returns null if specified uri is null or invalid.
        Since:
        jcms-3.0
        See Also:
        getRealPath(String)
      • getJcmsWorkPath

        public java.lang.String getJcmsWorkPath​(java.lang.String uri)
        Retrieves the file system path of the specified uri relative to the directory /WEB-INF/jcmswork/ of the webapp.
        The returned file path will be in native path format, suitable for use with new File() constructor.
           String myLockFilePath = channel.getJcmsWorkPath("myfile.lock");
           File myLockFile = new File(myLockFilePath);
         
        Parameters:
        uri - a path relative to the /WEB-INF/jcmswork/ directory (with or without starting slash). e.g "myfile.lock"
        Returns:
        an absolute file system path, e.g. "C:\tomcat\webapps\jcms\WEB-INF\jcmswork\myfile.lock"..
        Returns null if specified uri is null or invalid.
        Since:
        jcms-3.0
        See Also:
        getRealPath(String)
      • getUploadPath

        public java.lang.String getUploadPath​(java.lang.String uri)
        Retrieves the file system path of the specified uri relative to the upload directory of the webapp (/upload/).
        The returned file path will be in native path format, suitable for use with new File() constructor.
           String uploadedFilePath = channel.getUploadPath("uploadedfile.txt");
           File uploadedFile = new File(uploadedFilePath);
           // uploadedFile == File("/path/to/webapp/upload/uploadedfile.txt")
         
        Parameters:
        uri - a path relative to the /upload/ folder (with or without starting slash). e.g "myfile.lock"
        Returns:
        an absolute file system path, e.g. "C:\tomcat\webapps\jcms\upload\".
        Returns null if specified uri is null or invalid.
        Since:
        jcms-5.0.0
        See Also:
        getRealPath(String)
      • getUploadParentPath

        public java.lang.String getUploadParentPath()
        Returns the path of the directoy that contains the upload directory.
        Returns:
        the path of the directoy that contains the upload directory.
        Since:
        jcms-5.7.3
      • getRelativePath

        public java.lang.String getRelativePath​(java.io.File file)
        Retrieves a path relative to the webapp root, from a File instance.
        Example: given a File pointing the folder "C:\tomcat\webapps\ROOT\AnyFolder\MyFileOrFolder" returns "AnyFolder/MyFileOrFolder".
        Parameters:
        file - the File to convert into a relative filepath, e.g. new File("C:\\tomcat\\webapps\\jcms\\upload\\myfile.txt")
        Returns:
        a path relative to the webapp root, e.g. "upload/myfile.txt"
      • getTempDir

        public java.io.File getTempDir()
        Retrieve the temporary directory which can be used to store temporary files and directory for this Channel instance.

        Warning: You must not alter the directory itself (move, delete, ...).

        Implementation details :

        • This directory is created in the default temporary directory of the JVM,
        • this directory is marked for deletion on JVM exit using File.deleteOnExit(),
        • the path of the directory will be different after each JPlatform restart.
        • the path of the directory is not constant and will be different after each JPlatform restart.
        Returns:
        a File referencing the temporary directory in which you can store temporary files and directory.
        Since:
        jcms-10.0.6 / JCMS-8960
      • getDataSourceLabel

        public java.lang.String getDataSourceLabel​(java.lang.String dataSource,
                                                   java.lang.String userLang)
        Returns the label for the given data source.

        If no label exists for this data source, the name of the data source is returned.

        Data source label must be declared in webapp.prop with this syntax for the key : <lang>.data-source.<ds-name>.
        E.g.: en.data-source.jdbc/mydb: My Data Source.

        Parameters:
        dataSource - the name of the DataSource (eg. "jdbc/mydb")
        userLang - the userLang
        Returns:
        the label for the given data source
      • getBcryptLogRoundsMin

        public int getBcryptLogRoundsMin()
        Returns the mininum log2 of the number of rounds of hashing authorized in the password bcrypt hash.
        Returns:
        an integer value
        Since:
        10.0.7 / JCMS-9787
      • getBcryptLogRoundsMax

        public int getBcryptLogRoundsMax()
        Returns the maximum log2 of the number of rounds of hashing authorized in the password bcrypt hash.
        Returns:
        an integer value
        Since:
        10.0.7 / JCMS-9787
      • crypt

        public java.lang.String crypt​(java.lang.String str)
        Hash the specified string with the BCrypt encryption algorithm.

        Use checkCrypt(String, String) method to verify the encrypted version against a plain text entry.

        Parameters:
        str - the String to encrypt
        Returns:
        the encrypted string
        Since:
        jcms-4.0
        See Also:
        checkCrypt(String, String)
      • checkCrypt

        public boolean checkCrypt​(java.lang.String candidate_plaintext,
                                  java.lang.String stored_hash)
        Check a plain text string against an encrypted string previoulsy stored in JCMS.

        As of current implementation, this method is compatible with the following crypt algorythm :
        BCrypt : default encoding used since from JCMS 7.1

        Parameters:
        candidate_plaintext - the plain text to be tested (information usually received from the client, eg : a plain text password recevied from a login form)
        stored_hash - the encrypted version stored (information known only on the server side, eg : member.getPassword())
        Returns:
        true if the plain text string match the stored hash, false otherwise
        Since:
        jcms-7.1
        See Also:
        crypt(String)
      • getDefaultGroup

        public Group getDefaultGroup()
        Returns the default group. This group is get from the property channel.default-group or from j_36 (if this property is not set)
        Returns:
        the default Group
      • getDefaultAdmin

        public Member getDefaultAdmin()
        Returns the default admin. This admin is get from the property channel.default-admin or from j_2 (if this property is not set)
        Returns:
        a member representing the default admin or null if the member associated with the id (property or j_2) is not an admin
      • getDefaultWorkspace

        public Workspace getDefaultWorkspace()
        Returns the default workspace. This workspace is get from the property channel.default-workspace or from j_4 (if this property is not set)
        Returns:
        the default Workspace
      • getDefaultEmail

        public java.lang.String getDefaultEmail()
        Returns the default email of the channel get from the property channel.default-email
        Returns:
        a String containing the default email
      • getDefaultQueryTypes

        public java.lang.String[] getDefaultQueryTypes()
        Returns the default 'types' attribute to use for query (get from the property query.default.types)
        Returns:
        an array string containing the types to perform the query on.
        Since:
        jcms-2.1
      • getDefaultQueryTypesOff

        public java.lang.String[] getDefaultQueryTypesOff()
        Returns the default 'typesOff' attribute to use for query (get from the property query.default.types-off)
        Returns:
        a String containing the types to avoid in a query.
        Since:
        jcms-2.1
      • getOrganizationRootGroup

        public Group getOrganizationRootGroup()
        Returns the root group of the organization. This group is get from the property $channel.organization-root-group.
        Returns:
        the root group of the organization
      • supportFlowChartBackwardCompatibility

        public boolean supportFlowChartBackwardCompatibility()
        Check if backward compatibility with legacy FlowChart plugin should be supported.

        If supported, manager and assistant are retrieved from legacy flowchart plugin extradata.

        Returns:
        true if backward compatibility is enabled, false otherwise
        Since:
        10.0.7 / JCMS-9478
      • initCollaborativeSpacePluginState

        protected void initCollaborativeSpacePluginState()
        Inits the active state of CollaborativeSpacePlugin.
        Since:
        jcms-10.0.5 / JCMS-8503
      • isCollaborativeSpacePluginActive

        protected boolean isCollaborativeSpacePluginActive()
        Returns the active state of CollaborativeSpacePlugin.
        Returns:
        true if CSP plugin is present and active
        Since:
        jcms-10.0.5 / JCMS-8503
      • isGuestAccountsEnabled

        public boolean isGuestAccountsEnabled()
        Returns:
        true if CollaborativeSpace plugin is active, and guest accounts feature is enabled.
        Since:
        jcms-10.0.5 / JCMS-8503
      • getGuestGroup

        public Group getGuestGroup()
        Returns the Guests group bound to virtual ID Member.GUEST_GROUP_VID.
        Returns:
        the Guests group if any
        Since:
        jcms-10.0.5 / JCMS-8503
      • getVisiblePstatus

        public int[] getVisiblePstatus()
        Returns the array of Workflow pstatus visible in FO.
        Returns:
        the array of Workflow pstatus visible in FO.
        Since:
        jcms-2.1
      • isValidAdminIP

        public boolean isValidAdminIP​(javax.servlet.ServletRequest request)
        Checks if the specified request is authorized to access admin area.
        Parameters:
        request - the ServletRequest to check
        Returns:
        true if the remote IP address is valid according the regexp contains int channel.admin-ip property.
        Since:
        jcms-4.0.2
      • isValidAdminIP

        public boolean isValidAdminIP​(java.lang.String ipAddress)
        Checks if the specified request is authorized to access admin area.
        Parameters:
        ipAddress - the IP Address
        Returns:
        true if the remote IP address is valid according the regexp contains int channel.admin-ip property.
        Since:
        jcms-10.0.0
      • isValidWorkspacesIP

        public boolean isValidWorkspacesIP​(javax.servlet.ServletRequest request)
        Checks if the specified request is authorized to access workspace area.
        Parameters:
        request - the ServletRequest to check
        Returns:
        true if the remote IP address is valid according the regexp contains int channel.workspaces-ip property.
        Since:
        jcms-7.0.2
      • getRootCategory

        public Category getRootCategory()
        Returns the root category using the id specified in the property channel.root-category default to j_3.
        Returns:
        the root category
      • getRootCategoryAsSet

        public java.util.Set<Category> getRootCategoryAsSet()
        A convenient method which returns a set containing the root category
        Returns:
        the root category
        Since:
        jcms-4.0
      • getSearchRootSet

        public java.util.Set<Category> getSearchRootSet()
        Returns the categories to used as root for the search. This set of category is build from the category ids contains in property query.search-roots. If no such property exists, it returns the children of the root category.
        Warning: The returned Category TreeSet will NOT be ordered. Therefore make use you always create a new set with a new OrderComparator corresponding to the current user language!!
        Returns:
        a set of category
        See Also:
        getRootCategory(), getRefineRootSet(), getAdvRefineRootSet()
      • getRefineRootSet

        public java.util.Set<Category> getRefineRootSet()
        Returns the categories to used as roots for the refinement. This set of category is build from the category ids contains in property query.refine-roots. If no such property exists, it returns the results of getSearchRootSet().
        Warning: The returned Category TreeSet will NOT be ordered. Therefore make use you always create a new set with a new OrderComparator corresponding to the current user language!!
        Returns:
        a set of category
        See Also:
        getRootCategory(), getSearchRootSet(), getAdvRefineRootSet()
      • getTagRoot

        public Category getTagRoot()
        Returns the common tag root.
        Returns:
        the common tag root.
        Since:
        jcms-7.1.0
      • getTagRoot

        public Category getTagRoot​(Workspace ws)
        Returns the tag root for the given workspace if it exists ; otherwise return the common tag root.
        Parameters:
        ws - the workspace
        Returns:
        the tag root for the given workspace if it exists ; otherwise return the common tag root.
        Since:
        jcms-7.1.0
      • getAdvRefineRootSet

        public java.util.Set<Category> getAdvRefineRootSet()
        Returns the categories to used as roots for the advanced refinement. This set of category is build from the category ids contains in property query.adv-refine-roots. If no such property exists, it returns the results of getRefineRootSet().
        Warning: The returned Category TreeSet will NOT be ordered. Therefore make use you always create a new set with a new OrderComparator corresponding to the current user language!!
        Returns:
        a set of category
        See Also:
        getRefineRootSet(), getSearchRootSet(), getRootCategory()
      • invalidateSearchAndRefineRootSet

        public void invalidateSearchAndRefineRootSet()
        Invalidate search and refine root set (they will be computed at the next call).
        Since:
        jcms-5.6.0
      • getMetaDataExtractor

        public MetaDataExtractor getMetaDataExtractor​(java.lang.String contentType)
        Returns a metadata extractor bound to the given contentType
        Parameters:
        contentType - the content type of the file to extract the metadata
        Returns:
        a MetaDataExtractor
        Since:
        jcms-4.0
      • getSenderFullEmail

        public java.lang.String getSenderFullEmail()
        Retrieves the full email address that can be used to send message from JCMS.

        If default e-mail was specified (property "channel.default-email"), returns an address composed of the site name ( property "channel.name") and default e-mail address.
        e.g. "Site Name <site@example.com>".

        Otherwise uses the default admin full email (see Member.getFullEmail()).
        e.g. "name <user@company.com>"

        Return a properly formatted address (RFC 822 syntax) of Unicode characters.

        Important : this value is NOT suitable for presentation to the end user in HTML interface, is is meant to be used in MailMessage from value.

        Returns:
        Unicode address string
        See Also:
        Member.getFullEmail()
      • getSenderFullEmail

        public java.lang.String getSenderFullEmail​(Workspace ws,
                                                   java.lang.String lang)
        Deprecated.
        since JCMS-9, with the removal of Workspace.getEmail(), this method now ALWAYS returns either the channel default email or the default admin email, use getSenderFullEmail()
        Retrieves the full email that can be used to send message from JCMS given a workspace and a language
        Parameters:
        ws - workspace from which we will retrieve email
        lang - optional paramereter (set to null if not used)
        Returns:
        an email in the form "name <user@company.com>".
      • getSenderFullEmail

        public java.lang.String getSenderFullEmail​(Publication pub,
                                                   java.lang.String lang)
        Deprecated.
        since JCMS-9, with the removal of Workspace.getEmail(), this method now ALWAYS returns either the channel default email or the default admin email, use getSenderFullEmail()
        Retrieves the full email that can be used to send message from JCMS given a workspace and a language
        Parameters:
        pub - publication from which we will retrieve workspace and its email
        lang - optional paramereter (set to null if not used)
        Returns:
        an email in the form "name <user@company.com>".
      • getSenderFullEmail

        public java.lang.String getSenderFullEmail​(Workspace ws,
                                                   Publication pub,
                                                   java.lang.String lang)
        Deprecated.
        since JCMS-9, with the removal of Workspace.getEmail(), this method now ALWAYS returns either the channel default email or the default admin email, use getSenderFullEmail()
        Retrieves a full email (something <user@company.com>) given some information to retrieve it We try: - first the given workspace email, "WorkspaceName <user@company.com>" - the publication's workspace email, "Pub's WorkspaceName <user@company.com> - the channel default email, "Channel Name <user@company.com>" - last the default admin email, "Default Admin <user@company.com>"
        Parameters:
        ws - workspace from which we will retrieve email
        pub - publication from which we will retrieve workspace and its email
        lang - optional paramereter (set to null if not used)
        Returns:
        an email in the form "name <user@company.com>".
      • isRegistered

        public boolean isRegistered​(Data data)
        Checks if the given data is still registered in the Store.
        Parameters:
        data - the data to check
        Returns:
        true if the data is still registered
        Since:
        jcms-5.0.0
      • isRegistered

        public boolean isRegistered​(java.lang.String id)
        Checks if the given data is still registered in the Store.
        Parameters:
        id - the id of the data to check
        Returns:
        true if the data is still registered
        Since:
        jcms-5.0.0
      • initVirtualIDMap

        public void initVirtualIDMap()
        Init the virtual ID map (data, virtual ID).
        Since:
        jcms-5.5.0
      • getVirtualIDSet

        public java.util.Set<java.lang.String> getVirtualIDSet​(Data data)
        Returns the set of virtual ID bound to the given data (or null if it does not exist).
        Parameters:
        data - the data to get the virtual ID.
        Returns:
        the set of virtual ID bound to the given data (or null if it does not exist).
        Since:
        jcms-8.0.0
      • getStorable

        public Storable getStorable​(java.lang.String id)
        Returns a storable from its id. If id starts with character '$', it is considered as a virtual id. That is, the real id used is the value of the proprerty bound to this id.
        Parameters:
        id - the id of the storable
        Returns:
        the storable or null if not found
        Since:
        jcms-5.5.0
      • getData

        public Data getData​(java.lang.String id)
        Returns a data from its id
        Parameters:
        id - the id of the data
        Returns:
        the data or null if not found
      • getData

        public <T extends Data> T getData​(java.lang.Class<T> clazz,
                                          java.lang.String id)
        Returns a data from its id.
        Type Parameters:
        T - any Data type
        Parameters:
        clazz - the class of the Data
        id - its id.
        Returns:
        the data or null if not found or if the data is not
        Since:
        jcms-6.0.0
      • getWorkspace

        public Workspace getWorkspace​(java.lang.String id)
        Return a Workspace from its id
        Parameters:
        id - the id of the workspace
        Returns:
        a workspace
      • getCategory

        public Category getCategory​(java.lang.String id)
        Returns a category from its id
        Parameters:
        id - the id of the category
        Returns:
        the category or null if not found
      • getPublication

        public Publication getPublication​(java.lang.String id)
        Returns a publication from its id
        Parameters:
        id - the id of the publication
        Returns:
        the publication or null if not found
      • getGroup

        public Group getGroup​(java.lang.String id)
        Returns a group from its id
        Parameters:
        id - the id of the group
        Returns:
        the group or null if not found
      • getGroupFromDN

        public Group getGroupFromDN​(java.lang.String dn)
        Returns a LDAP group from its distinguish name.
        Parameters:
        dn - the dn of the group
        Returns:
        the group or null if not found
        Since:
        jcms-5.7.0
      • getMember

        public Member getMember​(java.lang.String id)
        Returns a member from its id
        Parameters:
        id - the id of the member
        Returns:
        the member or null if not found
      • getMemberFromLogin

        public Member getMemberFromLogin​(java.lang.String login)
        Returns the member with the given login.

        This method is only available after JCMS startup (both JStore and JcmsDB access must be fully ready).

        Parameters:
        login - the member's login
        Returns:
        the member or null if no member has this login.
      • getMemberFromLogin

        public Member getMemberFromLogin​(java.lang.String login,
                                         boolean checkDisabled)
        Returns the member with the given login.

        This method is only available after JCMS startup (both JStore and JcmsDB access must be fully ready).

        Parameters:
        login - the member's login
        checkDisabled - if true do not return member if account is disabled
        Returns:
        the member or null if no member has this login.
      • getMemberFromEmail

        public Member getMemberFromEmail​(java.lang.String email)
        Returns the member with the given email.

        This method is only available after JCMS startup (both JStore and JcmsDB access must be fully ready).

        Parameters:
        email - the member's email
        Returns:
        the member or null if no member has this email.
      • getVersionList

        public java.util.List<? extends Storable> getVersionList​(Data data)
                                                          throws LogException
        Get all the version of a given Data. Since jcms-5.5, if this data is deleted, the list contains one more element which represents the deleted version. This element contains the deletion date (getDdate()) and the deletion author (getOpAuthor()). CAUTION: SLOW! this method parses the store to find the version, use with care.
        Parameters:
        data - the data
        Returns:
        a unmodifiable list of Data
        Throws:
        LogException - if an error occured while reading store.xml
        Since:
        jcms-3.0
      • getVersionList

        public java.util.List<? extends Storable> getVersionList​(java.lang.String id)
                                                          throws LogException
        Get all the version of a Data, given its id. Since jcms-5.5, if this data is deleted, the list contains one more element which represents the deleted version. This element contains the deletion date (getDdate()) and the deletion author (getOpAuthor()). CAUTION: SLOW! this method parses the store to find the version, use with care.
        Parameters:
        id - the data id
        Returns:
        a unmodifable List of Data
        Throws:
        LogException - if an error occured while reading store.xml
        Since:
        jcms-3.0
      • getDeletedSet

        public java.util.TreeSet<? extends Storable> getDeletedSet​(java.lang.Class<? extends Storable> clazz)
                                                            throws LogException
        Get the latest version of the deleted Data for a given class. CAUTION: SLOW! this methods re-read the store to find the deleted object of the given Class, use with care.
        Parameters:
        clazz - the searched class
        Returns:
        a Set of Data
        Throws:
        LogException - if an error occured while reading store.xml
        Since:
        jcms-3.0
      • getPublicationSuperTypes

        public java.lang.Class<?>[] getPublicationSuperTypes()
        Returns the super publication types (i.e. Content, UserContent, Portlet and Form).
        Returns:
        the super publication types (i.e. Content, UserContent, Portlet and Form).
        Since:
        jcms-6.0.0
      • getPublicationTypeList

        public java.util.List<java.lang.Class<? extends Publication>> getPublicationTypeList()
        Returns all the available publication types (sorted on the main language). That is, the core publication types (FileDocument, ...) and the custom publication types.
        Returns:
        a list of classes (caution: this list is always the same object. Do not modify it.)
        See Also:
        getCustomTypeList(), getCoreTypeList(), getPublicationTypeList(String)
      • getPublicationTypeList

        public java.util.List<java.lang.Class<? extends Publication>> getPublicationTypeList​(java.lang.String lang)
        Retrieves all the available publication types sorted on the given language. That is, the core publication types (FileDocument, ...) and the custom publication types.
        Parameters:
        lang - the ISO-639 language code of the language to use for sorting, use default site's language if null.
        Returns:
        a list of classes (caution: this list is always the same object. Do not modify it.)
        See Also:
        getCustomTypeList(), getCoreTypeList(), getPublicationTypeList()
      • getTypeLabelComparator

        public Channel.TypeLabelComparator getTypeLabelComparator​(java.lang.String lang)
        Retrieves a new instance of a TypeLabelComparator which sorts Class using their TypeProcessor label.
        Parameters:
        lang - the language in which to sort the label.
        Returns:
        a new instance of Channel.TypeLabelComparator
        Since:
        jcms-5.7.2
      • getCoreTypeList

        public java.util.ArrayList<java.lang.Class<? extends Publication>> getCoreTypeList()
        Returns all the available core publication types (FileDocument, ArchivedPublication...)
        Returns:
        a list of classes (caution: this list is always the same object. Do not modify it.)
        See Also:
        getCustomTypeList(), getPublicationTypeList()
      • getSubTypeList

        public <T> java.util.List<java.lang.Class<? extends T>> getSubTypeList​(java.lang.Class<T> clazz)
        Returns a list of the publication types which extends the giving one.
        Type Parameters:
        T - any Publication type
        Parameters:
        clazz - the super class
        Returns:
        a list of classes which extends clazz
        Since:
        jcms-4.0
        See Also:
        getCustomTypeList(), getCoreTypeList(), getSubTypeList(Class, String)
      • getSubTypeList

        public <T> java.util.List<java.lang.Class<? extends T>> getSubTypeList​(java.lang.Class<T> clazz,
                                                                               java.lang.String lang)
        Returns a list of the publication types which extends the giving one. The list is sorted according the given language.
        Type Parameters:
        T - any Publication type
        Parameters:
        clazz - the super class
        lang - the language
        Returns:
        a list of classes which extends clazz
        Since:
        jcms-5.7.0
        See Also:
        getCustomTypeList(), getCoreTypeList()
      • getPublishableSubTypeList

        public <T> java.util.ArrayList<java.lang.Class<? extends T>> getPublishableSubTypeList​(java.lang.Class<T> clazz,
                                                                                               Member member)
        Returns all the publication types which extends the giving one and that the given member is allowed to publish and that are not abstract.
        Type Parameters:
        T - any Publication type
        Parameters:
        clazz - the super class
        member - a member
        Returns:
        a list of classes which extends clazz and that can be published by the given member
        Since:
        jcms-4.0.1
        See Also:
        getSubTypeList(Class), getCustomTypeList(), getCoreTypeList()
      • getDataRight

        public DataRight getDataRight​(boolean canPublish,
                                      boolean canUpdateOther,
                                      boolean canDeleteOther,
                                      boolean create)
        Returns a DataRight matching the given criteria. Can create a new one if none.
        Parameters:
        canPublish - the canPublish value of the DataRight that is looked for.
        canUpdateOther - the canUpdateOther value of the DataRight that is looked for.
        canDeleteOther - the canDeletOther value of the DataRight that is looked for.
        create - if true creates the DataRight if it does not exist.
        Returns:
        the DataRight or null if none.
        Since:
        jcms-2.1
      • getNoCategoryRight

        public CategoryRight getNoCategoryRight()
        Returns the CategoryRight which sets edition of cateogry forbidden
        Returns:
        the CategoryRight for none category
        Since:
        jcms-2.1
      • getRootCategoryRight

        public CategoryRight getRootCategoryRight()
        Returns the CategoryRight allowing edition of all the cateogry
        Returns:
        the CategoryRight for 'root' category or null if none.
        Since:
        jcms-2.1
      • getCategoryRight

        public CategoryRight getCategoryRight​(java.util.HashSet<Category> roots,
                                              int mode,
                                              boolean create)
        Returns the CategoryRight matching the given criteria
        Parameters:
        roots - the categories to look for
        mode - the mode to look for (GROUP_AND_MEMBER = 0, MEMBER_ONLY = 1, GROUP_ONLY = 2)
        create - if true creates the DataRight if it does not exist.
        Returns:
        the CategoryRight or null if none.
        Since:
        jcms-2.1
      • getDataSet

        public <T> java.util.TreeSet<T> getDataSet​(java.lang.Class<T> clazz)
        Returns all instances of a given class and it's subclass. If this class is a subclass of DBData, it returns a set of DBData otherwise it returns only JStore data.
        CAUTION: This class does not control the read access nor the pstatus of the publications.
        CAUTION: returns an internal Set, DO NOT alter this Set, clone prior modification. CAUTION: getDataSet(Publication.class) only returns JStore data, it does not returns publications saved in the database.
        Type Parameters:
        T - an object class
        Parameters:
        clazz - the class of instances to look for
        Returns:
        the internal set of data instances associated to the given class
        See Also:
        getPublicationSet(Class, Member)
      • getDataCount

        public long getDataCount​(java.lang.Class<? extends Data> clazz)
        Returns the number of data available for the given class.
        Parameters:
        clazz - the class.
        Returns:
        the number of data available for the given class.
        Since:
        jcms-6.0.0
      • getDBDataList

        public <T> java.util.List<T> getDBDataList​(java.lang.Class<T> clazz)
        Returns all the instance for the given class stored in the database.
        Type Parameters:
        T - any DB type
        Parameters:
        clazz - the class
        Returns:
        a List of all the instance for the given class stored in the database (never return null).
        Since:
        jcms-6.0.0
        See Also:
        HibernateUtil.getDBDataList(Class)
      • getDBDataList

        public <T> java.util.List<T> getDBDataList​(java.lang.Class<T> clazz,
                                                   int firstResult,
                                                   int maxResults)
        Returns all the instance for the given class stored in the database.
        Type Parameters:
        T - any DB type
        Parameters:
        clazz - the class
        firstResult - set the first data to retrieve. If <= 0, rows will be retrieved beginning from first data.
        maxResults - set the maximum number of data to retrieve. If <= 0, there is no limit to the number of data retrieved.
        Returns:
        a List of all the instance for the given class stored in the database (never return null).
        Since:
        jcms-6.0.0
        See Also:
        HibernateUtil.getDBDataList(Class)
      • getDBData

        public DBData getDBData​(java.lang.Class<?> clazz,
                                java.lang.Long rowId)
        Returns a given DBData according its class and it row id.
        Parameters:
        clazz - the class
        rowId - the row id
        Returns:
        a given DBData according its class and it row id.
        Since:
        jcms-6.0.0
        See Also:
        HibernateUtil.getObject(Class, Long)
      • getDBDataIterator

        public <T> java.util.Iterator<T> getDBDataIterator​(java.lang.Class<T> clazz)
        Returns an iterator on the list of instance for the given class stored in the database.
        Type Parameters:
        T - any DB type
        Parameters:
        clazz - the class.
        Returns:
        an iterator on the list of instance for the given class stored in the database.
        Since:
        jcms-6.0.0
        See Also:
        HibernateUtil.getDBDataIterator(Class)
      • getDataAndDBDataIterator

        public <T> java.util.Iterator<T> getDataAndDBDataIterator​(java.lang.Class<T> clazz)
        Returns an iterator on an hybrid list of data stored in the database and JStore.
        Type Parameters:
        T - any DB type
        Parameters:
        clazz - the class
        Returns:
        an iterator on an hybrid list of data stored in the database and JStore.
        Since:
        jcms-6.0.0
      • getVisibleDBPublicationList

        public PageResult<Publication> getVisibleDBPublicationList​(PublicationCriteria pubCriteria)
        Returns a list publications in the database matching the given criteria and in a visible state.
        Parameters:
        pubCriteria - the PublicationCriteria
        Returns:
        a list publications in the database matching the given criteria and in a visible state.
        Since:
        jcms-6.0.0
      • getNotVisibleDBPublicationList

        public PageResult<Publication> getNotVisibleDBPublicationList​(PublicationCriteria pubCriteria)
        Returns a list publications in the database matching the given criteria and not in a visible state.
        Parameters:
        pubCriteria - the PublicationCriteria
        Returns:
        a list publications in the database matching the given criteria and not in a visible state.
        Since:
        jcms-6.0.0
      • getDBPublicationClassList

        public java.util.List<java.lang.Class<? extends Publication>> getDBPublicationClassList()
        Returns the list of Publication subclasses managed by Hibernate.
        Returns:
        the list of Publication subclasses managed by Hibernate.
        Since:
        jcms-6.0.0
      • updateClass2DataSet

        protected void updateClass2DataSet​(Data data,
                                           boolean add)
        This methods is called by a DataListener when a Data is updated or created to update the map which link Class to Set of Data.
        Parameters:
        data - the data
        add - = true if add
        Since:
        jcms-5.0.1
      • getAllDataSet

        public <T> java.util.TreeSet<T> getAllDataSet​(java.lang.Class<T> clazz)
        Returns all instances of a given class and it's subclass.
        CAUTION: This class does not control the read access nor the pstatus of the publications.
        Type Parameters:
        T - an object class
        Parameters:
        clazz - the class
        Returns:
        all instances of a given class and it's subclass.
        Since:
        jcms-4.0
      • getAllDataSet

        public java.util.TreeSet<Data> getAllDataSet()
        Returns all the data of this site in a new TreeSet.
        CAUTION: This class does not control the read access of Publication.
        Returns:
        a new TreeSet of Data containing every Data of this site.
      • getDataSet

        public <T> java.util.TreeSet<T> getDataSet​(java.lang.String[] ids,
                                                   java.lang.Class<? extends T> clazz,
                                                   boolean neverNull)
        Returns a set of data from an array of idenfiers.
        Type Parameters:
        T - any data type
        Parameters:
        ids - an array of identifiers.
        clazz - the clazz of the identifiers (may be null, if the array is heterogeneous)
        neverNull - if true and if there is no results, return an empty set instead of null.
        Returns:
        a set of data.
        Since:
        jcms-6.0.0
      • getDataSet

        public java.util.TreeSet<?> getDataSet​(java.lang.String[] ids)
        Returns the instances associated to an array of ids. Bad ids are ignored (i.e. not added in the return set).
        CAUTION: This class does not control the read access of Publication.
        Parameters:
        ids - an array of ids
        Returns:
        a set of instances
      • getDataList

        public java.util.ArrayList<Data> getDataList​(java.lang.String[] ids)
        Returns the instances associated to an array of ids. Bad ids are ignored (i.e. not added in the return list). CAUTION: This class does not control the read access of Publication.
        Parameters:
        ids - an array of ids
        Returns:
        a set of instances
        See Also:
        for generic method
      • getDataList

        public <T extends Data> java.util.ArrayList<T> getDataList​(java.lang.String[] ids,
                                                                   boolean ignoreNull,
                                                                   java.lang.Class<T> clazz)
        Returns the data corresponding to the given array of data ids. Bad ids may be ignored (i.e. not added in the return list). The trailing null are systematically skipped. CAUTION: This class does not control the read access of Publication.
        Type Parameters:
        T - any data type
        Parameters:
        ids - an array of ids
        ignoreNull - if true, null are skipped
        clazz - a filter class
        Returns:
        a List of data
      • getAllPublicationSet

        public <T extends Publication> java.util.TreeSet<T> getAllPublicationSet​(java.lang.Class<T> clazz,
                                                                                 Member member)
        Returns all publications of a given class AND subclasses that can be accessed by a given member and that are in a visible state. If the member is null, it returns all the publications that have no read right.
        Type Parameters:
        T - any publication type
        Parameters:
        clazz - the class of instances to look for
        member - the member who access the publication set
        Returns:
        a set of instances (or an emtpy if clazz is not a subclass of Publication or there is no Publication)
        Since:
        jcms-4.1.1
      • getAllPublicationSet

        public <T extends Publication> java.util.TreeSet<T> getAllPublicationSet​(java.lang.Class<T> clazz,
                                                                                 Member member,
                                                                                 boolean checkPstatus)
        Returns all publications of a given class AND subclasses that can be accessed by a given member. If the given member is null, it returns all the publications that have no read right.
        Type Parameters:
        T - any publication type
        Parameters:
        clazz - the class of instances to look for
        member - the member who access the publication set
        checkPstatus - if true, select only the publications that are in a visible state.
        Returns:
        a set of instances (or an emtpy if clazz is not a subclass of Publication or there is no Publication)
        Since:
        jcms-5.0.0
      • getPublicationSet

        public <T extends Publication> java.util.TreeSet<T> getPublicationSet​(java.lang.Class<T> clazz,
                                                                              Member member)
        Returns all publications of a given class that can be accessed by a given member and that are in a visible state. If the member is null, it returns all the publications that have no read right.
        Type Parameters:
        T - any publication type
        Parameters:
        clazz - the class of instances to look for
        member - the member who access the publication set
        Returns:
        a set of instances (or an emtpy if clazz is not a subclass of Publication or there is no Publication)
        Since:
        jcms-2.1
      • getPublicationSet

        public <T extends Publication> java.util.TreeSet<T> getPublicationSet​(java.lang.Class<T> clazz,
                                                                              Member member,
                                                                              boolean checkPstatus)
        Returns all publications of a given class that can be accessed by a given member. If the member is null, it returns all the publications that have no read right.
        Type Parameters:
        T - any publication type
        Parameters:
        clazz - the class of instances to look for
        member - the member who access the publication set
        checkPstatus - if true, select only the publications that are in a visible state.
        Returns:
        a set of instances (or an emtpy if clazz is not a subclass of Publication or there is no Publication)
        Since:
        jcms-2.1
      • getPublicationSet

        public <T extends Publication> java.util.TreeSet<T> getPublicationSet​(java.lang.Class<T> clazz,
                                                                              Member member,
                                                                              boolean checkPstatus,
                                                                              Workspace workspace)
        Returns all publications of a given class that can be accessed by a given member. If the member is null, it returns all the publications that have no read right.
        Type Parameters:
        T - any publication type
        Parameters:
        clazz - the class of instances to look for
        member - the member who access the publication set
        checkPstatus - if true, select only the publications that are in a visible state.
        workspace - if not null select only the publications of this workspace
        Returns:
        a set of instances (or an emtpy if clazz is not a subclass of Publication or there is no Publication)
        Since:
        jcms-2.1
      • getPublicationSet

        public <T extends Publication> java.util.TreeSet<T> getPublicationSet​(java.lang.Class<T> clazz,
                                                                              Member member,
                                                                              boolean checkPstatus,
                                                                              Workspace workspace,
                                                                              boolean searchDB)
      • getPublicationSet

        public <T extends Publication> java.util.Set<T> getPublicationSet​(java.util.Set<T> publicationSet,
                                                                          boolean specialState)
        Return a SubSet of publication in or not in special state.
        Type Parameters:
        T - an object class
        Parameters:
        publicationSet - the set of publication
        specialState - true to filter of publication in special state.
        Returns:
        a Set of publication
      • getPublicationSet

        public java.util.Set<Publication> getPublicationSet​(java.util.Set<Publication> publicationSet,
                                                            Workflow wf)
        Return a SubSet of all publication using the given workflow
        Parameters:
        publicationSet - the set of publication
        wf - the workflow
        Returns:
        a Set of publication
      • getPublicationSetFromTitle

        public java.util.Set<Publication> getPublicationSetFromTitle​(java.lang.String title)
        Returns all publications with title in default site language matching the given title.
        Parameters:
        title - the title to be searched for.
        Returns:
        a set of publications
      • getPublicationSetFromTitle

        public java.util.Set<Publication> getPublicationSetFromTitle​(java.lang.String title,
                                                                     boolean searchInDB)
      • getFirstPublicationFromTitle

        public Publication getFirstPublicationFromTitle​(java.lang.String title)
        Returns the first publication with the title in default site language matching the given title.
        Parameters:
        title - the title to be searched for.
        Returns:
        the first publication with the title in default site language matching the given title.
        Since:
        jcms-5.7.2
      • getPublicationSetFromTitle

        public <T> java.util.Set<T> getPublicationSetFromTitle​(java.lang.Class<T> clazz,
                                                               java.lang.String title)
        Returns all publications of the given class with title in default site language matching the given title.
        Type Parameters:
        T - any Publication type
        Parameters:
        clazz - the class of the publication
        title - the title to be searched for.
        Returns:
        a set of publications
        Since:
        jcms-6.0.0
      • getFirstPublicationSetFromTitle

        public <T> T getFirstPublicationSetFromTitle​(java.lang.Class<T> clazz,
                                                     java.lang.String title)
        Returns the first publications of the given class with title in default site language matching the given title.
        Type Parameters:
        T - any Publication type
        Parameters:
        clazz - the class of the publication
        title - the title to be searched for.
        Returns:
        a publication
        Since:
        jcms-6.0.0
      • getPublicationWithoutCategories

        public java.util.HashSet<Publication> getPublicationWithoutCategories()
        Returns all the publications without categories in a new HashSet.
        Returns:
        a set of publications
        Since:
        jcms-5.5.0
      • isWebdavEnabled

        public boolean isWebdavEnabled()
        Check if Webdav is enable
        Returns:
        boolean true if webdav is enable
        Since:
        jcms-5.5.0
      • disableDataWrite

        public void disableDataWrite​(java.lang.String msg)
        Disable data write.
        Parameters:
        msg - the maintenance message.
        Since:
        jcms-5.5.0
        See Also:
        enableDataWrite(), isDataWriteEnabled()
      • handleDataWriteState

        public void handleDataWriteState​(boolean disable,
                                         java.lang.String msg,
                                         boolean updateProperty)
        Handle the given data write state and perform the update in properties if needed.
        Parameters:
        disable - if true disable data writes
        msg - the message
        updateProperty - if true update properties to persist data write stop.
        Since:
        JCMS-6.0
      • isDataWriteEnabled

        public boolean isDataWriteEnabled()
        Checks if data write are enabled (see channel.data-write.enabled property)
        Returns:
        true if data write are enabled
        Since:
        jcms-4.0.2
      • isWSAttachmentEnabled

        public boolean isWSAttachmentEnabled()
        Checks if ws attachment is enabled.
        Returns:
        true if ws attachment is enabled.
        Since:
        jcms-10.0.0
      • handleStoreError

        public void handleStoreError​(java.lang.String msg,
                                     java.lang.Throwable th)
        This method is called when a fatal error occurs on the store.
        Parameters:
        msg - the contextual error message.
        th - the original throwable
        Since:
        jcms-5.5.0
      • handleJcmsDBError

        public void handleJcmsDBError​(java.lang.String msg,
                                      java.lang.Throwable th)
        This method is called when a fatal error occurs on the JcmsDB.
        Parameters:
        msg - the contextual error message.
        th - the original throwable
        Since:
        jcms-6.1.3
      • getAdminSet

        public java.util.Set<Member> getAdminSet()
        Returns the set of administrators.
        Returns:
        the set of administrators.
        Since:
        jcms-8.0.0
      • updateData

        public void updateData​(Data updated,
                               Member opAuthor)
        Updates a data in the store. It does not update the given data, but the data bound to id of the given data. This methode should only be called on a temporary object. This is a low-level method. Since jcms-5.0.0, it is recommanded to use Data.performUpdate(Member) method.
        Parameters:
        updated - the data to be updated
        opAuthor - the member which performs the write operation (can be null)
        Since:
        jcms-5.0.0
        See Also:
        Data.performUpdate(com.jalios.jcms.Member)
      • select

        public <T> java.util.TreeSet<T> select​(java.util.Collection<? extends T> dataColl,
                                               DataSelector selector,
                                               java.util.Comparator comparator)
        Perform a selection on a Collection of Data using the given DataSelector, and return a TreeSet sorted using the given Comparator.
        If no Comparator is given, CdateComparator is used.
        Type Parameters:
        T - Any Data type
        Parameters:
        dataColl - the Collection of Data to select.
        selector - the DataSelector to use.
        comparator - the Comparator to use.
        Returns:
        a new or cloned TreeSet of Data.
        See Also:
        JcmsUtil.select(Collection, DataSelector, Comparator)
      • getQueryManager

        public QueryManager getQueryManager()
        Retrieve the singleton instance of the QueryManager used by JCMS.
        Returns:
        the QueryManager singleton.
      • query

        public QueryResultSet query​(QueryHandler qh,
                                    javax.servlet.ServletRequest request,
                                    java.util.Set<? extends Publication> proposedDataSet)
        Perform a query using parameters specified in the given QueryHandler.
        Search in the given Collection of Publication or in all Publication if not specified.
        Parameters:
        qh - the QueryHandler from which to retrieve the query parameters, MUST NOT be null.
        request - the ServletHttpRequest used to set some error or warning messages in the attributes, can be null.
        proposedDataSet - the Collection of Publication in which to search and apply query parameters, if null, search is done in all Publication.
        Returns:
        a QueryResultSet containing all results of this query, it is a HashSet and therefore it is NOT sorted. use either getAsSortedSet() or getAsSortedSet(Comparator) to obtain a sorted Set.
        Since:
        jcms-5.0.0
      • getMemberSearchEngine

        public LuceneMemberSearchEngine getMemberSearchEngine()
        Retrieve the singleton instance of the MemberSearchEngine used by JCMS.
        Returns:
        the LuceneMemberSearchEngine singleton.
        Since:
        jcms-6.1.0
      • getWSTypeEntry

        public WSTypeEntry getWSTypeEntry​(java.lang.Class clazz,
                                          Workspace workspace)
        This method is a substitute of old getTypeEntry(Class) or getTypeEntry(String). It return a WSTypeEntry that encapsulate a TypeEntry adding custom workspace properties. If workspace is null it will have the same behaviour has a TypeEntry but the method WSTypeEntry#getWorkflow() will throw a RuntimeException.
        Parameters:
        clazz - the Class of which to find the WSTypeEntry
        workspace - the workspace to use or null
        Returns:
        WSTypeEntry a wrapper of TypeEntry adding Workspace
        See Also:
        Workspace.getWSTypeEntry(Class)
      • getWSTypeEntry

        public WSTypeEntry getWSTypeEntry​(java.lang.String className,
                                          Workspace workspace)
        This method is a substitute of old getTypeEntry(Class) or getTypeEntry(String). It return a WSTypeEntry that encapsulate a TypeEntry adding custom workspace properties. If workspace is null it will have the same behaviour has a TypeEntry but the method WSTypeEntry#getWorkflow() will throw a RuntimeException.
        Parameters:
        className - the String representing the name the Class of which to find the WSTypeEntry
        workspace - the workspace to use or null
        Returns:
        WSTypeEntry a wrapper of TypeEntry adding Workspace
      • getTypeEntry

        public TypeEntry getTypeEntry​(java.lang.Class<?> clazz)
        Return the TypeEntry bound to given Class. Since jcms-5.5.0 should call #getTypeEntry(Class,Workspace)
        Parameters:
        clazz - the Class of which to find the TypeEntry
        Returns:
        the TypeEntry associated to the given class or null if not available.
        Since:
        jcms-3.0
        See Also:
        TypeProcessor.getTypeEntry(Class)
      • getTypeEntry

        public TypeEntry getTypeEntry​(java.lang.String className)
        Return the TypeEntry bound to given className.
        Parameters:
        className - the name the Class of which to find the TypeEntry
        Returns:
        the TypeEntry associated to the given class or null if not available.
        Since:
        jcms-5.5
        See Also:
        TypeProcessor.getTypeEntry(String)
      • getTypeAbstractFieldEntry

        public TypeFieldEntry getTypeAbstractFieldEntry​(java.lang.Class<?> clazz)
        Returns the TypeFieldEntry associated to the abstract (summary) field of the specified type.
        Parameters:
        clazz - the Class of which to find the TypeFieldEntry
        Returns:
        the TypeFieldEntry associated to the specified class or null if not available.
        Since:
        jcms-5.7.0
      • getTypeFieldEntry

        public TypeFieldEntry getTypeFieldEntry​(java.lang.Class<?> clazz,
                                                java.lang.String fieldName,
                                                boolean checkAll)
        Return the TypeFieldEntry associated to the given Class and fieldName.
        Parameters:
        clazz - the Class of which to find the TypeFieldEntry
        fieldName - the field name of which to find the TypeFieldEntry
        checkAll - whether to check in inherited field entry of the class.
        Returns:
        the TypeFieldEntry associated to the given class and fieldName or null if not available.
        Since:
        jcms-5.5.0
        See Also:
        getTypeFieldEntries(Class clazz), getAllTypeFieldEntries(Class clazz)
      • getTypeFieldEntry

        public TypeFieldEntry getTypeFieldEntry​(java.lang.Class<?> clazz,
                                                java.lang.String fieldName)
        Returns the TypeFieldEntry bound to the given field of the given class.
        Parameters:
        clazz - the class
        fieldName - the field name
        Returns:
        the TypeFieldEntry bound to the given field of the given class.
        Since:
        jcms-5.7.0
      • getTypeFieldLabel

        public java.lang.String getTypeFieldLabel​(java.lang.Class<?> clazz,
                                                  java.lang.String fieldName,
                                                  java.lang.String lang)
        Returns the localized label of the given field of the given class.
        Parameters:
        clazz - the class
        fieldName - the field name
        lang - the language in which localized the label
        Returns:
        the localized label of the given field of the given class.
        Since:
        jcms-5.7.0
      • getTypeFieldLabel

        public java.lang.String getTypeFieldLabel​(java.lang.Class<?> clazz,
                                                  java.lang.String fieldName)
        Returns the localized label of the given field of the given class. The localization is based on the current user language.
        Parameters:
        clazz - the class
        fieldName - the field name
        Returns:
        the localized label of the given field of the given class.
        Since:
        jcms-5.7.0
        See Also:
        getCurrentUserLang()
      • getTypeFieldLabel

        public java.lang.String getTypeFieldLabel​(Data data,
                                                  java.lang.String fieldName,
                                                  java.lang.String lang)
        Returns the localized label of the given field of the given data. The localization is based on the current user language.
        Parameters:
        data - the data
        fieldName - the field name
        lang - the language in which localized the label
        Returns:
        the localized label of the given field of the given data.
        Since:
        jcms-5.7.0
      • getTypeFieldLabel

        public java.lang.String getTypeFieldLabel​(Data data,
                                                  java.lang.String fieldName)
        Returns the localized label of the given field of the given data. The localization is based on the current user language.
        Parameters:
        data - the data
        fieldName - the field name
        Returns:
        the localized label of the given field of the given data.
        Since:
        jcms-5.7.0
        See Also:
        getCurrentUserLang()
      • getTypeFieldEntries

        public TypeFieldEntry[] getTypeFieldEntries​(java.lang.Class<?> clazz)
        Return an array of TypeFieldEntry bound to given Class.
        This array does not contain inherited TypeFieldEntry from super classes of given Class.
        Parameters:
        clazz - the Class of which to find the TypeFieldEntry.
        Returns:
        an array of TypeFieldEntry containing all Field used by Class or an empty array (never return null)
        Since:
        jcms-5.5.0
        See Also:
        TypeProcessor.getTypeFieldEntries(Class)
      • getTypeFieldEntries

        public TypeFieldEntry[] getTypeFieldEntries​(java.lang.String className)
        Return an array of TypeFieldEntry bound to given Class.
        This array does not contain inherited TypeFieldEntry from super classes of given Class.
        Parameters:
        className - the String representing the name the Class of which to find the TypeFieldEntry
        Returns:
        an array of TypeFieldEntry containing all Field used by Class or an empty array (never return null)
        Since:
        jcms-5.5.0
        See Also:
        TypeProcessor.getTypeFieldEntries(String)
      • getAllTypeFieldEntries

        public TypeFieldEntry[] getAllTypeFieldEntries​(java.lang.Class<?> clazz)
        Return an array of TypeFieldEntry bound to given Class.
        This array does contain inherited TypeFieldEntry from super classes of given Class.
        Parameters:
        clazz - the Class of which to find the TypeFieldEntry.
        Returns:
        an array of TypeFieldEntry containing all Field used by Class or an empty array (never return null)
        Since:
        jcms-5.5.0
        See Also:
        TypeProcessor.getAllTypeFieldEntries(Class)
      • getAllTypeFieldEntries

        public TypeFieldEntry[] getAllTypeFieldEntries​(java.lang.String className)
        Return an array of TypeFieldEntry bound to given Class name.
        This array does contain inherited TypeFieldEntry from super classes of given Class.
        Parameters:
        className - the String representing the name the Class of which to find the TypeFieldEntry
        Returns:
        an array of TypeFieldEntry containing all Field used by Class or an empty array (never return null)
        Since:
        jcms-5.5.0
        See Also:
        TypeProcessor.getAllTypeFieldEntries(String)
      • getTypeLabel

        public java.lang.String getTypeLabel​(java.lang.Class<?> clazz,
                                             java.lang.String lang)
        Returns the label of the given type (class) in the given language.
        Parameters:
        clazz - the class
        lang - the language
        Returns:
        the label of the given type (class) in the given language.
        Since:
        jcms-5.7.0
        See Also:
        getTypeLabel(Class, Workspace, String)
      • getTypeLabel

        public java.lang.String getTypeLabel​(java.lang.Class<?> clazz,
                                             Workspace workspace,
                                             java.lang.String lang)
        Returns the label of the given type (class) in the given workspace in the given language.
        Parameters:
        clazz - the class
        workspace - the Workspace
        lang - the language
        Returns:
        the label of the given type (class) in the given workspace in the given language.
        Since:
        jcms-5.5.0
        See Also:
        getTypeLabel(Class,String), Workspace.getTypeLabel(Class,String)
      • getTypeDescription

        public java.lang.String getTypeDescription​(java.lang.Class clazz,
                                                   java.lang.String lang)
        Returns the description of the given type (class) in the given language.
        Parameters:
        clazz - the class
        lang - the language
        Returns:
        the description of the given type (class) in the given language.
        Since:
        jcms-5.7.0
        See Also:
        getTypeDescription(Class, Workspace, String)
      • getTypeDescription

        public java.lang.String getTypeDescription​(java.lang.Class clazz,
                                                   Workspace workspace,
                                                   java.lang.String lang)
        Returns the description of the given type for the given workspace in the given language.
        Parameters:
        clazz - the class
        workspace - the Workspace
        lang - the language
        Returns:
        the description of the given type for the given workspace in the given language.
        Since:
        jcms-5.5.0
        See Also:
        getTypeLabel(Class,String), Workspace.getTypeDescription(Class,String)
      • isAvailable

        public boolean isAvailable()
        Check if the site is started and ready.
        Returns:
        true if site is available, false otherwise
        Since:
        jcms-5.0.
      • setAvailable

        public void setAvailable​(boolean isAvailable)
        Enable or disable the site.
        Warning! should be used very carefully.
        This methods can be used to improve speed when generating fake contents in JCMS as it disables some processes (checks and clones) performed to prevent Concurrent Modification Exceptions.
        Parameters:
        isAvailable - true to enable site, false to disable
        Since:
        jcms-5.0.
      • getClassLoader

        public java.lang.ClassLoader getClassLoader()
        Returns the classLoader
        Returns:
        the classLoader
        Since:
        jcms-5.5.0
      • getClass

        public java.lang.Class[] getClass​(java.lang.String[] clazzStr)
        Load and return classes
        Parameters:
        clazzStr - the full qualified name of the classes to load
        Returns:
        the loaded classes
      • getClassOrNull

        public java.lang.Class getClassOrNull​(java.lang.String className)
        Load and return a class
        Parameters:
        className - the full qualified name of the class to load (or null in an exception occured)
        Returns:
        the loaded class
        Since:
        jcms-10.0.5
      • getClass

        public java.lang.Class getClass​(java.lang.String className)
                                 throws java.lang.ClassNotFoundException
        Load and return a class
        Parameters:
        className - the full qualified name of the class to load
        Returns:
        the loaded class
        Throws:
        java.lang.ClassNotFoundException - if className cannot be found
        java.lang.IllegalStateException - if className represents a class generated by JCMS and such classes have not yet been generated and compiled. If thrown, the site must not been started.
      • getCustomTypeList

        public java.util.List getCustomTypeList()
        Return the list of custom publication types Class, that is all the Publication Class of package "generated.". CAUTION: returns an internal List, DO NOT alter this List, clone prior modification.
        Returns:
        an internal List of Class (caution: this list is always the same object. Do not modify it.)
        See Also:
        getCustomTypeList(), getPublicationTypeList()
      • getCustomExtensionMap

        public java.util.Map<java.lang.String,​java.lang.Class<?>> getCustomExtensionMap()
        Returns the map of String (Class) to data extension (Class).
        Usually:
        • "CategoryExtension" ==> class generated.CategoryExtension
        • "GroupExtension" ==> class generated.GroupExtension
        • "FileDocumentExtension" ==> class generated.FileDocumentExtension
        • "WorkspaceExtension" ==> class generated.WorkspaceExtension
        • "MemberExtension" ==> class generated.MemberExtension
        CAUTION: returns an internal Map, DO NOT alter this Map,clone prior modification.
        Returns:
        an internal Map of String to Class
      • getCustomExtensionCollection

        public java.util.Collection<java.lang.Class<?>> getCustomExtensionCollection()
        Returns all the DataExtension classes.
        Usually:
        • class generated.CategoryExtension
        • class generated.GroupExtension
        • class generated.FileDocumentExtension
        • class generated.WorkspaceExtension
        • class generated.MemberExtension
        Returns:
        a Collection of Class.
        Since:
        jcms-5.5.0
      • getUrl

        public java.lang.String getUrl()
        Returns the Url of the channel. This is the url to be used for content to be read outside the site (email, newsletter, etc).
        Returns:
        the base url of the channel
      • getName

        public java.lang.String getName()
        Returns the name of the channel
        Returns:
        the channel's name, e.g "JCMS".
      • getUrid

        public java.lang.String getUrid()
        Returns the urid of the channel
        Returns:
        the channel's urid, e.g "c".
        Since:
        jcms-4.0.2
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
        See Also:
        getName()
      • getJcmsInfo

        public JcmsInfo getJcmsInfo()
        Return a JcmsInfo instance (a singleton) which describe the JCMS version of this channel.
        Returns:
        a JcmsInfo instance
        Since:
        jcms-3.0
      • getHierarchicalWorkspaceLimit

        public int getHierarchicalWorkspaceLimit()
        Returns the hierarchical workspace limit define by property "hierarchical-ws.menu-limit".
        Returns:
        int
      • addChannelListener

        public void addChannelListener​(ChannelListener listener)
        Adds a ChannelListener.
        Parameters:
        listener - the ChannelListener to add
        Since:
        jcms-2.1
      • removeChannelListener

        public void removeChannelListener​(ChannelListener listener)
        Removes a ChannelListener.
        Parameters:
        listener - the ChannelListener to remove
        Since:
        jcms-2.1
      • addStoreListener

        public void addStoreListener​(StoreListener listener,
                                     java.lang.Class<?> clazz,
                                     boolean repeat)
        Adds a StoreListener associated to a given class. This listener will be notified each time an instance of this class will be created, updated or deleted.
        Parameters:
        listener - the StoreListener to add
        clazz - the class to listen to.
        repeat - If true, the listener will be called every time an operation is processed on the given class, that is during store load (if listener is added before store load) and for every following operation on every replica. If false, the listener will only be called the very first time the operation takes place, and only on the replica where it is done (also not during store load).
      • addStoreListener

        public void addStoreListener​(StoreListener listener,
                                     boolean repeat)
        Adds a StoreListener for all storable classes. This listener will be notified each time a storable will be created, updated or deleted.
        Parameters:
        listener - the StoreListener to add
        repeat - true if the listner must notify each time this operation is processed
      • removeStoreListener

        public void removeStoreListener​(StoreListener listener,
                                        java.lang.Class<?> clazz)
        Removes a StoreListener associated to a given class.
        Parameters:
        listener - the StoreListener to remove
        clazz - the class to listen to.
        Since:
        jcms-2.1
      • removeStoreListener

        public void removeStoreListener​(StoreListener listener)
        Removes a StoreListener for all storable classes.
        Parameters:
        listener - the StoreListener to remove
        Since:
        jcms-2.1
      • getStoreListenerSet

        public java.util.Set<StoreListener> getStoreListenerSet()
        Returns the set of StoreListener listening for all data.
        Returns:
        the set of StoreListener listening for all data.
        Since:
        jcms-5.5.0
      • getStoreListenerClassMap

        public java.util.Map<java.lang.Class<?>,​java.util.Set<StoreListener>> getStoreListenerClassMap()
        Returns the map class/StoreListener.
        Returns:
        the map class/StoreListener.
        Since:
        jcms-5.5.0
      • addDBListener

        public void addDBListener​(DBListener listener)
        Add a DBListener to listen to all the Data.
        Parameters:
        listener - the listener to be added.
        Since:
        jcms-6.0.0
      • addDBListener

        public void addDBListener​(DBListener listener,
                                  java.lang.Class<?> clazz)
        Add a DBListener to listen to the given class of data.
        Parameters:
        listener - the listener to be added.
        clazz - the class to listen to.
        Since:
        jcms-6.0.0
      • removeDBListener

        public void removeDBListener​(DBListener listener)
        Remove a DBListener.
        Parameters:
        listener - the listener to be removed.
        Since:
        jcms-6.0.0
      • removeDBListener

        public void removeDBListener​(DBListener listener,
                                     java.lang.Class<?> clazz)
        Remove a DBListener.
        Parameters:
        listener - the listener to be removed.
        clazz - the exact class that was being listened
        Since:
        jcms-6.0.0
      • addJSyncListener

        public void addJSyncListener​(JSyncListener listener)
        Adds a JSyncListener. This listener will be notified each time a JSyncEvent occurs
        Parameters:
        listener - the JSyncListener to add
        Since:
        jcms-9.0.0
      • removeJSyncListener

        public void removeJSyncListener​(JSyncListener listener)
        Removes a JSyncListener.
        Parameters:
        listener - the JSyncListener to remove
        Since:
        jcms-9.0.0
      • addDataController

        public void addDataController​(DataController dc,
                                      java.lang.Class<?> clazz)
        Add the given DataController
        Parameters:
        dc - the DataController to be added
        clazz - the clazz this DataController must control
        Since:
        jcms-5.0.0
      • removeDataController

        public void removeDataController​(DataController dc,
                                         java.lang.Class<?> clazz)
        Remove the given DataController
        Parameters:
        dc - the DataController to be removed
        clazz - the clazz this DataController controls
        Since:
        jcms-5.5.0
      • getDataControllerSet

        public java.util.Set<DataController> getDataControllerSet​(java.lang.Class<?> clazz)
        Parameters:
        clazz - the class
        Returns:
        all the DataController bound to the given class
        Since:
        jcms-5.0.0
      • getDataControllerMap

        public java.util.Map<java.lang.Class<?>,​java.util.Set<DataController>> getDataControllerMap()
        Returns the internal map class/DataController.
        CAUTION: returns an internal Map, DO NOT alter this Map unless you really know what you do.
        Returns:
        the internal map class/DataController.
        Since:
        jcms-5.5.0
      • addQueryFilter

        public void addQueryFilter​(QueryFilter qf)
        Add the given QueryFilter to the list of QueryFilters used by the QueryManager (getQueryManager()).
        Parameters:
        qf - the QueryFilter to be added
        Since:
        jcms-5.6.0
      • removeQueryFilter

        public void removeQueryFilter​(QueryFilter qf)
        Remove the given QueryFilter from the list of QueryFilters used by the QueryManager (getQueryManager()).
        Parameters:
        qf - the QueryFilter to be removed
        Since:
        jcms-5.6.0
      • addAuthenticationHandler

        public void addAuthenticationHandler​(AuthenticationHandler authHandler)
        Add the specified AuthenticationHandler to the list of AuthenticationHandlers used by the AuthenticationManager to process users' authentication.
        Parameters:
        authHandler - the AuthenticationHandler to be added
        Since:
        jcms-5.7.0
      • removeAuthenticationHandler

        public void removeAuthenticationHandler​(AuthenticationHandler authHandler)
        Remove the specified AuthenticationHandler from the list of AuthenticationHandlers used by the AuthenticationManager to process users' authentication.
        Parameters:
        authHandler - the AuthenticationHandler to be removed
        Since:
        jcms-5.7.0
      • getDataIntegrityReport

        public java.util.Map<Data,​ControllerStatus> getDataIntegrityReport​(boolean refresh)
        Checks the integrity constraints of all the data in the store.
        Parameters:
        refresh - if true recompute the report
        Returns:
        a map which contains for each data which does not respect integrity contraints, the key is the data and the value is a ControllerStatus
        Since:
        jcms-5.0.0
      • getDataIntegrityReportDate

        public java.util.Date getDataIntegrityReportDate()
        Returns the date of the last report generation.
        Returns:
        the date of the last report generation.
        Since:
        jcms-5.5.0
      • generateLogFromMemory

        public void generateLogFromMemory()
        Generates a cleaned version of the store.
        CAUTION:
        • All operations on deleted data are removed.
        • All update operations are integrated in a new creation operation (except cycling data references which are resolved in a second update step).
        The previous store is backuped with the extension .bak
      • cleanStore

        public void cleanStore​(CleanFilter filter,
                               JcmsContext context)
        Cleans the store. Data writes are disabled. The previous store is backuped with the extension .backup-date.
        Parameters:
        filter - the filter to apply
        context - current JcmsContext
        Since:
        jcms-5.5.0
      • addCleanFilter

        public void addCleanFilter​(CustomCleanFilter filter)
        Adds a custom clean filter.
        Parameters:
        filter - the filter to be added.
        Since:
        jcms-5.5.0
      • removeCleanFilter

        public void removeCleanFilter​(CustomCleanFilter filter)
        Removes a custom clean filter.
        Parameters:
        filter - the filter to be removed.
        Since:
        jcms-5.5.0
      • getCleanFilterList

        public java.util.List<CustomCleanFilter> getCleanFilterList()
        Returns the list of custom clean filters.
        Returns:
        the list of custom clean filters.
        Since:
        jcms-5.5.0
      • appendMilestone

        public void appendMilestone​(java.lang.String text)
        Appends a milestone in the store.
        Parameters:
        text - the text of the milestone.
        Since:
        jcms-5.5.0
        See Also:
        Store.appendMilestone(String)
      • getStoreLoadReport

        public LoadReport getStoreLoadReport()
        Returns the store load report
        Returns:
        the store load report
      • getStoreSize

        public int getStoreSize()
        Returns the size of the store (ie the data count) in bytes.
        Returns:
        the size of the store in bytes.
      • getStoreCreateCount

        public int getStoreCreateCount()
        Returns the count of create operations recorded in the store.
        Returns:
        the count of create operations.
      • getStoreUpdateCount

        public int getStoreUpdateCount()
        Returns the count of update operations recorded in the store.
        Returns:
        the count of update operations.
      • getStoreDeleteCount

        public int getStoreDeleteCount()
        Returns the count of delete operations recorded in the store.
        Returns:
        the count of delete operations.
      • getStore

        public Store getStore()
        Returns the store.
        Internal, DO NOT use.
        Returns:
        the internal Store object.
      • performStoreBackup

        public void performStoreBackup()
        Perform a backup of the store. The backup file is saved in the backup directory (the one defined by property store.backup-dir or, by default, WEB-INF/data/backup). If there are more than maximum of backup files (defined by property store.max-backup) the oldest backup file is removed.
        Since:
        jcms-5.7.0
      • getLockTimeout

        public long getLockTimeout()
        Return the lock timeout in milliseconds.

        See property channel.lock-timeout (warning : value must be in minutes!).

        Returns:
        a duration in milliseconds
      • getLocale

        public java.util.Locale getLocale()
        Return the locale of the channel
        Returns:
        a Locale, never return null
      • isTimeZoneEnabled

        public boolean isTimeZoneEnabled()
        Check if use of TimeZone is enable for this site.

        TimeZone support can be enabled/disabled with property channel.timezone.enabled: true/false.

        Returns:
        true if use of TimeZone is enabled, false otherwise
        Since:
        jcms-10.0.1 / JCMS-4865
      • getZoneId

        public java.time.ZoneId getZoneId()
        Retrieve the ZoneId of the Channel.

        If available uses TimeZone ID specified in property channel.default-timezone, otherwise default to default system TimeZone.

        Returns:
        a TimeZone, never return null, use system default zone id if none was specified in propery
        Since:
        jcms-10.0.1 / JCMS-4865
      • getDateTimeFormat

        public java.text.SimpleDateFormat getDateTimeFormat​(java.lang.String lang)
        Retrieve a Date formated suitable for parsing and formatting of date & time input of JCMS forms.
        Parameters:
        lang - the language in which the Date&Time will be formatted/parsed
        Returns:
        a date formatter based on the property {lang}.date-time-format
        Since:
        jcms-5.7.0
      • getDateFormat

        public java.text.SimpleDateFormat getDateFormat​(java.lang.String lang)
        Retrieve a Date formated suitable for parsing and formatting of date input of JCMS forms.
        Parameters:
        lang - the language in which the Date will be formatted/parsed
        Returns:
        a date formatter based on the property {lang}.date-format
        Since:
        jcms-5.7.0
      • getDateTimeFormatter

        public java.time.format.DateTimeFormatter getDateTimeFormatter​(java.lang.String lang)
        Retrieve a Date formated suitable for parsing and formatting of date & time input of JCMS forms.
        Parameters:
        lang - the language in which the Date&Time will be formatted/parsed
        Returns:
        a date formatter based on the property {lang}.date-time-format
        Since:
        jcms-10.0.1 / JCMS-4865
      • getDateFormatter

        public java.time.format.DateTimeFormatter getDateFormatter​(java.lang.String lang)
        Retrieve a Date formated suitable for parsing and formatting of date input of JCMS forms.
        Parameters:
        lang - the language in which the Date will be formatted/parsed
        Returns:
        a date formatter based on the property {lang}.date-format
        Since:
        jcms-10.0.1 / JCMS-4865
      • getLangValue

        public java.lang.Object getLangValue​(java.lang.String lang,
                                             boolean useDefault,
                                             java.lang.Object value,
                                             java.util.HashMap valueML,
                                             java.lang.String mainLanguage)
        Return a value bound to the given language
        Parameters:
        lang - the language to use
        useDefault - should the main language use as default
        value - the value in the main language
        valueML - the map of value of the other languages
        mainLanguage - the main language
        Returns:
        a String bound to the given language
        Since:
        jcms-5.7.0
      • getLangValue

        public java.lang.Object getLangValue​(java.lang.String lang,
                                             boolean useDefault,
                                             java.lang.Object value,
                                             java.util.HashMap valueML)
        Return a value bound to the given language
        Parameters:
        lang - the language to use
        useDefault - should the main language use as default
        value - the value in the main language
        valueML - the map of value of the other languages
        Returns:
        a String bound to the given language
        Since:
        jcms-5.7.0
      • getLangValue

        public java.lang.String getLangValue​(java.lang.String lang,
                                             boolean useDefault,
                                             java.lang.String value,
                                             java.util.HashMap valueML,
                                             java.lang.String mainLanguage)
        Return a value bound to the given language
        Parameters:
        lang - the language to use
        useDefault - should the main language use as default
        value - the value in the main language
        valueML - the map of value of the other languages
        mainLanguage - the main language
        Returns:
        a String bound to the given language (may be empty but never null)
        Since:
        jcms-5.5.0
      • getLangValue

        public java.lang.String getLangValue​(java.lang.String lang,
                                             boolean useDefault,
                                             java.lang.String value,
                                             java.util.HashMap valueML)
        Return a value bound to the given language
        Parameters:
        lang - the language to use
        useDefault - should the main language use as default
        value - the value in the main language
        valueML - the map of value of the other languages
        Returns:
        a String bound to the given language (may be empty but never null)
        Since:
        jcms-4.0
      • getLangValue

        public java.lang.Object[] getLangValue​(java.lang.String lang,
                                               boolean useDefault,
                                               java.lang.Object[] value,
                                               java.util.HashMap valueML,
                                               java.lang.String mainLanguage)
        Return a value bound to the given language
        Parameters:
        lang - the language to use
        useDefault - should the main language use as default
        value - the value in the main language
        valueML - the map of value of the other languages
        mainLanguage - the main language
        Returns:
        a String[] bound to the given language
        Since:
        jcms-5.7.0
      • getLangValue

        public java.lang.Object[] getLangValue​(java.lang.String lang,
                                               boolean useDefault,
                                               java.lang.Object[] value,
                                               java.util.HashMap valueML)
        Return a value bound to the given language
        Parameters:
        lang - the language to use
        useDefault - should the main language use as default
        value - the value in the main language
        valueML - the map of value of the other languages
        Returns:
        a String[] bound to the given language
        Since:
        jcms-5.7.0
      • getLangValue

        public java.lang.String[] getLangValue​(java.lang.String lang,
                                               boolean useDefault,
                                               java.lang.String[] value,
                                               java.util.HashMap valueML,
                                               java.lang.String mainLanguage)
        Return a value bound to the given language
        Parameters:
        lang - the language to use
        useDefault - should the main language use as default
        value - the value in the main language
        valueML - the map of value of the other languages
        mainLanguage - the main language
        Returns:
        a String[] bound to the given language
        Since:
        jcms-5.5.0
      • getLangValue

        public java.lang.String[] getLangValue​(java.lang.String lang,
                                               boolean useDefault,
                                               java.lang.String[] value,
                                               java.util.HashMap valueML)
        Return a value bound to the given language
        Parameters:
        lang - the language to use
        useDefault - should the main language use as default
        value - the value in the main language
        valueML - the map of value of the other languages
        Returns:
        a String[] bound to the given language
        Since:
        jcms-4.0
      • isMultilingual

        public boolean isMultilingual()
        Returns:
        true if the channel is multilingual i.e. getLanguageList() (channel.languages) contains more than one language.
        Since:
        jcms-4.0
        See Also:
        getLanguageList()
      • isMainLanguage

        public boolean isMainLanguage​(java.lang.String lang)
        Parameters:
        lang - the lang to check
        Returns:
        true if the given lang is the main language of the channel
        See Also:
        getLanguage()
      • isUsingAdvancedI18N

        public boolean isUsingAdvancedI18N()
        Indicates whether JCMS is in advanced internationalization mode. This mode controls some behavior of JCMS regarding language management:
        • if html 'lang' attribute should be precised when appropriate.
        • if css lang class '{iso639code}-lang' attribute should be precised when appropriate.
        Otherwise, none of this behavior will occur and the default language of the rendered page will be used.
        Returns:
        true if advances behavior are enable, false otherwise.
        Since:
        jcms-5.5.0
      • getLanguageDirection

        public java.lang.String getLanguageDirection​(java.lang.String lang)
        Retrieves the text/table direction to use for the given language.
        Parameters:
        lang - the ISO-639 code of the language to
        Returns:
        A String representing the text direction, "rtl" or "ltr", to use for a dir attribute inside an html tag as specified in the html spec. This method never returns null. see http://www.w3.org/TR/REC-html40/struct/dirlang.html
        Since:
        jcms-5.5.0
      • getUsedLanguage

        public java.lang.String getUsedLanguage​(Data data,
                                                java.lang.String fieldName,
                                                java.lang.String lang)
        Retrieve the language code really used if the field of the given publication is requested in the given language.
        Parameters:
        data - the Data or Publication of which to retrieve the field value
        fieldName - the field name to retrieve
        lang - the language in which the field was asked (ISO-639 code).
        Returns:
        an ISO-639 language code.
        Since:
        jcms-5.5.0
      • getLanguageList

        public java.util.List<java.lang.String> getLanguageList()
        Retrieve all the languages of this channel with the main language as the first one of the list.
        Returns:
        all the ISO-639 language code available for this channel, as defined with "channel.languages" property, the default language will be first in the list.
        Since:
        jcms-4.0
      • getLanguageListOrdered

        public java.util.List<java.lang.String> getLanguageListOrdered()
        Retrieve all the languages of this channel in the exact ordered in which they were specified in the properties.
        Returns:
        all the ISO-639 language code available for this channel, as defined with "channel.languages" property, the list will keep order in which they are specified in the property.
        Since:
        jcms-5.5.0
      • getOtherLanguageList

        public java.util.List<java.lang.String> getOtherLanguageList()
        Retrieve all the languages of this channel excepted the main language.
        Returns:
        all ISO-639 language code of this channel, minus the default language (i.e. getLanguageList() - getLanguage())
        Since:
        jcms-4.0
      • getLocalizedLanguageList

        public java.util.List<java.lang.String> getLocalizedLanguageList()
        Retrieves all the languages specified in the properties in which JCMS is localized.
        Returns:
        a List of ISO-639 language code.
      • getJcmsLanguageList

        public java.util.List<java.lang.String> getJcmsLanguageList()
        Retrieves all the languages in which JCMS is localized.
        Returns:
        a List of ISO-639 language code.
      • getLanguage

        public java.lang.String getLanguage()
        Returns:
        the main language of the site
      • getDefaultLanguage

        public java.lang.String getDefaultLanguage()
        Returns:
        the default language used to display data that are not translated in a given language.
        Since:
        jcms-10.0.5
      • getCountry

        public java.lang.String getCountry()
        Retrieve the default country of the site
        Returns:
        an ISO 3166 country code as used by java Locale
        Since:
        jcms-7.1
      • updateAndSaveProperties

        public void updateAndSaveProperties​(JProperties prop,
                                            boolean notifyListener)
        Updates and saves specified properties.
        Parameters:
        prop - the properties to be updated/saved.
        notifyListener - if true notify the JPropertyListeners
        Since:
        JCMS-9.0.0
        See Also:
        JProperties.updateAndSave(java.io.File)
      • containsProperty

        public boolean containsProperty​(java.lang.String name)
        Tests if this JProperties contains the given property key/name.
        Parameters:
        name - the key/name of the property to check
        Returns:
        true if the specified object is a key in this hashtable; false otherwise.
        See Also:
        JProperties.containsProperty(java.lang.String)
      • getProperty

        public java.lang.String getProperty​(java.lang.String name)
        Gets value of a property.
        Parameters:
        name - the key/name of the property to retrieve
        Returns:
        the property value
        See Also:
        JProperties.getProperty(java.lang.String)
      • getProperty

        public java.lang.String getProperty​(java.lang.String name,
                                            java.lang.String defaultValue)
        Gets the value of a property given its key/name.
        Parameters:
        name - the key/name of the property to retrieve
        defaultValue - the default value to use if the existing value is null.
        Returns:
        the value of a property given its key/name.
        See Also:
        JProperties.getProperty(java.lang.String, java.lang.String)
      • getBooleanProperty

        public boolean getBooleanProperty​(java.lang.String name,
                                          boolean defaultValue)
        Gets the value of a property as a boolean given its key/name.
        Parameters:
        name - the key/name of the property to retrieve
        defaultValue - the default value to use if the existing value is null or is neither "false" nor "true" (case sensitive).
        Returns:
        the boolean value of the property
        See Also:
        JProperties.getBooleanProperty(java.lang.String, boolean)
      • getIntegerProperty

        public int getIntegerProperty​(java.lang.String name,
                                      int defaultValue)
        Gets the value of a property as an int value given its key/name.
        Parameters:
        name - the key/name of the property to retrieve
        defaultValue - the default value to use if the existing value is null or if Integer.parseInt() throws exception during String to int conversion.
        Returns:
        the int value of the property
        See Also:
        JProperties.getIntegerProperty(java.lang.String, int)
      • getLongProperty

        public long getLongProperty​(java.lang.String name,
                                    long defaultValue)
        Gets the value of a property as a long value given its key/name.
        Parameters:
        name - the key/name of the property to retrieve
        defaultValue - the default value to use if the existing value is null or if Long.parseLong() throws exception during String to long conversion.
        Returns:
        the long value of the property
        See Also:
        JProperties.getLongProperty(java.lang.String, long)
      • getFloatProperty

        public float getFloatProperty​(java.lang.String name,
                                      float defaultValue)
        Gets the value of a property as a float value given its key/name.
        Parameters:
        name - the key/name of the property to retrieve
        defaultValue - the default value to use if the existing value is null or if Float.parseFloat() throws exception during String to float conversion.
        Returns:
        the float value of the property
        See Also:
        JProperties.getFloatProperty(java.lang.String, float)
      • getDoubleProperty

        public double getDoubleProperty​(java.lang.String name,
                                        double defaultValue)
        Gets the value of a property as a double value given its key/name.
        Parameters:
        name - the key/name of the property to retrieve
        defaultValue - the default value to use if the existing value is null or if Double.parseDouble() throws exception during String to double conversion.
        Returns:
        the double value of the property
        See Also:
        JProperties.getDoubleProperty(java.lang.String, double)
      • getStringArrayProperty

        public java.lang.String[] getStringArrayProperty​(java.lang.String name,
                                                         java.lang.String[] defaultValue)
        Gets the value of a property as a String array.

        The property value must be in one of the following forms:

        • "@{delim}value1{delim}value2...", where {delim} is one character delimiter of your choice.
        • "value1{delim}value2{delim}...", where {delim} is a character from \t\n\r\f.
        For example :
           String[] array = prop.getStringArrayProperty("missingexample", new String[] { "default", "value"});
           assertEquals(2, array.length);
           assertEquals("default", array[0]);
           assertEquals("value", array[1]);
           
           prop.setProperty("example1", "@|abc|def");
           String[] array1 = prop.getStringArrayProperty("example1", new String[] { });
           assertEquals(2, array1.length);
           assertEquals("abc", array1[0]);
           assertEquals("def", array1[1]);
          
           prop.setProperty("example2", "foo bar\tzig");
           String[] array2 = prop.getStringArrayProperty("example2", new String[] { });
           assertEquals(3, array2.length);
           assertEquals("foo", array2[0]);
           assertEquals("bar", array2[1]);
           assertEquals("zig", array2[2]);
         
        Parameters:
        name - the key/name of the property to retrieve
        defaultValue - the default value to use if the existing value is null or no values could be found in the conversion.
        Returns:
        a String array
        See Also:
        JProperties.getStringArrayProperty(java.lang.String,java.lang.String[])
      • getIntArrayProperty

        public int[] getIntArrayProperty​(java.lang.String name,
                                         int[] defaultValue)
        Gets the value of a property as a int array. Uses same format of getStringArrayProperty(String, String[]).
        Parameters:
        name - the key/name of the property to retrieve
        defaultValue - the default value to use if the existing value is null or no values could be found in the conversion.
        Returns:
        an int array
        See Also:
        JProperties.getIntArrayProperty(java.lang.String,int[])
      • getChannelProperties

        public JProperties getChannelProperties()
        Returns the internal properties used by channel.
        As of version 5.5 those properties are the same as getLanguageProperties() but may differ in a future revision. Do not change any JCMS property at runtime, behaviour of JCMS maybe incorrect if you do so, use the user interface for such task. However you can modify any of your own properties.
        Returns:
        the internal LangProperties of this channel.
      • getLanguageProperties

        public LangProperties getLanguageProperties()
        Gets the internal language properties used by channel.
        As of version 5.5 those properties are the same as getChannelProperties() but may differ in a future revision. Do not change any JCMS property at runtime, behaviour of JCMS maybe incorrect if you do so, use the user interface for such task. However you can modify any of your own properties.
        Returns:
        the internal LangProperties of this channel.
        Since:
        jcms-5.5.0
      • getProperties

        public LangProperties getProperties​(java.lang.String prefix)
        Gets a new LangProperties instance containg all the properties whose name starts with the given prefix.
        Parameters:
        prefix - the prefix
        Returns:
        a new instance of LangProperties containing found properties
        See Also:
        LangProperties.getProperties(java.lang.String)
      • getSortedProperties

        public java.util.Map<java.lang.String,​java.lang.String> getSortedProperties​(java.lang.String prefix)
        Returns a Map containing all the properties whose name starts with the given prefix sorted by key.
        Parameters:
        prefix - the prefix
        Returns:
        a new instance of Map containing found properties sorted by key
        See Also:
        LangProperties.getProperties(java.lang.String)
      • getSortedProperties

        public java.util.Map<java.lang.String,​java.lang.String> getSortedProperties​(java.lang.String prefix,
                                                                                          boolean trim)
        Returns a Map containing all the properties whose name starts with the given prefix sorted by key. If boolean trim is set to true then remove prefix from key before sorting.
        Parameters:
        prefix - the prefix
        trim - boolean true to remove prefix from key
        Returns:
        a new instance of Map containing found properties with truncated key
        See Also:
        getSortedProperties(java.lang.String)
      • getSubProperties

        public java.util.Map<java.lang.String,​java.lang.Object> getSubProperties​(java.lang.String prefix)
        Parameters:
        prefix - the prefix
        Returns:
        a map with string as the key and either String or JProperties as the value.
        See Also:
        JProperties.getSubProperties(java.lang.String)
      • setProperty

        public void setProperty​(java.lang.String name,
                                java.lang.String value)
        Modify an internal property with the given value.
        Do not change any JCMS property at runtime, behaviour of JCMS maybe incorrect if you do so, use the user interface for such task. However you can modify any of your own properties.
        Parameters:
        name - the name/key of the property to change
        value - the new value of this propert
        See Also:
        JProperties.setProperty(String, String)
      • addPropertiesListener

        public void addPropertiesListener​(JPropertiesListener listener)
        Adds a properties listener.
        Parameters:
        listener - the properties listener
        Since:
        jcms-6.0.0
      • removePropertiesListener

        public void removePropertiesListener​(JPropertiesListener listener)
        Removes a properties listener.
        Parameters:
        listener - the properties listener
        Since:
        jcms-6.0.0
      • addHttpHeaders

        public void addHttpHeaders​(javax.servlet.http.HttpServletResponse response)
        An internal method used to add HTTP headers in the response.

        HTTP headers are read from properties channel.http-header.{HTTP-Header-Name}: {HTTP-Header-Value} Exclude JSP(s) may be specified in property channel.http-header-excluded: {exclude-jsp-name-1} {exclude-jsp-name-2} ....

        Parameters:
        response - the response
        Since:
        jcms-8.0.1
      • addGlobalHttpHeaders

        public void addGlobalHttpHeaders​(javax.servlet.http.HttpServletRequest request,
                                         javax.servlet.http.HttpServletResponse response)
        An internal method used to add HTTP headers in the response.

        HTTP headers are read from properties channel.global-http-header.{HTTP-Header-Name}: {HTTP-Header-Value} Exclude servlet path(s) may be specified in property channel.global-http-header-excluded: {exclude-servlet-path-1} {exclude-servlet-path-2} ....

        Parameters:
        request - the current HttpServletRequest
        response - the current HttpServletResponse
        Since:
        jcms-10.0.1 / JCMS-6392
      • getCommonGroupSet

        public java.util.Set<Group> getCommonGroupSet()
        Return all the global groups
        Returns:
        Set a set of groups
      • getWorkspaceSet

        public java.util.Set<Workspace> getWorkspaceSet​(Workflow wf)
        Return a Set of Workspace that use the given Workflow
        Parameters:
        wf - the Workflow to look for
        Returns:
        a Set of Workspace
      • setCurrentServletRequest

        public void setCurrentServletRequest​(javax.servlet.http.HttpServletRequest request)
        Assigns the current servlet request. This method should only be called once by initFilter.
        Parameters:
        request - the ServletRequest
        Since:
        jcms-5.5.0
      • clearCurrentServletRequest

        public void clearCurrentServletRequest()
        Removes the current servlet request of the thread. This method should only be called once by initFilter.
        Since:
        jcms-5.5.0
      • getCurrentServletRequest

        public javax.servlet.http.HttpServletRequest getCurrentServletRequest()
        Returns the current servlet request. It returns a not null value only if it is called in a servlet/jsp context.
        Returns:
        the current servlet request or null.
        Since:
        jcms-5.5.0
        See Also:
        getCurrentJcmsContext()
      • setCurrentServletResponse

        public void setCurrentServletResponse​(javax.servlet.http.HttpServletResponse response)
        Assigns the current servlet response. This method should only be called once by initFilter.
        Parameters:
        response - the ServletResponse
        Since:
        jcms-6.0.0.
      • clearCurrentServletResponse

        public void clearCurrentServletResponse()
        Removes the current servlet response of the thread. This method should only be called once by initFilter.
        Since:
        jcms-6.0.0
      • getCurrentServletResponse

        public javax.servlet.http.HttpServletResponse getCurrentServletResponse()
        Returns the current servlet response. It returns a not null value only if it is called in a servlet/jsp context.
        Returns:
        the current servlet response or null.
        Since:
        jcms-6.0.0
        See Also:
        getCurrentJcmsContext()
      • getCurrentRequestAttribute

        public java.lang.Object getCurrentRequestAttribute​(java.lang.String name)
        Returns the value of the given request attribute
        Parameters:
        name - the name of the attribute
        Returns:
        the value of the attribute
        Since:
        jcms-10.0.7
      • setCurrentRequestAttribute

        public void setCurrentRequestAttribute​(java.lang.String name,
                                               java.lang.Object value)
        Sets the given request attribute with the given value
        Parameters:
        name - the name of the attribute
        value - the value of the attribute
        Since:
        jcms-10.0.7
      • getCurrentJcmsContext

        public JcmsContext getCurrentJcmsContext()
        Returns the JcmsContext of the current servlet request of the current thread.
        It returns a null value if it is not called in a jsp context. It must not be called from Servlet or ServletFilter as the JcmsContext has not yet been initialized (doInitPage.jsp) and will always return null in such case.
        Returns:
        the JcmsContext instance associated with the current servlet request, returns null if the current thread has no Servlet Request or if the JcmsContext instance has not yet been initialized.
        Since:
        jcms-5.5.0
        See Also:
        getCurrentServletRequest()
      • getCurrentUserLang

        public java.lang.String getCurrentUserLang()
        Returns the user language if it is available (i.e. if called during a user request). Otherwise it returns the main language.
        Returns:
        either the user language or the main language.
        Since:
        jcms-5.7.0
      • getCurrentUserLocale

        public java.util.Locale getCurrentUserLocale()
        Returns the user Locale if it is available (i.e. if called during a user request). Otherwise it returns the Locale of the site's language.
        Returns:
        either the user's Locale or the site's Locale.
        Since:
        jcms-5.7.3
      • getCurrentUserZoneId

        public java.time.ZoneId getCurrentUserZoneId()
        Returns the user ZoneId if it is available (i.e. if called during a user request). Otherwise it returns the ZoneId of the site.
        Returns:
        either the user's ZoneId or the site's ZoneId.
        Since:
        jcms-10.0.1 / JCMS-4865
      • getCurrentLoggedMember

        public Member getCurrentLoggedMember()
        Returns the Member currently loggued in for the current request.
        This method must be called during a user request to work otherwise it returns null.
        Returns:
        the Member logged for the current request, or null if user is not logged in.
        Since:
        jcms-5.7.2
      • getCurrentDelegateMember

        public Member getCurrentDelegateMember()
        Returns the original Member of the current session if he has connected to another account since then (using JCMS_sulogin feature).
        Uses DelegationAuthenticationHandler.getSuHistory(HttpServletRequest).
        Used by internal method during data creation/update/delete to correctly set the opDelegate field of any Data.

        This method must be called during a user request to work otherwise it returns null.
        Returns:
        the original Member who created the current session, or null if there has been no changes.
        Since:
        jcms-5.7.0
      • isFailSafeMode

        public boolean isFailSafeMode()
      • getCsTypologyRootCat

        public Category getCsTypologyRootCat()
        Returns:
        the csTypologyRootCat CollaborativeSpace typology root category if any.
        Since:
        jcms-10.0.7