I am struggling with some generic piece of code:
Resource resource = dynamicallyFindNeededResource(res);
Class<?> someModel = pickUpSomeSlingModelClass();
The problem is I want to expand this type of adapting to request as well:
Adaptable adaptable = checkIfModelAdaptableByRequest(someModel) ? changeRequestResourceToCurrentOne(request, resource) : resource;
What comes to my mind is the changeRequestResourceToCurrentOne method has to use SlingRequestWrapper which would be kind of lame solution. Any other ides how to alter that request with resource without wrapping it with new resoruce? Thanks in advance.
Via your request SlingHttpServletRequest (Apache Sling (Builder) 6 API) get request dispatcher SlingHttpServletRequest (Apache Sling (Builder) 6 API) then use standard API to forward your request to a new place.
Agree with the previous answer, why not direct the request to the correct location in the first place or adapt existing request to desired location?
So assuming you have a resource path, you are looking for sibling resource with a particulate resource type..
You can use resource iterator for it.
For current resource get the parent and from parent use listchildren, you will access to all sibling.
Also - once you have a resource in the JCR - you can create a Sling Model - as discussed here:
Look at how we bind the UserInfo class to nodes and props in the JCR.