Package io.wcm.wcm.commons.component
Class ComponentPropertyResolver
java.lang.Object
io.wcm.wcm.commons.component.ComponentPropertyResolver
- All Implemented Interfaces:
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
ConstructorsConstructorDescriptionComponentPropertyResolver(@NotNull com.day.cq.wcm.api.Page page) Deprecated.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 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 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
Modifier and TypeMethodDescriptionvoidclose()componentPropertiesResolution(@NotNull ComponentPropertyResolution resolution) Configure if properties should be resolved in component properties, and with or without inheritance.contentPolicyResolution(@NotNull ComponentPropertyResolution resolution) Configure if properties should be resolved from content policies mapped for the given resource.<T> TGet property.<T> TGet property.@Nullable Collection<org.apache.sling.api.resource.Resource> getResources(@NotNull String name) Get list of child resources.pagePropertiesResolution(@NotNull ComponentPropertyResolution resolution) Configure if properties should be resolved in content page properties, and with or without inheritance.
-
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 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(since="1.6.0") 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(since="1.6.0") 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(since="1.6.0") 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(since="1.6.0") 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 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 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_INHERIThas the same effect asComponentPropertyResolution.RESOLVEin this case. Default mode isComponentPropertyResolution.IGNORE.- Parameters:
resolution- Resolution mode- Returns:
- this
-
get
Get property.- Type Parameters:
T- Parameter type- Parameters:
name- Property nametype- Property type- Returns:
- Property value or null if not set
-
get
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 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:
closein interfaceAutoCloseable
-
ComponentPropertyResolverFactory.