jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From S├ębastien Launay (JIRA) <j...@apache.org>
Subject [jira] Commented: (JCR-2439) More utility methods in JcrUtils
Date Tue, 15 Dec 2009 15:40:18 GMT

    [ 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.


Mime
View raw message