[
https://issues.apache.org/jira/browse/JCR-2439?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12790776#action_12790776
]
Sébastien Launay commented on JCR-2439:
---------------------------------------
For toString() methods I found the path very useful especially for nodes.
I also prefers getOrAdd* instead of put* or set* because put and set are
semantically speaking writable methods.
In some framework like Avalon [1] (RIP :)) they use an additional createNew
boolean parameter to create an object if necessary and I think that the two use
cases of createNew are interesting.
What is done for files can also be done for resources like:
- Node setResource(Node parent, String mime, InputStream data)
- Node setResource(Node parent, String mime, Calendar date, InputStream data)
Here use of set fits naturally as the method always modifies the node and/or
parent node.
[1]
http://excalibur.apache.org/apidocs/org/apache/avalon/framework/configuration/Configuration.html#getChild(java.lang.String,%20boolean)
> More utility methods in JcrUtils
> --------------------------------
>
> Key: JCR-2439
> URL: https://issues.apache.org/jira/browse/JCR-2439
> Project: Jackrabbit Content Repository
> Issue Type: Improvement
> Components: jackrabbit-jcr-commons
> Reporter: Jukka Zitting
> Priority: Minor
>
> I'd like to add at least the following utility methods to JcrUtils:
> For logging:
> // Utility method to simplify log messages and debug prints:
> // Node -> "name [type]"
> // Property -> "@name = value(s)"
> String toString(Item item)
> For making sure that a node exists:
> // Returns the identified child node. If the child does not already exist,
> // it is added using the default node type from the parent.
> Node setNode(Node parent, String name)
> // Same as above, but ensures that isNodeType(type) is true for the
> // returned node, using addNode(name, type) or setPrimaryType(type)
> // if needed.
> Node setNode(Node parent, String name, String type)
> For adding (or setting, see above) nt:folder nodes:
> // Adds a new nt:folder node with the given name
> Node addFolder(Node parent, String name)
> // Ensures that an nt:folder node with the given name exists
> Node setFolder(Node parent, String name)
> For adding (or setting) nt:file nodes:
> // Adds a new nt:file/nt:resource structure
> // If the mime type contains a charset parameter, then the jcr:encoding
> property is also set
> Node addFile(Node parent, String name, String mime, InputStream data)
> Node addFile(Node parent, String name, String mime, Calendar date,
> InputStream data)
> // Ensures that an nt:file/nt:resource structure exists with the given
> data.
> // Note that the type of a potential existing jcr:content node is not
> modified
> Node setFile(Node parent, String name, String mime, InputStream data)
> Node setFile(Node parent, String name, String mime, Calendar date,
> InputStream data)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.