I understand the difference between the Sling Resource Type and the JCR
Node type. However the resource.isResourceType is not specifically
dealing with one or the other. If I had a resource of a node with a
primaryNodeType of nt:file then doing resource.isResourceType("nt:file")
would return true. 

I had to dig through the code to see what was going on. 

The basic idea is that calling resource.getResourceType() will return
the sling:resourceType and if that's not there then it will return the
jcr:primaryType. When calling "isResourceType" it will compare against
the resource.getResourceType() and if that's not a match will march of
the chain of getSuperResourceType looking for a match, and that matches
only against the sling:resourceType.

I can sorta see where that's useful from a script resolution point of
view. I find it odd overall as it's missing out on a section of
inheritance. It's like having a java instanceof operator ignoring
interfaces. 

-- 
  Jason

On Wed, Sep 10, 2014, at 01:13 PM, Paul McMahon wrote:
> There isn't necessarily a mapping between Sling Resource Type and the JCR
> Node type. The sling resource type is determined based on the value or
> the sling:resourceType property on the node, where as the JCR Node type
> is determined based on jcr:primaryType value. In most cases nodes of
> sling:resourceType will always be the same jcr:primaryType, but technical
> that isn't a requirement. In  reality there are most jcr:primaryTypes map
> to many different sling:resourceType (or no sling resource type). 
> 
> 
> Paul McMahon
> Acquity Group, Part of Accenture Interactive
> 
> 
> On Wednesday, September 10, 2014 9:56 AM, Jason E Bailey
> <jason.bai...@24601.org> wrote:
>  
> 
> 
> Lets say I have a node of type sling:Folder.
> 
> 
> 
> Calling
> 
> node.isNodeType("nt:folder")
> 
> will return true, since sling:Folder extends nt:folder
> 
> 
> 
> However
> 
> resource.isResourceType("nt:folder")
> 
> will return false. I'm assuming since it's attempting to
> resolve up the resource heirarchy(?)
> 
> 
> 
> My question, is there a Foo utility to determine if a given
> resource is of a particular type via the node definition?
> 
> 
> 
> TIA.
> 
> --
> Jason E Bailey

Reply via email to