Package io.wcm.wcm.commons.component
Class ComponentPropertyResolver
- java.lang.Object
-
- io.wcm.wcm.commons.component.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:
- Properties of the current page (including the parent pages if inheritance is enabled)
- Properties from the content policy associated with the current resource
- 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 Summary
Constructors Constructor Description ComponentPropertyResolver(@NotNull com.day.cq.wcm.api.components.ComponentContext wcmComponentContext)
Deprecated.Please useComponentPropertyResolverFactory
.ComponentPropertyResolver(@NotNull com.day.cq.wcm.api.components.ComponentContext wcmComponentContext, @Nullable org.apache.sling.api.resource.ResourceResolverFactory resourceResolverFactory)
This constructor is for internal use only, please useComponentPropertyResolverFactory
.ComponentPropertyResolver(@NotNull com.day.cq.wcm.api.Page page)
Deprecated.Please useComponentPropertyResolverFactory
.ComponentPropertyResolver(@NotNull com.day.cq.wcm.api.Page page, @Nullable org.apache.sling.api.resource.ResourceResolverFactory resourceResolverFactory)
This constructor is for internal use only, please useComponentPropertyResolverFactory
.ComponentPropertyResolver(@NotNull org.apache.sling.api.resource.Resource resource)
Deprecated.Please useComponentPropertyResolverFactory
.ComponentPropertyResolver(@NotNull org.apache.sling.api.resource.Resource resource, boolean ensureResourceType)
Deprecated.Please useComponentPropertyResolverFactory
.ComponentPropertyResolver(@NotNull org.apache.sling.api.resource.Resource resource, boolean ensureResourceType, @Nullable org.apache.sling.api.resource.ResourceResolverFactory resourceResolverFactory)
This constructor is for internal use only, please useComponentPropertyResolverFactory
.ComponentPropertyResolver(@NotNull org.apache.sling.api.resource.Resource resource, @Nullable org.apache.sling.api.resource.ResourceResolverFactory resourceResolverFactory)
This constructor is for internal use only, please useComponentPropertyResolverFactory
.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
ComponentPropertyResolver
componentPropertiesResolution(@NotNull ComponentPropertyResolution resolution)
Configure if properties should be resolved in component properties, and with or without inheritance.ComponentPropertyResolver
contentPolicyResolution(@NotNull ComponentPropertyResolution resolution)
Configure if properties should be resolved from content policies mapped for the given resource.<T> T
get(@NotNull java.lang.String name, @NotNull java.lang.Class<T> type)
Get property.<T> T
get(@NotNull java.lang.String name, T defaultValue)
Get property.@Nullable java.util.Collection<org.apache.sling.api.resource.Resource>
getResources(@NotNull java.lang.String name)
Get list of child resources.ComponentPropertyResolver
pagePropertiesResolution(@NotNull ComponentPropertyResolution resolution)
Configure if properties should be resolved in content page properties, and with or without inheritance.
-
-
-
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 useComponentPropertyResolverFactory
.- Parameters:
page
- Content pageresourceResolverFactory
- 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 useComponentPropertyResolverFactory
.- Parameters:
resource
- Content resourceresourceResolverFactory
- 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 useComponentPropertyResolverFactory
.- Parameters:
resource
- Content resourceensureResourceType
- 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 useComponentPropertyResolverFactory
.- Parameters:
wcmComponentContext
- WCM component contextresourceResolverFactory
- Resource resolver factory
-
ComponentPropertyResolver
@Deprecated public ComponentPropertyResolver(@NotNull @NotNull com.day.cq.wcm.api.Page page)
Deprecated.Please useComponentPropertyResolverFactory
.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.Please useComponentPropertyResolverFactory
.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.Please useComponentPropertyResolverFactory
.Lookup for content resource associated with a component (resource type).- Parameters:
resource
- Content resourceensureResourceType
- 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.Please useComponentPropertyResolverFactory
.Lookup with content resource associated with a component (resource type).- Parameters:
wcmComponentContext
- WCM component context
-
-
Method Detail
-
componentPropertiesResolution
public ComponentPropertyResolver componentPropertiesResolution(@NotNull @NotNull ComponentPropertyResolution resolution)
Configure if properties should be resolved in component properties, and with or without inheritance. Default mode isComponentPropertyResolution.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 isComponentPropertyResolution.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, soComponentPropertyResolution.RESOLVE_INHERIT
has the same effect asComponentPropertyResolution.RESOLVE
in this case. Default mode isComponentPropertyResolution.IGNORE
.- Parameters:
resolution
- Resolution mode- Returns:
- this
-
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 nametype
- 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 namedefaultValue
- 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 interfacejava.lang.AutoCloseable
-
-