Class ContentBundleMergeStrategy
- java.lang.Object
-
- org.craftercms.core.xml.mergers.impl.strategies.ContentBundleMergeStrategy
-
- All Implemented Interfaces:
DescriptorMergeStrategy
public class ContentBundleMergeStrategy extends Object implements DescriptorMergeStrategy
DescriptorMergeStrategy
that returns the level descriptors in the hierarchy and the base descriptors when some of the parent folders are part of a content bundle (which is similar to a resource bundle, but instead of simple properties, a content bundle is formed by XML content (descriptors)). E.g., for a descriptor pathfolder1/folder2_es/file.xml
, the descriptorfolder1/folder2/file.xml
is returned for the merge.- Author:
- Sumer Jabri, Alfonso Vásquez
-
-
Constructor Summary
Constructors Constructor Description ContentBundleMergeStrategy()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected org.dom4j.Document
getDescriptorDom(Context context, CachingOptions cachingOptions, String url)
List<MergeableDescriptor>
getDescriptors(Context context, CachingOptions cachingOptions, String mainDescriptorUrl, org.dom4j.Document mainDescriptorDom)
Returns the list of descriptors in the order they should be merged, given the URI of the primary descriptor.List<MergeableDescriptor>
getDescriptors(Context context, CachingOptions cachingOptions, String mainDescriptorUrl, org.dom4j.Document mainDescriptorDom, boolean mainDescriptorOptional)
Returns the list of descriptors in the order they should be merged, given the URI of the primary descriptor.void
setBaseDelimiter(String baseDelimiter)
void
setBaseMergeStrategyResolver(DescriptorMergeStrategyResolver baseMergeStrategyResolver)
void
setRegularMergeStrategy(DescriptorMergeStrategy regularMergeStrategy)
void
setUrlParser(ContentBundleUrlParser urlParser)
-
-
-
Method Detail
-
setUrlParser
public void setUrlParser(ContentBundleUrlParser urlParser)
-
setBaseDelimiter
public void setBaseDelimiter(String baseDelimiter)
-
setBaseMergeStrategyResolver
public void setBaseMergeStrategyResolver(DescriptorMergeStrategyResolver baseMergeStrategyResolver)
-
setRegularMergeStrategy
public void setRegularMergeStrategy(DescriptorMergeStrategy regularMergeStrategy)
-
getDescriptors
public List<MergeableDescriptor> getDescriptors(Context context, CachingOptions cachingOptions, String mainDescriptorUrl, org.dom4j.Document mainDescriptorDom) throws XmlMergeException
Description copied from interface:DescriptorMergeStrategy
Returns the list of descriptors in the order they should be merged, given the URI of the primary descriptor.- Specified by:
getDescriptors
in interfaceDescriptorMergeStrategy
- Parameters:
context
- the current contextcachingOptions
- caching options in case you need access to itemsmainDescriptorUrl
- the URL of the main descriptormainDescriptorDom
- the DOM of the main descriptor- Returns:
- a list of
MergeableDescriptor
s representing the descriptors to merge - Throws:
XmlMergeException
-
getDescriptors
public List<MergeableDescriptor> getDescriptors(Context context, CachingOptions cachingOptions, String mainDescriptorUrl, org.dom4j.Document mainDescriptorDom, boolean mainDescriptorOptional) throws XmlMergeException
Description copied from interface:DescriptorMergeStrategy
Returns the list of descriptors in the order they should be merged, given the URI of the primary descriptor.- Specified by:
getDescriptors
in interfaceDescriptorMergeStrategy
- Parameters:
context
- the current contextcachingOptions
- caching options in case you need access to itemsmainDescriptorUrl
- the URL of the primary descriptormainDescriptorDom
- the DOM of the main descriptormainDescriptorOptional
- if the primary descriptor should be marked as optional- Returns:
- a list of
MergeableDescriptor
s representing the descriptors to merge - Throws:
XmlMergeException
-
getDescriptorDom
protected org.dom4j.Document getDescriptorDom(Context context, CachingOptions cachingOptions, String url)
-
-