Class ComponentPropertyResolver

  • All Implemented Interfaces:
    java.lang.AutoCloseable

    @ProviderType
    public final class ComponentPropertyResolver
    extends java.lang.Object
    implements java.lang.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 Detail

      • 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
        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
        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
        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
        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 Detail

      • get

        @Nullable
        public <T> T get​(@NotNull
                         @NotNull java.lang.String name,
                         @NotNull
                         @NotNull java.lang.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 java.lang.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 java.util.Collection<org.apache.sling.api.resource.Resource> getResources​(@NotNull
                                                                                                   @NotNull java.lang.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 java.lang.AutoCloseable