Class DamLanguageUtil

java.lang.Object
com.day.cq.dam.commons.util.DamLanguageUtil

public class DamLanguageUtil extends Object
This class provides utility method for Language Copy used by sites
  • Field Details

  • Constructor Details

    • DamLanguageUtil

      public DamLanguageUtil()
  • Method Details

    • hasLanguageCopy

      public static boolean hasLanguageCopy(String assetPath, 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(String assetPath, 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 List<String> createLanguageCopy(ResourceResolver resourceResolver, PageManagerFactory pageManagerFactory, String sourcePath, 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 String getLanguageRoot(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(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 Collection<Resource> getLanguageRoots(ResourceResolver resolver, 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 String createUpdateLanguageCopy(ResourceResolver resourceResolver, PageManagerFactory pageManagerFactory, String sourcePath, String targetLanguageCode, 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

      @Deprecated public static void moveUpdatedAsset(String sourcePath, String destinationPath, Session userSession, PageManagerFactory pageManagerFactory, ResourceResolverFactory resolverFactory)
      Parameters:
      sourcePath -
      destinationPath -
      userSession -
      pageManagerFactory -
      resolverFactory -
    • moveUpdatedAsset

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

      public static void replaceUpdatedAsset(String sourcePath, 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)
    • addSmartAssetUpdateFlag

      @Deprecated public static void addSmartAssetUpdateFlag(Asset destinationAsset) throws RepositoryException
      Deprecated.
      Throws:
      RepositoryException
    • addSmartAssetUpdateSource

      public static void addSmartAssetUpdateSource(Asset destinationAsset, String sourcePath) throws RepositoryException
      Throws:
      RepositoryException
    • createLanguageCopyWithAssetRelations

      public static List<String> createLanguageCopyWithAssetRelations(ResourceResolver resourceResolver, PageManagerFactory pageManagerFactory, String sourcePath, 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
    • createLanguageCopyWithAssetRelationsForAsset

      public static List<String> createLanguageCopyWithAssetRelationsForAsset(ResourceResolver resourceResolver, PageManagerFactory pageManagerFactory, String sourcePath, String[] targetLanguageCodes) throws RepositoryException
      Throws:
      RepositoryException
    • createLanguageCopyWithAssetRelationsForNTFolder

      public static List<String> createLanguageCopyWithAssetRelationsForNTFolder(ResourceResolver resourceResolver, PageManagerFactory pageManagerFactory, String sourcePath, String[] targetLanguageCodes) throws RepositoryException
      Throws:
      RepositoryException
    • getRelatedAssets

      public static List<Asset> getRelatedAssets(Resource resource, String relationName)
    • createUpdateLanguageCopyWithAssetRelations

      public static String createUpdateLanguageCopyWithAssetRelations(ResourceResolver resourceResolver, PageManagerFactory pageManagerFactory, String destinationPath, String targetLanguageCode, 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 String findLanguageCopyPathWithAutoCreatedRoots(String assetPath, String languageCode, ResourceResolver resolver)
    • findLanguageCopyWithAutoCreatedRootsForAssetOrNTFolder

      public static Resource findLanguageCopyWithAutoCreatedRootsForAssetOrNTFolder(Resource resource, String languageCode, ResourceResolver resolver) throws RepositoryException
      Throws:
      RepositoryException
    • findLanguageCopyWithAutoCreatedRoots

      public static Asset findLanguageCopyWithAutoCreatedRoots(String assetPath, String languageCode, ResourceResolver resolver)
    • afterReplacingUpdatedAsset

      public static void afterReplacingUpdatedAsset(String destinationPath, Session userSession, String prefixPath, ResourceResolver resourceResolver) throws RepositoryException
      Throws:
      RepositoryException
    • getLanguageRootLocale

      public static String getLanguageRootLocale(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 String getLanguageDisplayName(ResourceResolver resolver, String langCode)
    • replaceWithExistingLanguageCopiesIfPossible

      public static List<String> replaceWithExistingLanguageCopiesIfPossible(List<String> paths, 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.
    • getAssetsFromAssociatedContent

      public static ArrayList<Asset> getAssetsFromAssociatedContent(Node contentFragmentNode, String destinationLanguage, ResourceResolver resourceResolver) throws RepositoryException
      Throws:
      RepositoryException
    • getUserResourceResolverFromUserId

      public static ResourceResolver getUserResourceResolverFromUserId(SlingRepository slingRepository, ResourceResolverFactory resolverFactory, String userId, String serviceUser) throws LoginException, RepositoryException
      Throws:
      LoginException
      RepositoryException