[
https://issues.apache.org/jira/browse/SLING-109?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12544734
]
Felix Meschberger commented on SLING-109:
-----------------------------------------
An alternative approach to extending the Resource interface with the new
NodeResource and ObjectResource interfaces would be "mixin" interfaces:
// mixin for objects returning nodes
public interface NodeProvider {
Node getNode();
}
// mixin for objects return (OCM or ORM) objects
public interface ObjectProvider {
Object getObject();
}
So a resource implementation returned by microsling might be defined as
public MicroSlingNodeResource implements Resource, NodeProvider {
....
}
And an implementation of the Sling jcr/resource project might be
public SlingNodeResource implements Resource, NodeProvider, ObjectProvider {
....
}
> Replace Resource.getRawData and .getObject methods by better API
> ----------------------------------------------------------------
>
> Key: SLING-109
> URL: https://issues.apache.org/jira/browse/SLING-109
> Project: Sling
> Issue Type: Improvement
> Components: API
> Reporter: Felix Meschberger
> Fix For: 2.0.0
>
>
> David brought up an issue on the dev list [1] regarding the
> Resource.getRawData() method. In short, David suggests to replace the
> getRawData method with a signature, which more closely reflects the
> definition of Sling as a web application framework for JCR. The general
> consesus on the list is that the getRawData() method is badly named and that
> we should have a method which shows the JCR integration yet does not tie the
> API too much into JCR.
> So I propose the following:
> > Remove the getRawData() and getObject() methods from the Resource
> interface
> > Add new interfaces NodeResource and ObjectResource:
> // resources backed by JCR nodes
> public interface NodeResource extends Resource {
> Node getNode();
> }
> // resources mapped using JCR OCM for example
> public interface ObjectResource extends Resource {
> Object getObject();
> }
> This way, we have the Resource interfaces completely storage-agnostic and
> provide for a wide range of extensions, such as an URLResource, which may be
> backed by a URL such as an entry in an OSGi bundle.
> [1] http://www.mail-archive.com/[email protected]/msg00906.html
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.