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 re...@apache.org on 2012/05/08 16:55:49 UTC
svn commit: r1335556 -
/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/
Author: reschke
Date: Tue May 8 14:55:48 2012
New Revision: 1335556
URL: http://svn.apache.org/viewvc?rev=1335556&view=rev
Log:
OAK-66: refactor classes into session-aware parts and core parts (WIP)
Added:
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/ItemDefinitionDelegate.java
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/NodeDefinitionDelegate.java
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/PropertyDefinitionDelegate.java
Modified:
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/ItemDefinitionImpl.java
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/NodeDefinitionImpl.java
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/NodeTypeManagerImpl.java
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/PropertyDefinitionImpl.java
Added: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/ItemDefinitionDelegate.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/ItemDefinitionDelegate.java?rev=1335556&view=auto
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/ItemDefinitionDelegate.java (added)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/ItemDefinitionDelegate.java Tue May 8 14:55:48 2012
@@ -0,0 +1,54 @@
+/*
+ * 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.oak.jcr.nodetype;
+
+public class ItemDefinitionDelegate {
+
+ private String name;
+ private boolean autoCreated;
+ private boolean mandatory;
+ private int onParentVersion;
+ private boolean isProtected;
+
+ protected ItemDefinitionDelegate(String name, boolean autoCreated, boolean mandatory, int onParentVersion, boolean isProtected) {
+ this.name = name;
+ this.autoCreated = autoCreated;
+ this.mandatory = mandatory;
+ this.onParentVersion = onParentVersion;
+ this.isProtected = isProtected;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public int getOnParentVersion() {
+ return onParentVersion;
+ }
+
+ public boolean isAutoCreated() {
+ return autoCreated;
+ }
+
+ public boolean isMandatory() {
+ return mandatory;
+ }
+
+ public boolean isProtected() {
+ return isProtected;
+ }
+}
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/ItemDefinitionImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/ItemDefinitionImpl.java?rev=1335556&r1=1335555&r2=1335556&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/ItemDefinitionImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/ItemDefinitionImpl.java Tue May 8 14:55:48 2012
@@ -23,30 +23,16 @@ import org.apache.jackrabbit.oak.namepat
class ItemDefinitionImpl implements ItemDefinition {
+ private final ItemDefinitionDelegate dlg;
+
private final NodeType type;
protected final NameMapper mapper;
- private final String name;
-
- private final boolean autoCreated;
-
- private final boolean mandatory;
-
- private final int onParentRevision;
-
- private final boolean isProtected;
-
- protected ItemDefinitionImpl(
- NodeType type, NameMapper mapper, String name, boolean autoCreated,
- boolean mandatory, int onParentRevision, boolean isProtected) {
+ protected ItemDefinitionImpl(NodeType type, NameMapper mapper, ItemDefinitionDelegate delegate) {
+ this.dlg = delegate;
this.type = type;
this.mapper = mapper;
- this.name = name;
- this.autoCreated = autoCreated;
- this.mandatory = mandatory;
- this.onParentRevision = onParentRevision;
- this.isProtected = isProtected;
}
@Override
@@ -56,28 +42,26 @@ class ItemDefinitionImpl implements Item
@Override
public String getName() {
- return mapper.getJcrName(name);
+ return mapper.getJcrName(dlg.getName());
}
@Override
public boolean isAutoCreated() {
- return autoCreated;
+ return dlg.isAutoCreated();
}
@Override
public boolean isMandatory() {
- return mandatory;
+ return dlg.isMandatory();
}
@Override
public int getOnParentVersion() {
- return onParentRevision;
+ return dlg.getOnParentVersion();
}
@Override
public boolean isProtected() {
- return isProtected;
+ return dlg.isProtected();
}
-
-
}
Added: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/NodeDefinitionDelegate.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/NodeDefinitionDelegate.java?rev=1335556&view=auto
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/NodeDefinitionDelegate.java (added)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/NodeDefinitionDelegate.java Tue May 8 14:55:48 2012
@@ -0,0 +1,44 @@
+/*
+ * 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.oak.jcr.nodetype;
+
+public class NodeDefinitionDelegate extends ItemDefinitionDelegate {
+
+ private final String[] requiredPrimaryTypeNames;
+ private final String defaultPrimaryTypeName;
+ private final boolean allowsSameNameSiblings;
+
+ protected NodeDefinitionDelegate(String name, boolean autoCreated, boolean mandatory, int onParentVersion, boolean isProtected,
+ String[] requiredPrimaryTypeNames, String defaultPrimaryTypeName, boolean allowsSameNameSiblings) {
+ super(name, autoCreated, mandatory, onParentVersion, isProtected);
+ this.requiredPrimaryTypeNames = requiredPrimaryTypeNames;
+ this.defaultPrimaryTypeName = defaultPrimaryTypeName;
+ this.allowsSameNameSiblings = allowsSameNameSiblings;
+ }
+
+ public boolean allowsSameNameSiblings() {
+ return allowsSameNameSiblings;
+ }
+
+ public String getDefaultPrimaryTypeName() {
+ return defaultPrimaryTypeName;
+ }
+
+ public String[] getRequiredPrimaryTypeNames() {
+ return requiredPrimaryTypeNames;
+ }
+}
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/NodeDefinitionImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/NodeDefinitionImpl.java?rev=1335556&r1=1335555&r2=1335556&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/NodeDefinitionImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/NodeDefinitionImpl.java Tue May 8 14:55:48 2012
@@ -27,20 +27,12 @@ class NodeDefinitionImpl extends ItemDef
private final NodeTypeManager manager;
- private final String[] requiredPrimaryTypeNames;
+ private final NodeDefinitionDelegate dlg;
- private final String defaultPrimaryTypeName;
-
- private final boolean allowsSameNameSiblings;
-
- protected NodeDefinitionImpl(NodeTypeManager manager, NodeType type, NameMapper mapper, String name, boolean autoCreated,
- boolean mandatory, int onParentRevision, boolean isProtected, String[] requiredPrimaryTypeNames,
- String defaultPrimaryTypeName, boolean allowsSameNameSiblings) {
- super(type, mapper, name, autoCreated, mandatory, onParentRevision, isProtected);
+ protected NodeDefinitionImpl(NodeTypeManager manager, NodeType type, NameMapper mapper, NodeDefinitionDelegate delegate) {
+ super(type, mapper, delegate);
this.manager = manager;
- this.requiredPrimaryTypeNames = requiredPrimaryTypeNames;
- this.defaultPrimaryTypeName = defaultPrimaryTypeName;
- this.allowsSameNameSiblings = allowsSameNameSiblings;
+ this.dlg = delegate;
}
@Override
@@ -51,8 +43,7 @@ class NodeDefinitionImpl extends ItemDef
try {
types[i] = manager.getNodeType(names[i]);
} catch (RepositoryException e) {
- throw new IllegalStateException(
- "Inconsistent node definition: " + this, e);
+ throw new IllegalStateException("Inconsistent node definition: " + this, e);
}
}
return types;
@@ -60,11 +51,12 @@ class NodeDefinitionImpl extends ItemDef
@Override
public String[] getRequiredPrimaryTypeNames() {
- String[] names = new String[requiredPrimaryTypeNames.length];
- for (int i = 0; i < names.length; i++) {
- names[i] = mapper.getJcrName(requiredPrimaryTypeNames[i]);
+ String[] requiredPrimaryTypeNames = dlg.getRequiredPrimaryTypeNames();
+ String[] result = new String[requiredPrimaryTypeNames.length];
+ for (int i = 0; i < result.length; i++) {
+ result[i] = mapper.getJcrName(requiredPrimaryTypeNames[i]);
}
- return names;
+ return result;
}
@Override
@@ -79,12 +71,13 @@ class NodeDefinitionImpl extends ItemDef
@Override
public String getDefaultPrimaryTypeName() {
+ String defaultPrimaryTypeName = dlg.getDefaultPrimaryTypeName();
return defaultPrimaryTypeName == null ? null : mapper.getJcrName(defaultPrimaryTypeName);
}
@Override
public boolean allowsSameNameSiblings() {
- return allowsSameNameSiblings;
+ return dlg.allowsSameNameSiblings();
}
}
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/NodeTypeManagerImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/NodeTypeManagerImpl.java?rev=1335556&r1=1335555&r2=1335556&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/NodeTypeManagerImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/NodeTypeManagerImpl.java Tue May 8 14:55:48 2012
@@ -291,8 +291,9 @@ public class NodeTypeManagerImpl impleme
}
public NodeDefinition getNodeDefinition(NodeTypeManager ntm, NodeType nt, NameMapper mapper) {
- return new NodeDefinitionImpl(ntm, nt, mapper, name, autocreate, isMandatory, onParent, isProtected,
- requiredPrimaryTypes.toArray(new String[requiredPrimaryTypes.size()]), defaultPrimaryType, allowSns);
+ return new NodeDefinitionImpl(ntm, nt, mapper, new NodeDefinitionDelegate(name, autocreate, isMandatory, onParent,
+ isProtected, requiredPrimaryTypes.toArray(new String[requiredPrimaryTypes.size()]), defaultPrimaryType,
+ allowSns));
};
@Override
@@ -336,8 +337,8 @@ public class NodeTypeManagerImpl impleme
defaultCoreValues[i] = vf.getCoreValueFactory().createValue(defaultValues.get(i), requiredType);
}
- return new PropertyDefinitionImpl(nt, mapper, vf, name, autocreate, isMandatory, onParent, isProtected, requiredType,
- isMultiple, defaultCoreValues);
+ return new PropertyDefinitionImpl(nt, mapper, vf, new PropertyDefinitionDelegate(name, autocreate, isMandatory,
+ onParent, isProtected, requiredType, isMultiple, defaultCoreValues));
}
@Override
Added: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/PropertyDefinitionDelegate.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/PropertyDefinitionDelegate.java?rev=1335556&view=auto
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/PropertyDefinitionDelegate.java (added)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/PropertyDefinitionDelegate.java Tue May 8 14:55:48 2012
@@ -0,0 +1,46 @@
+/*
+ * 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.oak.jcr.nodetype;
+
+import org.apache.jackrabbit.oak.api.CoreValue;
+
+public class PropertyDefinitionDelegate extends ItemDefinitionDelegate {
+
+ private final int requiredType;
+ private final boolean multiple;
+ private final CoreValue[] defaultCoreValues;
+
+ protected PropertyDefinitionDelegate(String name, boolean autoCreated, boolean mandatory, int onParentVersion,
+ boolean isProtected, int requiredType, boolean multiple, CoreValue[] defaultCoreValues) {
+ super(name, autoCreated, mandatory, onParentVersion, isProtected);
+ this.requiredType = requiredType;
+ this.multiple = multiple;
+ this.defaultCoreValues = defaultCoreValues;
+ }
+
+ public CoreValue[] getDefaultCoreValues() {
+ return defaultCoreValues;
+ }
+
+ public int getRequiredType() {
+ return requiredType;
+ }
+
+ public boolean isMultiple() {
+ return multiple;
+ }
+}
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/PropertyDefinitionImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/PropertyDefinitionImpl.java?rev=1335556&r1=1335555&r2=1335556&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/PropertyDefinitionImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/PropertyDefinitionImpl.java Tue May 8 14:55:48 2012
@@ -24,30 +24,21 @@ import org.apache.jackrabbit.oak.api.Cor
import org.apache.jackrabbit.oak.jcr.value.ValueFactoryImpl;
import org.apache.jackrabbit.oak.namepath.NameMapper;
-class PropertyDefinitionImpl
- extends ItemDefinitionImpl implements PropertyDefinition {
+class PropertyDefinitionImpl extends ItemDefinitionImpl implements PropertyDefinition {
- private final int requiredType;
- private final boolean multiple;
- private final CoreValue[] defaultCoreValues;
+ private final PropertyDefinitionDelegate dlg;
private final ValueFactoryImpl vfac;
-
- public PropertyDefinitionImpl(
- NodeType type, NameMapper mapper, ValueFactoryImpl vfac, String name, boolean autoCreated,
- boolean mandatory, int onParentRevision, boolean isProtected,
- int requiredType, boolean multiple, CoreValue[] defaultCoreValues) {
- super(type, mapper, name, autoCreated,
- mandatory, onParentRevision, isProtected);
+
+ public PropertyDefinitionImpl(NodeType type, NameMapper mapper, ValueFactoryImpl vfac, PropertyDefinitionDelegate delegate) {
+ super(type, mapper, delegate);
this.vfac = vfac;
- this.requiredType = requiredType;
- this.multiple = multiple;
- this.defaultCoreValues = defaultCoreValues;
+ this.dlg = delegate;
}
@Override
public int getRequiredType() {
- return requiredType;
+ return dlg.getRequiredType();
}
@Override
@@ -57,16 +48,17 @@ class PropertyDefinitionImpl
@Override
public Value[] getDefaultValues() {
- Value[] defaults = new Value[defaultCoreValues.length];
+ CoreValue[] defaults = dlg.getDefaultCoreValues();
+ Value[] result = new Value[defaults.length];
for (int i = 0; i < defaults.length; i++) {
- defaults[i] = vfac.createValue(defaultCoreValues[i]);
+ result[i] = vfac.createValue(defaults[i]);
}
- return defaults;
+ return result;
}
@Override
public boolean isMultiple() {
- return multiple;
+ return dlg.isMultiple();
}
@Override