OCM-58 make OCM jackrabbit independent. Note that I did remove some methods from the NodeTypeManager interface, but the NodeTypeManagerImpl didn't implement many of them any way. Jackrabbit dependency is now only used as scope test
git-svn-id: https://svn.apache.org/repos/asf/jackrabbit/commons/ocm/trunk@1354510 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/jackrabbit/ocm/nodemanagement/impl/jackrabbit/NamespaceHelper.java b/src/main/java/org/apache/jackrabbit/ocm/nodemanagement/impl/jackrabbit/NamespaceHelper.java
deleted file mode 100644
index 270e6d5..0000000
--- a/src/main/java/org/apache/jackrabbit/ocm/nodemanagement/impl/jackrabbit/NamespaceHelper.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.jackrabbit.ocm.nodemanagement.impl.jackrabbit;
-
-import javax.jcr.NamespaceRegistry;
-
-import org.apache.jackrabbit.spi.Name;
-import org.apache.jackrabbit.spi.commons.name.NameFactoryImpl;
-
-
-/** Jackrabbit namespace helper class.
- *
- * @author <a href="mailto:okiessler@apache.org">Oliver Kiessler</a>
- */
-public class NamespaceHelper
-{
-
- /** Default namespace URI if none is specified.
- */
- public static final String DEFAULT_NAMESPACE_URI = "";
-
- /** JCR namespace registry.
- */
- private NamespaceRegistry registry;
-
- /** Creates a new instance of NamespaceHelper. */
- public NamespaceHelper()
- {
- }
-
- /** Returns a QName object from a given JCR item name.
- *
- * @param itemName JCR item name
- * @return qName
- */
- public Name getName(String itemName)
- {
- Name name = null;
-
- if (itemName != null && itemName.length() > 0)
- {
- if (itemName.equals("*"))
- {
- //name = ItemDef.ANY_NAME;
- NameFactoryImpl.getInstance().create(DEFAULT_NAMESPACE_URI, "*");
- }
- else
- {
- String[] parts = itemName.split(":");
- if (parts.length == 2)
- {
- name = NameFactoryImpl.getInstance().create(getNamespaceUri(parts[0]),parts[1]);
- }
- else if (parts.length == 1)
- {
- // no namespace set, use default namespace
- name = NameFactoryImpl.getInstance().create(DEFAULT_NAMESPACE_URI, parts[0]);
- }
- }
- }
-
- return name;
- }
-
- /** Returns the namespace URI from a given namespace prefix.
- *
- * @param namespacePrefix
- * @return uri
- */
- public String getNamespaceUri(String namespacePrefix)
- {
- String uri = null;
- try
- {
- uri = getRegistry().getURI(namespacePrefix);
- }
- catch (Exception ne)
- {
- ne.printStackTrace();
- }
-
- return uri;
- }
-
- /** Getter for property registry.
- *
- * @return registry
- */
- public NamespaceRegistry getRegistry()
- {
- return registry;
- }
-
- /** Setter for property registry.
- *
- * @param object registry
- */
- public void setRegistry(NamespaceRegistry object)
- {
- this.registry = object;
- }
-}
diff --git a/src/main/java/org/apache/jackrabbit/ocm/nodemanagement/impl/jackrabbit/NodeTypeManagerImpl.java b/src/main/java/org/apache/jackrabbit/ocm/nodemanagement/impl/jackrabbit/NodeTypeManagerImpl.java
deleted file mode 100644
index 69b0b48..0000000
--- a/src/main/java/org/apache/jackrabbit/ocm/nodemanagement/impl/jackrabbit/NodeTypeManagerImpl.java
+++ /dev/null
@@ -1,654 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.jackrabbit.ocm.nodemanagement.impl.jackrabbit;
-
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Iterator;
-import java.util.List;
-
-import javax.jcr.PropertyType;
-import javax.jcr.RepositoryException;
-import javax.jcr.Session;
-import javax.jcr.Workspace;
-import javax.jcr.nodetype.NodeTypeDefinition;
-import javax.jcr.nodetype.PropertyDefinition;
-import javax.jcr.version.OnParentVersionAction;
-
-import org.apache.jackrabbit.core.nodetype.InvalidNodeTypeDefException;
-import org.apache.jackrabbit.core.nodetype.NodeTypeRegistry;
-import org.apache.jackrabbit.core.nodetype.xml.NodeTypeReader;
-import org.apache.jackrabbit.ocm.mapper.model.BeanDescriptor;
-import org.apache.jackrabbit.ocm.mapper.model.ChildNodeDefDescriptor;
-import org.apache.jackrabbit.ocm.mapper.model.ClassDescriptor;
-import org.apache.jackrabbit.ocm.mapper.model.CollectionDescriptor;
-import org.apache.jackrabbit.ocm.mapper.model.FieldDescriptor;
-import org.apache.jackrabbit.ocm.mapper.model.MappingDescriptor;
-import org.apache.jackrabbit.ocm.mapper.model.PropertyDefDescriptor;
-import org.apache.jackrabbit.ocm.nodemanagement.NodeTypeManager;
-import org.apache.jackrabbit.ocm.nodemanagement.exception.NamespaceCreationException;
-import org.apache.jackrabbit.ocm.nodemanagement.exception.NodeTypeCreationException;
-import org.apache.jackrabbit.ocm.nodemanagement.exception.NodeTypeRemovalException;
-import org.apache.jackrabbit.ocm.nodemanagement.exception.OperationNotSupportedException;
-import org.apache.jackrabbit.spi.Name;
-import org.apache.jackrabbit.spi.QNodeDefinition;
-import org.apache.jackrabbit.spi.QNodeTypeDefinition;
-import org.apache.jackrabbit.spi.QPropertyDefinition;
-import org.apache.jackrabbit.spi.QValue;
-import org.apache.jackrabbit.spi.QValueConstraint;
-import org.apache.jackrabbit.spi.commons.nodetype.QNodeDefinitionBuilder;
-import org.apache.jackrabbit.spi.commons.nodetype.QNodeTypeDefinitionBuilder;
-import org.apache.jackrabbit.spi.commons.nodetype.QPropertyDefinitionBuilder;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/** This is the NodeTypeManager implementation for Apache Jackrabbit.
- *
- * @author <a href="mailto:okiessler@apache.org">Oliver Kiessler</a>
- */
-public class NodeTypeManagerImpl implements NodeTypeManager
-{
- /**
- * Logging.
- */
- private static Logger log = LoggerFactory.getLogger(NodeTypeManagerImpl.class);
- private static final boolean debug = false;
-
- /** Namespace helper class for Jackrabbit.
- */
- private NamespaceHelper namespaceHelper = new NamespaceHelper();
-
- /** Creates a new instance of NodeTypeManagerImpl. */
- public NodeTypeManagerImpl()
- {
- }
-
- /**
- * @see org.apache.jackrabbit.ocm.nodemanagement.NodeTypeManager#createNamespace
- */
- public void createNamespace(Session session, String namespace, String namespaceUri)
- throws NamespaceCreationException
- {
- if (session != null)
- {
- try
- {
- session.getWorkspace().getNamespaceRegistry().registerNamespace(namespace, namespaceUri);
- log.info("Namespace created: " +
- "{" + namespaceUri + "}" + namespace);
- }
- catch (Exception e)
- {
- throw new NamespaceCreationException(e);
- }
- }
- }
-
- /**
- * @see org.apache.jackrabbit.ocm.nodemanagement.NodeTypeManager#createNodeTypes
- */
- public void createNodeTypes(Session session, MappingDescriptor mappingDescriptor)
- throws NodeTypeCreationException
- {
- if (mappingDescriptor != null && mappingDescriptor.getClassDescriptorsByClassName().size() > 0)
- {
-
- }
- else
- {
- throw new NodeTypeCreationException("The MappingDescriptor can't be null or empty.");
- }
- }
-
- /**
- * @see org.apache.jackrabbit.ocm.nodemanagement.NodeTypeManager#createNodeTypes
- */
- public void createNodeTypes(Session session, ClassDescriptor[] classDescriptors)
- throws NodeTypeCreationException
- {
- if (classDescriptors != null && classDescriptors.length > 0)
- {
- log.info("Trying to create " + classDescriptors.length +
- " JCR node types.");
- for (int i = 0; i < classDescriptors.length; i++)
- {
- createSingleNodeType(session, classDescriptors[i]);
- }
- }
- else
- {
- throw new NodeTypeCreationException("The ClassDescriptor can't be null or empty.");
- }
- }
-
- /**
- * @see org.apache.jackrabbit.ocm.nodemanagement.NodeTypeManager#createNodeTypesFromMappingFiles
- */
- public void createNodeTypesFromMappingFiles(Session session,
- InputStream[] mappingXmlFiles)
- throws NodeTypeCreationException
- {
- }
-
- /**
- * @see org.apache.jackrabbit.ocm.nodemanagement.NodeTypeManager#createSingleNodeType
- */
- public void createSingleNodeType(Session session, ClassDescriptor classDescriptor)
- throws NodeTypeCreationException
- {
- try
- {
- getNamespaceHelper().setRegistry(session.getWorkspace().getNamespaceRegistry());
- ArrayList list = new ArrayList();
-
- if (classDescriptor.getJcrType() != null &&
- (classDescriptor.getJcrType().startsWith("nt:")
- || classDescriptor.getJcrType().startsWith("mix:")))
- {
- throw new NodeTypeCreationException("Namespace nt and mix are reserved namespaces. Please specify your own.");
- }
-
- if (checkSuperTypes(session.getWorkspace().getNodeTypeManager(),
- classDescriptor.getJcrSuperTypes()))
- {
- Name nodeTypeName = getNodeTypeName(classDescriptor.getJcrType(),
- classDescriptor.getClassName());
-
- List<QPropertyDefinition> propDefs = new ArrayList<QPropertyDefinition>();
- List<QNodeDefinition> nodeDefs = new ArrayList<QNodeDefinition>();
- if (classDescriptor.getFieldDescriptors() != null)
- {
- Iterator fieldIterator = classDescriptor.getFieldDescriptors().iterator();
- while (fieldIterator.hasNext())
- {
- FieldDescriptor field = (FieldDescriptor) fieldIterator.next();
- if (!field.isPath()) {
- propDefs.add(getPropertyDefinition(field.getFieldName(), field, nodeTypeName));
- }
- }
- }
-
- if (classDescriptor.getBeanDescriptors() != null) {
- Iterator beanIterator = classDescriptor.getBeanDescriptors().iterator();
- while (beanIterator.hasNext()) {
- BeanDescriptor field = (BeanDescriptor) beanIterator.next();
- if (this.isPropertyType(field.getJcrType())) {
- propDefs.add(getPropertyDefinition(field.getFieldName(), field, nodeTypeName));
- } else {
- nodeDefs.add(getNodeDefinition(field.getFieldName(), field, nodeTypeName));
- }
- }
- }
-
- if (classDescriptor.getCollectionDescriptors() != null) {
- Iterator collectionIterator = classDescriptor.getCollectionDescriptors().iterator();
- while (collectionIterator.hasNext()) {
- CollectionDescriptor field = (CollectionDescriptor) collectionIterator.next();
- if (this.isPropertyType(field.getJcrType())) {
- propDefs.add(getPropertyDefinition(field.getFieldName(), field, nodeTypeName));
- } else {
- nodeDefs.add(getNodeDefinition(field.getFieldName(), field, nodeTypeName));
- }
- }
- }
-
- QNodeTypeDefinition nodeTypeDef = getNodeTypeDef(
- classDescriptor.getJcrType(),
- classDescriptor.getJcrSuperTypes(),
- classDescriptor.getClassName(),
- nodeTypeName,
- propDefs,
- nodeDefs,
- classDescriptor.getJcrMixinTypes(),
- classDescriptor.isAbstract(),
- //TODO:is this correkt, how to decide whether mixin or not?
- classDescriptor.isInterface());
-
- list.add(nodeTypeDef);
- createNodeTypesFromList(session, list);
- log.info("Registered JCR node type '" + nodeTypeDef.getName() +
- "' for class '" + classDescriptor.getClassName() + "'");
- }
- else
- {
- throw new NodeTypeCreationException("JCR supertypes could not be resolved.");
- }
- }
- catch (Exception e)
- {
- log.error("Could not create node types from class descriptor.", e);
- throw new NodeTypeCreationException(e);
- }
- }
-
- /** Checks if all JCR super types for a given node type exist.
- *
- * @param ntMgr NodeTypeManager
- * @param superTypes Comma separated String with JCR node types
- * @return true/false
- */
- private boolean checkSuperTypes(javax.jcr.nodetype.NodeTypeManager ntMgr,
- String superTypes)
- {
- boolean exists = true;
-
- if (superTypes != null && superTypes.length() > 0)
- {
- String[] superTypesArray = superTypes.split(",");
- log.debug("JCR super types found: " + superTypesArray.length);
- for (int i = 0; i < superTypesArray.length; i++)
- {
- try
- {
- ntMgr.getNodeType(superTypesArray[i]);
- }
- catch (Exception e)
- {
- log.error("JCR super type '" + superTypesArray[i] + "' does not exist!");
- exists = false;
- break;
- }
- }
- }
-
- return exists;
- }
-
- private Name getNodeTypeName(String jcrNodeType,String className) {
- Name name = null;
-
- if (jcrNodeType != null && (!jcrNodeType.equals(""))) {
- name = getNamespaceHelper().getName(jcrNodeType);
-
- } else {
- name = getNamespaceHelper().getName(className);
-
- }
- return name;
- }
-
- /** Creates a NodeTypeDef object.
- *
- * @param jcrNodeType Name of JCR node type
- * @param jcrSuperTypes JCR node super types
- * @return type
- */
- public QNodeTypeDefinition getNodeTypeDef(String jcrNodeType, String jcrSuperTypes, String className,
- Name jcrNodeTypeName, List<QPropertyDefinition> propDefs, List<QNodeDefinition> nodeDefs,
- String[] jcrMixinTypes, boolean isAbstract, boolean isMixin)
- {
- QNodeTypeDefinitionBuilder ntdb = new QNodeTypeDefinitionBuilder();
- ntdb.setAbstract(isAbstract);
- ntdb.setChildNodeDefs(nodeDefs.toArray(QNodeDefinition.EMPTY_ARRAY));
- //ntdb.setMixin(classDescriptor.isAbstract());
- ntdb.setMixin(isMixin);
- ntdb.setName(jcrNodeTypeName);
- ntdb.setOrderableChildNodes(false);
- //ntdb.setPrimaryItemName(primaryItemName);
- ntdb.setPropertyDefs(propDefs.toArray(QPropertyDefinition.EMPTY_ARRAY));
- ntdb.setQueryable(true);
- ntdb.setSupertypes( getJcrSuperTypes(jcrSuperTypes) );
- ntdb.setSupportedMixinTypes( getJcrMixinTypes(jcrMixinTypes) );
-
- return ntdb.build();
- }
-
- /** Creates a PropDefImpl object.
- *
- * @param fieldName The name of the field
- * @param field property definition descriptor
- * @param declaringNodeType Node Type QName where the property belongs to
- * @return property
- */
- public QPropertyDefinition getPropertyDefinition(String fieldName,
- PropertyDefDescriptor field, Name declaringNodeType)
- {
- Name name = null;
-
- if (field.getJcrName() != null)
- {
- name = getNamespaceHelper().getName(field.getJcrName());
- }
- else
- {
- name = getNamespaceHelper().getName(fieldName);
- }
-
- int requiredType = PropertyType.UNDEFINED;
-
- if (field.getJcrType() != null)
- {
- requiredType = PropertyType.valueFromName(field.getJcrType());
- }
- else
- {
- log.info("No property type set for " + name.getLocalName() +
- ". Setting 'String' type.");
- requiredType = PropertyType.STRING;
- }
-
- int onParentVersion = OnParentVersionAction.IGNORE;
-
- if (field.getJcrOnParentVersion() != null &&
- field.getJcrOnParentVersion().length() > 0)
- {
- onParentVersion = OnParentVersionAction.valueFromName(field.getJcrOnParentVersion());
- }
-
- QPropertyDefinitionBuilder pdb = new QPropertyDefinitionBuilder();
- pdb.setAutoCreated(field.isJcrAutoCreated());
- pdb.setAvailableQueryOperators(new String[0]);
- pdb.setDeclaringNodeType(declaringNodeType);
- pdb.setDefaultValues(QValue.EMPTY_ARRAY);
- pdb.setFullTextSearchable(false);
- pdb.setMandatory(field.isJcrMandatory());
- pdb.setMultiple(field.isJcrMultiple());
- pdb.setName(name);
- pdb.setOnParentVersion(onParentVersion);
- pdb.setProtected(field.isJcrProtected());
- pdb.setQueryOrderable(false);
- pdb.setRequiredType(requiredType);
- pdb.setValueConstraints(QValueConstraint.EMPTY_ARRAY);
-
- return pdb.build();
- }
-
- /** Creates a NodeDefImpl object.
- *
- * @param fieldName Name of the field
- * @param field child node definition descriptor
- * @param declaringNodeType Node Type QName where the chid node belongs to
- * @return child node definition
- */
- private QNodeDefinition getNodeDefinition(String fieldName,
- ChildNodeDefDescriptor field, Name declaringNodeType) {
-
- Name name = null;
-
- if (field.getJcrName() != null) {
- name = getNamespaceHelper().getName(field.getJcrName());
- } else {
- name = getNamespaceHelper().getName("*");
- }
-
- int onParentVersion = OnParentVersionAction.IGNORE;
-
- if (field.getJcrOnParentVersion() != null
- && field.getJcrOnParentVersion().length() > 0) {
- onParentVersion = OnParentVersionAction.valueFromName(field.getJcrOnParentVersion());
- }
-
- QNodeDefinitionBuilder ndb = new QNodeDefinitionBuilder();
- ndb.setAllowsSameNameSiblings(field.isJcrSameNameSiblings());
- ndb.setAutoCreated(field.isJcrAutoCreated());
- ndb.setDeclaringNodeType(declaringNodeType);
- ndb.setDefaultPrimaryType(getNamespaceHelper().getName(field.getDefaultPrimaryType()));
- ndb.setMandatory(field.isJcrMandatory());
- ndb.setName(name);
- ndb.setOnParentVersion(onParentVersion);
- ndb.setProtected(field.isJcrProtected());
- ndb.setRequiredPrimaryTypes(getJcrSuperTypes(field.getJcrType()));
-
- return ndb.build();
- }
-
- /**
- *
- * @param propDef
- * @return
- */
- protected String showPropertyDefinition(PropertyDefinition propDef)
- {
- StringBuffer sb = new StringBuffer();
- sb.append("----");
- sb.append("\nName: " + propDef.getName());
- sb.append("\nAutocreated: " + propDef.isAutoCreated());
- sb.append("\nMandatory: " + propDef.isMandatory());
- sb.append("\n----");
- return sb.toString();
- }
-
- /** Creates a QName array from a comma separated list of JCR super types in
- * a given String.
- *
- * @param superTypes JCR super types
- * @return qNameSuperTypes
- */
- public Name[] getJcrSuperTypes(String superTypes)
- {
- return getNames(superTypes.split(","), "super type");
- }
-
-
- public Name[] getJcrMixinTypes(String[] jcrMixinTypes)
- {
- return getNames(jcrMixinTypes, "mixin type");
- }
-
-
- private Name[] getNames(String[] jcrTypeNames, String logTypeKind)
- {
- Name[] names = null;
- if (jcrTypeNames != null && jcrTypeNames.length > 0)
- {
- log.debug("JCR " + logTypeKind + "'s types found: " + jcrTypeNames.length);
- names = new Name[jcrTypeNames.length];
- for (int i = 0; i < jcrTypeNames.length; i++)
- {
- String superTypeName = jcrTypeNames[i].trim();
- names[i] = getNamespaceHelper().getName(superTypeName);
- log.debug("Setting JCR " + logTypeKind + ": " + superTypeName);
- }
- }
-
- return names;
- }
-
- /**
- * @see org.apache.jackrabbit.ocm.nodemanagement.NodeTypeManager#createSingleNodeTypeFromMappingFile
- */
- public void createSingleNodeTypeFromMappingFile(Session session,
- InputStream mappingXmlFile, String jcrNodeType)
- throws NodeTypeCreationException
- {
- }
-
- /**
- * @see org.apache.jackrabbit.ocm.nodemanagement.NodeTypeManager#createNodeTypeFromClass
- */
- public void createNodeTypeFromClass(Session session, Class clazz,
- String jcrNodeType, boolean reflectSuperClasses)
- throws NodeTypeCreationException
- {
- }
-
- /**
- * @see org.apache.jackrabbit.ocm.nodemanagement.NodeTypeManager#createNodeTypesFromConfiguration
- */
- public void createNodeTypesFromConfiguration(Session session,
- InputStream jcrRepositoryConfigurationFile)
- throws OperationNotSupportedException, NodeTypeCreationException
- {
- try
- {
- QNodeTypeDefinition[] types = NodeTypeReader.read(jcrRepositoryConfigurationFile);
-
- ArrayList list = new ArrayList();
- for (int i = 0; i < types.length; i++)
- {
- list.add(types[i]);
- }
-
- createNodeTypesFromList(session, list);
- log.info("Registered " + list.size() + " nodetypes from xml configuration file.");
- }
- catch (Exception e)
- {
- log.error("Could not create node types from configuration file.", e);
- throw new NodeTypeCreationException(e);
- }
- }
-
- /**
- *
- * @param session
- * @param nodeTypes
- * @throws org.apache.jackrabbit.core.nodetype.InvalidNodeTypeDefException
- * @throws javax.jcr.RepositoryException
- */
- private void createNodeTypesFromList(Session session, List nodeTypes)
- throws InvalidNodeTypeDefException, RepositoryException
- {
- getNodeTypeRegistry(session).registerNodeTypes(nodeTypes);
- }
-
- public void removeNodeTypesFromConfiguration(Session session, InputStream jcrRepositoryConfigurationFile)
- throws NodeTypeRemovalException
- {
- try
- {
- QNodeTypeDefinition[] types = NodeTypeReader.read(jcrRepositoryConfigurationFile);
-
- ArrayList list = new ArrayList();
- list.addAll(Arrays.asList(types));
-
- removeNodeTypesFromList(session, list);
- log.info("Registered " + list.size() + " nodetypes from xml configuration file.");
- }
- catch (Exception e)
- {
- log.error("Could not create node types from configuration file.", e);
- throw new NodeTypeRemovalException(e);
- }
- }
-
- private void removeNodeTypesFromList(Session session, List nodeTypes)
- throws NodeTypeRemovalException
- {
- for (Iterator nodeTypeIterator = nodeTypes.iterator(); nodeTypeIterator.hasNext();)
- {
- NodeTypeDefinition nodeTypeDef = (NodeTypeDefinition) nodeTypeIterator.next();
- this.removeSingleNodeType(session, nodeTypeDef.getName());
-
- }
-
- }
-
- /**
- * @see org.apache.jackrabbit.ocm.nodemanagement.NodeTypeManager#createSingleNodeTypeFromMappingFile
- */
- public void removeNodeTypesFromMappingFile(Session session, InputStream[] mappingXmlFile)
- throws NodeTypeRemovalException
- {
- }
-
- public void removeSingleNodeType(Session session, Name name)
- throws NodeTypeRemovalException
- {
- try
- {
- getNodeTypeRegistry(session).unregisterNodeType(name);
- }
- catch (Exception e)
- {
- throw new NodeTypeRemovalException(e);
- }
- }
-
- /**
- * @see org.apache.jackrabbit.ocm.nodemanagement.NodeTypeManager#removeSingleNodeType
- */
- public void removeSingleNodeType(Session session, String jcrNodeType)
- throws NodeTypeRemovalException
- {
- try
- {
- getNodeTypeRegistry(session).unregisterNodeType(getNamespaceHelper().getName(jcrNodeType));
- }
- catch (Exception e)
- {
- throw new NodeTypeRemovalException(e);
- }
- }
-
- /** Returns the jackrabbit NodeTypeRegistry from an open session.
- *
- * @param session Repository session
- * @return nodeTypeRegistry
- */
- private NodeTypeRegistry getNodeTypeRegistry(Session session)
- throws RepositoryException
- {
- Workspace wsp = session.getWorkspace();
- javax.jcr.nodetype.NodeTypeManager ntMgr = wsp.getNodeTypeManager();
- NodeTypeRegistry ntReg =
- ((org.apache.jackrabbit.core.nodetype.NodeTypeManagerImpl) ntMgr).getNodeTypeRegistry();
- return ntReg;
- }
-
- /**
- * @see org.apache.jackrabbit.ocm.nodemanagement.NodeTypeManager#getPrimaryNodeTypeNames
- */
- public List getPrimaryNodeTypeNames(Session session, String namespace)
- {
- return null;
- }
-
- /**
- * @see org.apache.jackrabbit.ocm.nodemanagement.NodeTypeManager#getAllPrimaryNodeTypeNames
- */
- public List getAllPrimaryNodeTypeNames(Session session)
- {
- return null;
- }
-
- /** Getter for property namespaceHelper.
- *
- * @return namespaceHelper
- */
- public NamespaceHelper getNamespaceHelper()
- {
- return namespaceHelper;
- }
-
- /** Setter for property namespaceHelper.
- *
- * @param object namespaceHelper
- */
- public void setNamespaceHelper(NamespaceHelper object)
- {
- this.namespaceHelper = object;
- }
-
-
- private boolean isPropertyType(String type)
- {
- return (type.equals(PropertyType.TYPENAME_BINARY) ||
- type.equals(PropertyType.TYPENAME_BOOLEAN) ||
- type.equals(PropertyType.TYPENAME_DATE) ||
- type.equals(PropertyType.TYPENAME_DOUBLE) ||
- type.equals(PropertyType.TYPENAME_LONG) ||
- type.equals(PropertyType.TYPENAME_NAME) ||
- type.equals(PropertyType.TYPENAME_PATH) ||
- type.equals(PropertyType.TYPENAME_REFERENCE) ||
- type.equals(PropertyType.TYPENAME_WEAKREFERENCE) ||
- type.equals(PropertyType.TYPENAME_DECIMAL) ||
- type.equals(PropertyType.TYPENAME_URI) ||
- type.equals(PropertyType.TYPENAME_STRING));
- }
-}