Index: /home/ntoper/workspace/jackrabbit/src/main/java/org/apache/jackrabbit/api/JackrabbitNodeTypeManager.java =================================================================== --- /home/ntoper/workspace/jackrabbit/src/main/java/org/apache/jackrabbit/api/JackrabbitNodeTypeManager.java (revision 426671) +++ /home/ntoper/workspace/jackrabbit/src/main/java/org/apache/jackrabbit/api/JackrabbitNodeTypeManager.java (working copy) @@ -23,6 +23,8 @@ import javax.jcr.nodetype.NodeType; import javax.jcr.nodetype.NodeTypeManager; +import org.apache.jackrabbit.name.IllegalNameException; +import org.apache.jackrabbit.name.UnknownPrefixException; import org.xml.sax.InputSource; import org.xml.sax.SAXException; @@ -71,5 +73,17 @@ */ NodeType[] registerNodeTypes(InputStream in, String contentType) throws IOException, RepositoryException; + + /** + * Check if a given name is registered or not. + * + * + * @param name the name to check + * @return true if registered. Otherwise: false + * @throws UnknownPrefixException + * @throws IllegalNameException + */ + + boolean hasNodeType(String name) throws RepositoryException; } Index: /home/ntoper/workspace/jackrabbit/src/main/java/org/apache/jackrabbit/core/nodetype/NodeTypeManagerImpl.java =================================================================== --- /home/ntoper/workspace/jackrabbit/src/main/java/org/apache/jackrabbit/core/nodetype/NodeTypeManagerImpl.java (revision 426671) +++ /home/ntoper/workspace/jackrabbit/src/main/java/org/apache/jackrabbit/core/nodetype/NodeTypeManagerImpl.java (working copy) @@ -421,6 +421,23 @@ throw new IOException(e.getMessage()); } } + /* Non JCR method. + * + * Allow to check if a specific name is registered or not in this NodeTypeManager. + * (non-Javadoc) + * @see org.apache.jackrabbit.api.JackrabbitNodeTypeManager#hasNodeType(java.lang.String) + */ + + public boolean hasNodeType(String name) throws RepositoryException { + try { + QName qname = NameFormat.parse(name, nsResolver); + return getNodeTypeRegistry().isRegistered(qname); + } catch (IllegalNameException e) { + throw new RepositoryException(); + } catch (UnknownPrefixException e) { + throw new RepositoryException(); + } + } //-------------------------------------------------------------< Dumpable > /** @@ -430,5 +447,5 @@ ps.println("NodeTypeManager (" + this + ")"); ps.println(); ntReg.dump(ps); - } + } }