Class DamLanguageUtil


  • public class DamLanguageUtil
    extends java.lang.Object
    This class provides utility method for Language Copy used by sites
    • Field Detail

      • ATTRIBUTE_ASSET_LINKS_RELATION

        public static final java.lang.String ATTRIBUTE_ASSET_LINKS_RELATION
        See Also:
        Constant Field Values
      • ATTRIBUTE_ASSET_SOURCE_RELATION

        public static final java.lang.String ATTRIBUTE_ASSET_SOURCE_RELATION
        See Also:
        Constant Field Values
      • ATTRIBUTE_ASSET_UPDATE_REQUIRED

        public static final java.lang.String ATTRIBUTE_ASSET_UPDATE_REQUIRED
        See Also:
        Constant Field Values
      • ATTRIBUTE_COLLECTION_SOURCE_LANGUAGE_COPY

        public static final java.lang.String ATTRIBUTE_COLLECTION_SOURCE_LANGUAGE_COPY
        See Also:
        Constant Field Values
      • ATTRIBUTE_CQ_TRANSLATION_LAST_UPDATE

        public static final java.lang.String ATTRIBUTE_CQ_TRANSLATION_LAST_UPDATE
        See Also:
        Constant Field Values
    • Constructor Detail

      • DamLanguageUtil

        public DamLanguageUtil()
    • Method Detail

      • hasLanguageCopy

        public static boolean hasLanguageCopy​(java.lang.String assetPath,
                                              java.lang.String languageCode,
                                              ResourceResolver resolver)
        This method returns true if language copy of an asset exists, for the asked locale
        Parameters:
        assetPath - The path of an asset for which language copy is asked
        languageCode - Language for which language copy is asked
        resolver - ResourceResolver
        Returns:
      • getLanguageCopy

        public static Asset getLanguageCopy​(java.lang.String assetPath,
                                            java.lang.String languageCode,
                                            ResourceResolver resolver)
        This method returns the Language copy asset if language copy exists, for the asked locale
        Parameters:
        assetPath - The path of an asset for which language copy is asked
        languageCode - Language for which language copy is asked
        resolver - ResourceResolver
        Returns:
      • createLanguageCopy

        public static java.util.List<java.lang.String> createLanguageCopy​(ResourceResolver resourceResolver,
                                                                          PageManagerFactory pageManagerFactory,
                                                                          java.lang.String sourcePath,
                                                                          java.lang.String[] targetLanguageCodes)
        This method creates language copy of an asset/folder Adds Smart translation properties when language copy is present
        Parameters:
        resourceResolver -
        pageManagerFactory -
        sourcePath - - source for creating language copy
        targetLanguageCodes - - array of language codes
        Returns:
      • getLanguageRoot

        @Deprecated
        public static java.lang.String getLanguageRoot​(java.lang.String path)
        Deprecated.
        since 6.2, use LanguageUtil instead
        Returns the language root for the given asset path by only analyzing the path names starting at the root. For this implementation, language root for dam was suffix of folder name joined by "-" ex. geometrixx-en.
        Parameters:
        path - path
        Returns:
        the language root or null if not found
      • getLanguage

        @Deprecated
        public static Language getLanguage​(java.lang.String path)
        Deprecated.
        since 6.2, use LanguageUtil instead
        Returns the language for the given asset path by only analyzing the path names starting at the root. For this implementation, language root for dam was suffix of folder name joined by "-" ex. geometrixx-en.
        Parameters:
        path - path
        Returns:
        the language or null if not found
      • getLanguageRoots

        public static java.util.Collection<Resource> getLanguageRoots​(ResourceResolver resolver,
                                                                      java.lang.String path)
        Modified version of com.day.cq.wcm.core.impl.LanguageManagerImpl for Resources Returns a collection of language root pages for the given asset. Note that only the path names are respected for the determination of the language.
        Parameters:
        resolver - resource resolver
        path - path of the current page
        Returns:
        collection of language root paths
      • createUpdateLanguageCopy

        public static java.lang.String createUpdateLanguageCopy​(ResourceResolver resourceResolver,
                                                                PageManagerFactory pageManagerFactory,
                                                                java.lang.String sourcePath,
                                                                java.lang.String targetLanguageCode,
                                                                java.lang.String prefixPath)
        This method creates update language copy of an asset/folder
        Parameters:
        resourceResolver -
        pageManagerFactory -
        sourcePath - - source for creating language copy
        targetLanguageCode - - destination language code
        prefixPath - - Root path where language copies are created
        Returns:
      • moveUpdatedAsset

        public static void moveUpdatedAsset​(java.lang.String sourcePath,
                                            java.lang.String destinationPath,
                                            Session userSession,
                                            PageManagerFactory pageManagerFactory,
                                            ResourceResolver resourceResolver)
      • replaceUpdatedAsset

        public static void replaceUpdatedAsset​(java.lang.String sourcePath,
                                               java.lang.String destinationPath,
                                               Session userSession,
                                               PageManagerFactory pageManagerFactory,
                                               ResourceResolver resourceResolver)
        Update the destination asset with all updates done on source asset. It will not trigger Asset Processor or Update Asset workflow for the updated asset. Caller of the method should trigger Asset Processor or Update Workflow for the updated asset to create the renditions of the updated asset.
        Parameters:
        sourcePath - Source Path of Asset
        destinationPath - Destination Path of Asset
        userSession - Will be used to save the session.
        pageManagerFactory - Will be use to get pageManager
        resourceResolver - Will be used to get the resource
      • isSmartAssetUpdateRequired

        public static boolean isSmartAssetUpdateRequired​(Asset sourceAsset,
                                                         Asset destinationAsset)
      • createLanguageCopyWithAssetRelations

        public static java.util.List<java.lang.String> createLanguageCopyWithAssetRelations​(ResourceResolver resourceResolver,
                                                                                            PageManagerFactory pageManagerFactory,
                                                                                            java.lang.String sourcePath,
                                                                                            java.lang.String[] targetLanguageCodes)
                                                                                     throws RepositoryException
        This method creates language copy of an asset/folder and its source(for example psd for jpeg). Information about language copy which triggered translation is added in case temporary asset translation is required. Finally, relations are changed with their language copies.
        Parameters:
        resourceResolver -
        pageManagerFactory -
        sourcePath - - source for creating language copy
        targetLanguageCodes - - array of language codes
        Returns:
        list of created language copies
        Throws:
        RepositoryException
      • getRelatedAssets

        public static java.util.List<Asset> getRelatedAssets​(Resource resource,
                                                             java.lang.String relationName)
      • createUpdateLanguageCopyWithAssetRelations

        public static java.lang.String createUpdateLanguageCopyWithAssetRelations​(ResourceResolver resourceResolver,
                                                                                  PageManagerFactory pageManagerFactory,
                                                                                  java.lang.String destinationPath,
                                                                                  java.lang.String targetLanguageCode,
                                                                                  java.lang.String prefixPath)
                                                                           throws RepositoryException
        This method creates temporary language copy of an asset/folder and its source(for example psd for jpeg) in case temporary asset translation is required. Finally, relations are changed with their temporary copies.
        Parameters:
        resourceResolver -
        pageManagerFactory -
        destinationPath - - source for creating language copy
        targetLanguageCode - - destination language code
        prefixPath - - Root path where language copies are created
        Returns:
        created variant temporary language copy path if created, otherwise returns destinationPath
        Throws:
        RepositoryException
      • findLanguageCopyPathWithAutoCreatedRoots

        public static java.lang.String findLanguageCopyPathWithAutoCreatedRoots​(java.lang.String assetPath,
                                                                                java.lang.String languageCode,
                                                                                ResourceResolver resolver)
      • findLanguageCopyWithAutoCreatedRoots

        public static Asset findLanguageCopyWithAutoCreatedRoots​(java.lang.String assetPath,
                                                                 java.lang.String languageCode,
                                                                 ResourceResolver resolver)
      • getLanguageRootLocale

        public static java.lang.String getLanguageRootLocale​(java.lang.String path)
        Returns the locale for the given path. Supports language root structures /<root>/\<path>lt;Language>_\<Country> and /\<root>lt;path>lt;Language>
        Parameters:
        path -
        Returns:
        locale or null in case any supported locale does not exist in the given path
      • getLanguageDisplayName

        public static java.lang.String getLanguageDisplayName​(ResourceResolver resolver,
                                                              java.lang.String langCode)
      • replaceWithExistingLanguageCopiesIfPossible

        public static java.util.List<java.lang.String> replaceWithExistingLanguageCopiesIfPossible​(java.util.List<java.lang.String> paths,
                                                                                                   java.lang.String destinationLanguageCode,
                                                                                                   ResourceResolver resourceResolver)
        Returns a list after replacing paths with their existing language copies. If a language copy of a path does not exist, the path is retained in the returned list.
        Parameters:
        paths - The list of paths whose language copy has to be replaced
        destinationLanguageCode - language code of destination language copy
        resourceResolver -
        Returns:
        a list after replacing paths with their existing language copies.