Package com.day.cq.dam.commons.util
Class DamLanguageUtil
java.lang.Object
com.day.cq.dam.commons.util.DamLanguageUtil
This class provides utility method for Language Copy used by sites
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic void
addSmartAssetUpdateFlag
(Asset destinationAsset) Deprecated.static void
addSmartAssetUpdateSource
(Asset destinationAsset, String sourcePath) static void
afterReplacingUpdatedAsset
(String destinationPath, Session userSession, String prefixPath, ResourceResolver resourceResolver) 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 presentcreateLanguageCopyWithAssetRelations
(ResourceResolver resourceResolver, PageManagerFactory pageManagerFactory, String sourcePath, String[] targetLanguageCodes) This method creates language copy of an asset/folder and its source(for example psd for jpeg).createLanguageCopyWithAssetRelationsForAsset
(ResourceResolver resourceResolver, PageManagerFactory pageManagerFactory, String sourcePath, String[] targetLanguageCodes) createLanguageCopyWithAssetRelationsForNTFolder
(ResourceResolver resourceResolver, PageManagerFactory pageManagerFactory, String sourcePath, String[] targetLanguageCodes) static String
createUpdateLanguageCopy
(ResourceResolver resourceResolver, PageManagerFactory pageManagerFactory, String sourcePath, String targetLanguageCode, String prefixPath) This method creates update language copy of an asset/folderstatic String
createUpdateLanguageCopyWithAssetRelations
(ResourceResolver resourceResolver, PageManagerFactory pageManagerFactory, String destinationPath, String targetLanguageCode, String prefixPath) 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.static String
findLanguageCopyPathWithAutoCreatedRoots
(String assetPath, String languageCode, ResourceResolver resolver) static Asset
findLanguageCopyWithAutoCreatedRoots
(String assetPath, String languageCode, ResourceResolver resolver) static Resource
findLanguageCopyWithAutoCreatedRootsForAssetOrNTFolder
(Resource resource, String languageCode, ResourceResolver resolver) getAssetsFromAssociatedContent
(Node contentFragmentNode, String destinationLanguage, ResourceResolver resourceResolver) static Language
getLanguage
(String path) Deprecated.static Asset
getLanguageCopy
(String assetPath, String languageCode, ResourceResolver resolver) This method returns the Language copy asset if language copy exists, for the asked localestatic String
getLanguageDisplayName
(ResourceResolver resolver, String langCode) static String
getLanguageRoot
(String path) Deprecated.since 6.2, useLanguageUtil
insteadstatic String
getLanguageRootLocale
(String path) Returns the locale for the given path.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.getRelatedAssets
(Resource resource, String relationName) static ResourceResolver
getUserResourceResolverFromUserId
(SlingRepository slingRepository, ResourceResolverFactory resolverFactory, String userId, String serviceUser) static boolean
hasLanguageCopy
(String assetPath, String languageCode, ResourceResolver resolver) This method returns true if language copy of an asset exists, for the asked localestatic boolean
isSmartAssetUpdateRequired
(Asset sourceAsset, Asset destinationAsset) static void
moveUpdatedAsset
(String sourcePath, String destinationPath, Session userSession, PageManagerFactory pageManagerFactory, ResourceResolver resourceResolver) static void
moveUpdatedAsset
(String sourcePath, String destinationPath, Session userSession, PageManagerFactory pageManagerFactory, ResourceResolverFactory resolverFactory) Deprecated.since 6.2, usemoveUpdatedAsset(String, String, Session, PageManagerFactory, ResourceResolver)
insteadstatic void
replaceUpdatedAsset
(String sourcePath, String destinationPath, Session userSession, PageManagerFactory pageManagerFactory, ResourceResolver resourceResolver) Update the destination asset with all updates done on source asset.replaceWithExistingLanguageCopiesIfPossible
(List<String> paths, String destinationLanguageCode, ResourceResolver resourceResolver) Returns a list after replacing paths with their existing language copies.
-
Field Details
-
ATTRIBUTE_ASSET_LINKS_RELATION
- See Also:
-
ATTRIBUTE_ASSET_SOURCE_RELATION
- See Also:
-
ATTRIBUTE_ASSET_UPDATE_REQUIRED
- See Also:
-
ATTRIBUTE_COLLECTION_SOURCE_LANGUAGE_COPY
- See Also:
-
CQ_LASTMODIFIED
- See Also:
-
ATTRIBUTE_CQ_TRANSLATION_LAST_UPDATE
- See Also:
-
-
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 askedlanguageCode
- Language for which language copy is askedresolver
- 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 askedlanguageCode
- Language for which language copy is askedresolver
- 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 copytargetLanguageCodes
- - array of language codes- Returns:
-
getLanguageRoot
Deprecated.since 6.2, useLanguageUtil
insteadReturns 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.since 6.2, useLanguageUtil
insteadReturns 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
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 resolverpath
- 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 copytargetLanguageCode
- - destination language codeprefixPath
- - Root path where language copies are created- Returns:
-
moveUpdatedAsset
@Deprecated public static void moveUpdatedAsset(String sourcePath, String destinationPath, Session userSession, PageManagerFactory pageManagerFactory, ResourceResolverFactory resolverFactory) Deprecated.since 6.2, usemoveUpdatedAsset(String, String, Session, PageManagerFactory, ResourceResolver)
instead- 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 AssetdestinationPath
- Destination Path of AssetuserSession
- Will be used to save the session.pageManagerFactory
- Will be use to get pageManagerresourceResolver
- Will be used to get the resource
-
isSmartAssetUpdateRequired
-
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 copytargetLanguageCodes
- - 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
-
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 copytargetLanguageCode
- - destination language codeprefixPath
- - 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
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
-
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 replaceddestinationLanguageCode
- language code of destination language copyresourceResolver
-- 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
-
LanguageUtil
instead