Class AbstractInheritFromHierarchyMergeStrategy

java.lang.Object
org.craftercms.core.xml.mergers.impl.strategies.AbstractInheritFromHierarchyMergeStrategy
All Implemented Interfaces:
DescriptorMergeStrategy
Direct Known Subclasses:
CompositeInheritFromHierarchyMergeStrategy, InheritLevelsMergeStrategy, InheritVersionsMergeStrategy

public abstract class AbstractInheritFromHierarchyMergeStrategy extends Object implements DescriptorMergeStrategy
Abstract DescriptorMergeStrategy that defines the base code for strategies that decide which descriptors to "inherit" from upper levels in the folder hierarchy.
Author:
Sumer Jabri, Alfonso Vásquez
  • Field Details

    • baseFolders

      protected String[] baseFolders
  • Constructor Details

    • AbstractInheritFromHierarchyMergeStrategy

      public AbstractInheritFromHierarchyMergeStrategy()
  • Method Details

    • setBaseFolders

      public void setBaseFolders(String[] baseFolders)
    • 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 interface DescriptorMergeStrategy
      Parameters:
      context - the current context
      cachingOptions - caching options in case you need access to items
      mainDescriptorUrl - the URL of the main descriptor
      mainDescriptorDom - the DOM of the main descriptor
      Returns:
      a list of MergeableDescriptors 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 interface DescriptorMergeStrategy
      Parameters:
      context - the current context
      cachingOptions - caching options in case you need access to items
      mainDescriptorUrl - the URL of the primary descriptor
      mainDescriptorDom - the DOM of the main descriptor
      mainDescriptorOptional - if the primary descriptor should be marked as optional
      Returns:
      a list of MergeableDescriptors representing the descriptors to merge
      Throws:
      XmlMergeException
    • getIndexAfterBaseFolder

      protected int getIndexAfterBaseFolder(String url)
    • addInheritedDescriptorsInFolder

      protected abstract void addInheritedDescriptorsInFolder(Context context, CachingOptions cachingOptions, List<MergeableDescriptor> inheritedDescriptors, String folder, String mainDescriptorUrl, org.dom4j.Document mainDescriptorDom)