You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by md...@apache.org on 2012/09/10 18:23:05 UTC
svn commit: r1382967 - in /jackrabbit/oak/trunk:
oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/type/NodeTypeImpl.java
oak-jcr/pom.xml
Author: mduerig
Date: Mon Sep 10 16:23:04 2012
New Revision: 1382967
URL: http://svn.apache.org/viewvc?rev=1382967&view=rev
Log:
OAK-66: JCR Node Type Management
NodeType.canRemove methods: inexistent items can never be removed.
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/type/NodeTypeImpl.java
jackrabbit/oak/trunk/oak-jcr/pom.xml
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/type/NodeTypeImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/type/NodeTypeImpl.java?rev=1382967&r1=1382966&r2=1382967&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/type/NodeTypeImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/type/NodeTypeImpl.java Mon Sep 10 16:23:04 2012
@@ -385,7 +385,8 @@ class NodeTypeImpl implements NodeType {
@Override
public boolean canRemoveNode(String nodeName) {
- for (NodeDefinition definition : getChildNodeDefinitions()) {
+ NodeDefinition[] childNodeDefinitions = getChildNodeDefinitions();
+ for (NodeDefinition definition : childNodeDefinitions) {
String name = definition.getName();
if (matches(nodeName, name)) {
if (definition.isMandatory() || definition.isProtected()) {
@@ -393,12 +394,13 @@ class NodeTypeImpl implements NodeType {
}
}
}
- return true;
+ return childNodeDefinitions.length > 0;
}
@Override
public boolean canRemoveProperty(String propertyName) {
- for (PropertyDefinition definition : getPropertyDefinitions()) {
+ PropertyDefinition[] propertyDefinitions = getPropertyDefinitions();
+ for (PropertyDefinition definition : propertyDefinitions) {
String name = definition.getName();
if (propertyName.equals(name)) {
if (definition.isMandatory() || definition.isProtected()) {
@@ -406,7 +408,7 @@ class NodeTypeImpl implements NodeType {
}
}
}
- return true;
+ return propertyDefinitions.length > 0;
}
private static boolean matches(String childNodeName, String name) {
Modified: jackrabbit/oak/trunk/oak-jcr/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/pom.xml?rev=1382967&r1=1382966&r2=1382967&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/pom.xml (original)
+++ jackrabbit/oak/trunk/oak-jcr/pom.xml Mon Sep 10 16:23:04 2012
@@ -73,7 +73,6 @@ org.apache.jackrabbit.test.api.nodetype.
org.apache.jackrabbit.test.api.nodetype.CanSetPropertyPathTest#testConversions
org.apache.jackrabbit.test.api.nodetype.CanAddChildNodeCallWithoutNodeTypeTest#testDefinedWithoutDefault <!-- OAK-66 -->
org.apache.jackrabbit.test.api.nodetype.CanAddChildNodeCallWithoutNodeTypeTest#testResidualWithoutDefault <!-- OAK-66 -->
-org.apache.jackrabbit.test.api.nodetype.CanRemoveItemTest#testMandatoryProperty <!-- OAK-66 -->
org.apache.jackrabbit.test.api.LifecycleTest
org.apache.jackrabbit.test.api.query.ElementTest#testElementTestNameTestSomeNTWithSNS<!-- OAK-203 -->
org.apache.jackrabbit.test.api.query.GetPropertyNamesTest#testGetPropertyNames