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 ju...@apache.org on 2013/05/21 10:27:51 UTC
svn commit: r1484694 - in /jackrabbit/oak/trunk:
oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/
oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/
Author: jukka
Date: Tue May 21 08:27:51 2013
New Revision: 1484694
URL: http://svn.apache.org/r1484694
Log:
Revert failing commit 1484689 (OAK-829)
Modified:
jackrabbit/oak/trunk/oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/PathUtils.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/EffectiveType.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/ReadOnlyNodeTypeManager.java
Modified: jackrabbit/oak/trunk/oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/PathUtils.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/PathUtils.java?rev=1484694&r1=1484693&r2=1484694&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/PathUtils.java (original)
+++ jackrabbit/oak/trunk/oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/PathUtils.java Tue May 21 08:27:51 2013
@@ -18,9 +18,6 @@ package org.apache.jackrabbit.oak.common
import java.util.Iterator;
import java.util.NoSuchElementException;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
import javax.annotation.Nonnull;
/**
@@ -33,9 +30,6 @@ import javax.annotation.Nonnull;
*/
public final class PathUtils {
- private static final Pattern SNS_PATTERN =
- Pattern.compile("(.+)\\[[1-9][0-9]*\\]$");
-
private PathUtils() {
// utility class
}
@@ -159,23 +153,6 @@ public final class PathUtils {
}
/**
- * Returns the given name without the possible SNS index suffix. If the
- * name does not contain an SNS index, then it is returned as-is.
- *
- * @param name name with a possible SNS index suffix
- * @return name without the SNS index suffix
- */
- @Nonnull
- public static String dropIndexFromName(@Nonnull String name) {
- Matcher matcher = SNS_PATTERN.matcher(name);
- if (matcher.matches()) {
- return matcher.group(1);
- } else {
- return name;
- }
- }
-
- /**
* Calculate the number of elements in the path. The root path has zero
* elements.
*
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/EffectiveType.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/EffectiveType.java?rev=1484694&r1=1484693&r2=1484694&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/EffectiveType.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/EffectiveType.java Tue May 21 08:27:51 2013
@@ -28,12 +28,10 @@ import static org.apache.jackrabbit.JcrC
import static org.apache.jackrabbit.JcrConstants.JCR_MIXINTYPES;
import static org.apache.jackrabbit.JcrConstants.JCR_NODETYPENAME;
import static org.apache.jackrabbit.JcrConstants.JCR_PRIMARYTYPE;
-import static org.apache.jackrabbit.JcrConstants.JCR_SAMENAMESIBLINGS;
import static org.apache.jackrabbit.JcrConstants.JCR_UUID;
import static org.apache.jackrabbit.oak.api.CommitFailedException.CONSTRAINT;
import static org.apache.jackrabbit.oak.api.Type.UNDEFINED;
import static org.apache.jackrabbit.oak.api.Type.UNDEFINEDS;
-import static org.apache.jackrabbit.oak.commons.PathUtils.dropIndexFromName;
import static org.apache.jackrabbit.oak.plugins.nodetype.NodeTypeConstants.JCR_IS_ABSTRACT;
import static org.apache.jackrabbit.oak.plugins.nodetype.NodeTypeConstants.OAK_MANDATORY_CHILD_NODES;
import static org.apache.jackrabbit.oak.plugins.nodetype.NodeTypeConstants.OAK_MANDATORY_PROPERTIES;
@@ -189,20 +187,18 @@ class EffectiveType {
* {@code false} otherwise
*/
boolean isValidChildNode(String nameWithIndex, EffectiveType effective) {
- String name = dropIndexFromName(nameWithIndex);
- boolean sns = !name.equals(nameWithIndex);
+ String nodeName = getNameWithoutIndex(nameWithIndex);
Set<String> typeNames = effective.getTypeNames();
// Find matching named child node definition
for (NodeState type : types) {
NodeState definitions = type
.getChildNode(OAK_NAMED_CHILD_NODE_DEFINITIONS)
- .getChildNode(name);
+ .getChildNode(nodeName);
for (String typeName : typeNames) {
NodeState definition = definitions.getChildNode(typeName);
- if (definition.exists()
- && sns == definition.getBoolean(JCR_SAMENAMESIBLINGS)) {
+ if (definition.exists()) {
return true;
}
}
@@ -227,8 +223,7 @@ class EffectiveType {
type.getChildNode(OAK_RESIDUAL_CHILD_NODE_DEFINITIONS);
for (String typeName : typeNames) {
NodeState definition = residual.getChildNode(typeName);
- if (definition.exists()
- && sns == definition.getBoolean(JCR_SAMENAMESIBLINGS)) {
+ if (definition.exists()) {
return true;
}
}
@@ -245,8 +240,7 @@ class EffectiveType {
*/
@CheckForNull
String getDefaultType(String nameWithIndex) {
- String name = dropIndexFromName(nameWithIndex);
- boolean sns = !name.equals(nameWithIndex);
+ String name = getNameWithoutIndex(nameWithIndex);
for (NodeState type : types) {
NodeState named = type
@@ -260,8 +254,7 @@ class EffectiveType {
residual.getChildNodeEntries())) {
NodeState definition = entry.getNodeState();
String defaultType = definition.getName(JCR_DEFAULTPRIMARYTYPE);
- if (defaultType != null
- && sns == definition.getBoolean(JCR_SAMENAMESIBLINGS)) {
+ if (defaultType != null) {
return defaultType;
}
}
@@ -348,6 +341,22 @@ class EffectiveType {
return names.toString();
}
+ //-----------------------------------------------------------< private >--
+
+ private static String getNameWithoutIndex(String name) {
+ int n = name.length();
+ if (n > 3 && name.charAt(n - 1) == ']') {
+ int i = n - 2;
+ while (i > 1 && Character.isDigit(name.charAt(i))) {
+ i--;
+ }
+ if (name.charAt(i) == '[') {
+ return name.substring(0, i);
+ }
+ }
+ return name;
+ }
+
private boolean nameSetContains(String set, String name) {
for (NodeState type : types) {
if (contains(type.getNames(set), name)) {
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/ReadOnlyNodeTypeManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/ReadOnlyNodeTypeManager.java?rev=1484694&r1=1484693&r2=1484694&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/ReadOnlyNodeTypeManager.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/ReadOnlyNodeTypeManager.java Tue May 21 08:27:51 2013
@@ -21,7 +21,6 @@ import static com.google.common.collect.
import static org.apache.jackrabbit.JcrConstants.JCR_MIXINTYPES;
import static org.apache.jackrabbit.JcrConstants.JCR_PRIMARYTYPE;
import static org.apache.jackrabbit.oak.api.Type.STRING;
-import static org.apache.jackrabbit.oak.commons.PathUtils.dropIndexFromName;
import static org.apache.jackrabbit.oak.plugins.nodetype.NodeTypeConstants.NODE_TYPES_PATH;
import static org.apache.jackrabbit.oak.plugins.nodetype.NodeTypeConstants.OAK_SUPERTYPES;
@@ -391,7 +390,7 @@ public abstract class ReadOnlyNodeTypeMa
checkNotNull(parent);
checkNotNull(targetNode);
- String name = dropIndexFromName(targetNode.getName());
+ String name = targetNode.getName();
EffectiveNodeType eff = getEffectiveNodeType(parent);
return eff.getNodeDefinition(name, getEffectiveNodeType(targetNode));
}