[ 
https://issues.apache.org/jira/browse/SLING-7934?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16686926#comment-16686926
 ] 

Jason E Bailey commented on SLING-7934:
---------------------------------------

I tend to have long conversations in my head and then come out with a statement 
that has a fully reasoned path that no one else follows. That's relevant here 
and I'm working on it. I wouldn't go with the .getJSONType() Because it's too 
specific to JSON and there's a part of me that bulks at doing a double lookup 
in a map, one to find the object and then another to get it's type. The problem 
comes back to is that a Map<String,Object> is really wider then what we use or 
need. From a resource perspective the value is either a String, Number, 
Boolean, or an Instant/Calendar object with array support. 

So my own stupid proposal would be, that if I had to change the ValueMap object 
I would rather change it to a Map<String,ResourceValue> which most people would 
never notice, because they are requesting a specific class type when they do 
their get. The change, however, would be really useful to anyone who needs to 
introspect the value type during processing.

You could then do things such as 
ResourceValue.isArray()
ResourceValue.getType() <- prefer an enum here
ResourceValue.getOriginalType()
ResourceValue.getValue()

 

Though that could be implemented as part of existing interface as a supported 
type that internal conversions handle. meaning that it stays <Map,Object> but 
you could just do a .get(mykey, ResourceValue.class). Of course now I just 
typed all of this and I just had this moment of "woah" cause we could probably 
do .get(myKey,JsonValue.class) as well and then you would have to go through 
half the work that you otherwise would need to,.

 

> Add the ability for a resource to adapt to a JSONObject
> -------------------------------------------------------
>
>                 Key: SLING-7934
>                 URL: https://issues.apache.org/jira/browse/SLING-7934
>             Project: Sling
>          Issue Type: Improvement
>            Reporter: Jason E Bailey
>            Assignee: Jason E Bailey
>            Priority: Major
>
> There are multiple implementations all doing the same process of converting a 
> resource to a JSONObject. If it's that common we should just add the ability 
> to adapt the resource and centralize the implementation so that it's 
> consistent.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to