Class ComponentPropertyResolver

java.lang.Object
io.wcm.wcm.commons.component.ComponentPropertyResolver
All Implemented Interfaces:
AutoCloseable

@ProviderType public final class ComponentPropertyResolver extends Object implements AutoCloseable
Tries to resolve properties with or without inheritance from pages, content policies or component definitions.

The lookup can take place in:

  1. Properties of the current page (including the parent pages if inheritance is enabled)
  2. Properties from the content policy associated with the current resource
  3. Properties defined on the component associated with the current resource (including super components if inheritance is enabled)

By default, only option 3 is enabled (with inheritance). Please make sure to close() instances of this class after usage.

  • Constructor Details

    • ComponentPropertyResolver

      public ComponentPropertyResolver(@NotNull @NotNull com.day.cq.wcm.api.Page page, @Nullable @Nullable org.apache.sling.api.resource.ResourceResolverFactory resourceResolverFactory)
      This constructor is for internal use only, please use ComponentPropertyResolverFactory.
      Parameters:
      page - Content page
      resourceResolverFactory - Resource resolver factory
    • ComponentPropertyResolver

      public ComponentPropertyResolver(@NotNull @NotNull org.apache.sling.api.resource.Resource resource, @Nullable @Nullable org.apache.sling.api.resource.ResourceResolverFactory resourceResolverFactory)
      This constructor is for internal use only, please use ComponentPropertyResolverFactory.
      Parameters:
      resource - Content resource
      resourceResolverFactory - Resource resolver factory
    • ComponentPropertyResolver

      public ComponentPropertyResolver(@NotNull @NotNull org.apache.sling.api.resource.Resource resource, boolean ensureResourceType, @Nullable @Nullable org.apache.sling.api.resource.ResourceResolverFactory resourceResolverFactory)
      This constructor is for internal use only, please use ComponentPropertyResolverFactory.
      Parameters:
      resource - Content resource
      ensureResourceType - Ensure the given resource has a resource type. If this is not the case, try to find the closest parent resource which has a resource type.
      resourceResolverFactory - Resource resolver factory
    • ComponentPropertyResolver

      public ComponentPropertyResolver(@NotNull @NotNull com.day.cq.wcm.api.components.ComponentContext wcmComponentContext, @Nullable @Nullable org.apache.sling.api.resource.ResourceResolverFactory resourceResolverFactory)
      This constructor is for internal use only, please use ComponentPropertyResolverFactory.
      Parameters:
      wcmComponentContext - WCM component context
      resourceResolverFactory - Resource resolver factory
    • ComponentPropertyResolver

      @Deprecated(since="1.6.0") public ComponentPropertyResolver(@NotNull @NotNull com.day.cq.wcm.api.Page page)
      Deprecated.
      Lookup for content resource associated with the page component (resource type).
      Parameters:
      page - Content page
    • ComponentPropertyResolver

      @Deprecated(since="1.6.0") public ComponentPropertyResolver(@NotNull @NotNull org.apache.sling.api.resource.Resource resource)
      Deprecated.
      Lookup for content resource associated with a component (resource type).
      Parameters:
      resource - Content resource
    • ComponentPropertyResolver

      @Deprecated(since="1.6.0") public ComponentPropertyResolver(@NotNull @NotNull org.apache.sling.api.resource.Resource resource, boolean ensureResourceType)
      Deprecated.
      Lookup for content resource associated with a component (resource type).
      Parameters:
      resource - Content resource
      ensureResourceType - Ensure the given resource has a resource type. If this is not the case, try to find the closest parent resource which has a resource type.
    • ComponentPropertyResolver

      @Deprecated(since="1.6.0") public ComponentPropertyResolver(@NotNull @NotNull com.day.cq.wcm.api.components.ComponentContext wcmComponentContext)
      Deprecated.
      Lookup with content resource associated with a component (resource type).
      Parameters:
      wcmComponentContext - WCM component context
  • Method Details

    • componentPropertiesResolution

      public ComponentPropertyResolver componentPropertiesResolution(@NotNull @NotNull ComponentPropertyResolution resolution)
      Configure if properties should be resolved in component properties, and with or without inheritance. Default mode is ComponentPropertyResolution.RESOLVE_INHERIT.
      Parameters:
      resolution - Resolution mode
      Returns:
      this
    • pagePropertiesResolution

      public ComponentPropertyResolver pagePropertiesResolution(@NotNull @NotNull ComponentPropertyResolution resolution)
      Configure if properties should be resolved in content page properties, and with or without inheritance. Default mode is ComponentPropertyResolution.IGNORE.
      Parameters:
      resolution - Resolution mode
      Returns:
      this
    • contentPolicyResolution

      public ComponentPropertyResolver contentPolicyResolution(@NotNull @NotNull ComponentPropertyResolution resolution)
      Configure if properties should be resolved from content policies mapped for the given resource. No explicit inheritance mode is supported, so ComponentPropertyResolution.RESOLVE_INHERIT has the same effect as ComponentPropertyResolution.RESOLVE in this case. Default mode is ComponentPropertyResolution.IGNORE.
      Parameters:
      resolution - Resolution mode
      Returns:
      this
    • get

      @Nullable public <T> T get(@NotNull @NotNull String name, @NotNull @NotNull Class<T> type)
      Get property.
      Type Parameters:
      T - Parameter type
      Parameters:
      name - Property name
      type - Property type
      Returns:
      Property value or null if not set
    • get

      @NotNull public <T> T get(@NotNull @NotNull String name, @NotNull T defaultValue)
      Get property.
      Type Parameters:
      T - Parameter type
      Parameters:
      name - Property name
      defaultValue - Default value
      Returns:
      Property value or default value if not set
    • getResources

      @Nullable public @Nullable Collection<org.apache.sling.api.resource.Resource> getResources(@NotNull @NotNull String name)
      Get list of child resources.
      Parameters:
      name - Child node name
      Returns:
      List of child resources or null if not set.
    • close

      public void close()
      Specified by:
      close in interface AutoCloseable