On 24 August 2017 at 09:16, Michael Dürig <mdue...@apache.org> wrote:
> > > On 24.08.17 09:27, Ian Boston wrote: > >> On 24 August 2017 at 08:18, Michael Dürig <mdue...@apache.org> wrote: >> >> >>> >>> URI uri = ((OakValueFactory) valueFactory).getSignedURI(binProp); >>> >>> >>> +1 >> >> One point >> Users in Sling dont know abou Oak, they know about JCR. >> >> URI uri = ((OakValueFactory) >> valueFactory).getSignedURI(jcrNode.getProperty("jcr:data")); >> >> No new APIs, let OakValueFactory work it out and return null if it cant do >> it. It should also handle a null parameter. >> (I assume OakValueFactory already exists) >> > > No, OakValueFactory does not exist as API (yet). But adding it would be > more inline with how we approached the Oak API traditionally. > > If it doesnt exist then perhaps Oak could add a Service interface that deals with conversions, rather than expose a second adaptable pattern in Sling, or require type casting and instanceof. How Oak implements those conversions is upto Oak. eg public interface OakConversionService { <T> T convertTo(Object source, Class<T> target); } implemented as an OSGi Service used as eg @Reference private OakConversionService conversionService; public void doFilter(...) { ... URL u = conversionService.convertTo(jcrBinary, URI.class); } Best Regards Ian > I'm not against introducing the adaptable pattern but would like to > understand whether there is concrete enough use cases beyond the current > one to warrant it. > > Michael > > > >> If you want to make it extensible >> >> <T> T convertTo(Object source, Class<T> target); >> >> used as >> >> URI uri = ((OakValueFactory) >> valueFactory). convertTo(jcrNode.getProperty("jcr:data"), URI.class); >> >> The user doesnt know or need to know the URI is signed, it needs a URI >> that >> can be resolved. >> Oak wants it to be signed. >> >> Best Regards >> Ian >> >> >> >> Michael >>> >>> >>> >>> >>> A rough sketch of any alternative proposal would be helpful to decide >>>> how to move forward >>>> >>>> Chetan Mehrotra >>>> >>>> >>>> >>