You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by oh...@apache.org on 2014/03/09 21:59:39 UTC
svn commit: r1575760 - in
/commons/proper/configuration/branches/immutableNodes/src:
main/java/org/apache/commons/configuration/tree/
test/java/org/apache/commons/configuration/tree/
test/java/org/apache/commons/configuration/tree/xpath/
Author: oheger
Date: Sun Mar 9 20:59:39 2014
New Revision: 1575760
URL: http://svn.apache.org/r1575760
Log:
InMemoryNodeModel no longer implements the NodeHandler interface.
This caused a number of adaptations in other classes.
Modified:
commons/proper/configuration/branches/immutableNodes/src/main/java/org/apache/commons/configuration/tree/InMemoryNodeModel.java
commons/proper/configuration/branches/immutableNodes/src/main/java/org/apache/commons/configuration/tree/ModelTransaction.java
commons/proper/configuration/branches/immutableNodes/src/test/java/org/apache/commons/configuration/tree/TestDefaultExpressionEngine.java
commons/proper/configuration/branches/immutableNodes/src/test/java/org/apache/commons/configuration/tree/TestInMemoryNodeModel.java
commons/proper/configuration/branches/immutableNodes/src/test/java/org/apache/commons/configuration/tree/TestNodeSelector.java
commons/proper/configuration/branches/immutableNodes/src/test/java/org/apache/commons/configuration/tree/TestNodeTreeWalker.java
commons/proper/configuration/branches/immutableNodes/src/test/java/org/apache/commons/configuration/tree/TestQueryResult.java
commons/proper/configuration/branches/immutableNodes/src/test/java/org/apache/commons/configuration/tree/xpath/AbstractXPathTest.java
commons/proper/configuration/branches/immutableNodes/src/test/java/org/apache/commons/configuration/tree/xpath/TestConfigurationAttributePointer.java
commons/proper/configuration/branches/immutableNodes/src/test/java/org/apache/commons/configuration/tree/xpath/TestXPathContextFactory.java
commons/proper/configuration/branches/immutableNodes/src/test/java/org/apache/commons/configuration/tree/xpath/TestXPathExpressionEngine.java
Modified: commons/proper/configuration/branches/immutableNodes/src/main/java/org/apache/commons/configuration/tree/InMemoryNodeModel.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/immutableNodes/src/main/java/org/apache/commons/configuration/tree/InMemoryNodeModel.java?rev=1575760&r1=1575759&r2=1575760&view=diff
==============================================================================
--- commons/proper/configuration/branches/immutableNodes/src/main/java/org/apache/commons/configuration/tree/InMemoryNodeModel.java (original)
+++ commons/proper/configuration/branches/immutableNodes/src/main/java/org/apache/commons/configuration/tree/InMemoryNodeModel.java Sun Mar 9 20:59:39 2014
@@ -16,7 +16,6 @@
*/
package org.apache.commons.configuration.tree;
-import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
@@ -24,11 +23,9 @@ import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
-import java.util.Set;
import java.util.concurrent.atomic.AtomicReference;
import org.apache.commons.configuration.ex.ConfigurationRuntimeException;
-import org.apache.commons.lang3.StringUtils;
/**
* <p>
@@ -50,9 +47,17 @@ import org.apache.commons.lang3.StringUt
* @version $Id$
* @since 2.0
*/
-public class InMemoryNodeModel implements NodeHandler<ImmutableNode>,
- NodeModel<ImmutableNode>
+public class InMemoryNodeModel implements NodeModel<ImmutableNode>
{
+ /**
+ * A dummy node handler instance used in operations which require only a
+ * limited functionality.
+ */
+ private static final NodeHandler<ImmutableNode> DUMMY_HANDLER =
+ new TreeData(null,
+ Collections.<ImmutableNode, ImmutableNode> emptyMap(),
+ Collections.<ImmutableNode, ImmutableNode> emptyMap(), null);
+
/** Stores information about the current nodes structure. */
private final AtomicReference<TreeData> structure;
@@ -91,101 +96,7 @@ public class InMemoryNodeModel implement
*/
public NodeHandler<ImmutableNode> getNodeHandler()
{
- return this;
- }
-
- public String nodeName(ImmutableNode node)
- {
- return node.getNodeName();
- }
-
- public Object getValue(ImmutableNode node)
- {
- return node.getValue();
- }
-
- /**
- * {@inheritDoc} This implementation uses internal mapping information to
- * determine the parent node of the given node. If the passed in node is the
- * root node of this model, result is <b>null</b>. If the node is not part
- * of this model, an exception is thrown. Otherwise, the parent node is
- * returned.
- *
- * @throws IllegalArgumentException if the passed in node does not belong to
- * this model
- */
- public ImmutableNode getParent(ImmutableNode node)
- {
- return getTreeData().getParent(node);
- }
-
- public List<ImmutableNode> getChildren(ImmutableNode node)
- {
- return node.getChildren();
- }
-
- /**
- * {@inheritDoc} This implementation returns an immutable list with all
- * child nodes that have the specified name.
- */
- public List<ImmutableNode> getChildren(ImmutableNode node, String name)
- {
- List<ImmutableNode> result =
- new ArrayList<ImmutableNode>(node.getChildren().size());
- for (ImmutableNode c : node.getChildren())
- {
- if (StringUtils.equals(name, c.getNodeName()))
- {
- result.add(c);
- }
- }
- return Collections.unmodifiableList(result);
- }
-
- public ImmutableNode getChild(ImmutableNode node, int index)
- {
- return node.getChildren().get(index);
- }
-
- public int indexOfChild(ImmutableNode parent, ImmutableNode child)
- {
- return parent.getChildren().indexOf(child);
- }
-
- public int getChildrenCount(ImmutableNode node, String name)
- {
- if (name == null)
- {
- return node.getChildren().size();
- }
- else
- {
- return getChildren(node, name).size();
- }
- }
-
- public Set<String> getAttributes(ImmutableNode node)
- {
- return node.getAttributes().keySet();
- }
-
- public boolean hasAttributes(ImmutableNode node)
- {
- return !node.getAttributes().isEmpty();
- }
-
- public Object getAttributeValue(ImmutableNode node, String name)
- {
- return node.getAttributes().get(name);
- }
-
- /**
- * {@inheritDoc} This implementation assumes that a node is defined if it
- * has a value or has children or has attributes.
- */
- public boolean isDefined(ImmutableNode node)
- {
- return checkIfNodeDefined(node);
+ return getTreeData();
}
public void addProperty(final String key, final Iterable<?> values,
@@ -214,7 +125,7 @@ public class InMemoryNodeModel implement
{
List<QueryResult<ImmutableNode>> results =
resolver.resolveKey(tx.getCurrentData().getRoot(),
- key, InMemoryNodeModel.this);
+ key, tx.getCurrentData());
if (results.size() == 1)
{
if (results.get(0).isAttributeResult())
@@ -227,7 +138,7 @@ public class InMemoryNodeModel implement
{
NodeAddData<ImmutableNode> addData =
resolver.resolveAddKey(tx.getCurrentData()
- .getRoot(), key, InMemoryNodeModel.this);
+ .getRoot(), key, tx.getCurrentData());
if (addData.isAttribute())
{
throw attributeKeyException(key);
@@ -256,7 +167,7 @@ public class InMemoryNodeModel implement
NodeUpdateData<ImmutableNode> updateData =
resolver.resolveUpdateKey(
tx.getCurrentData().getRoot(), key, value,
- InMemoryNodeModel.this);
+ tx.getCurrentData());
if (!updateData.getNewValues().isEmpty())
{
initializeAddTransaction(tx, key,
@@ -289,7 +200,7 @@ public class InMemoryNodeModel implement
TreeData currentStructure = tx.getCurrentData();
for (QueryResult<ImmutableNode> result : resolver
.resolveKey(currentStructure.getRoot(), key,
- InMemoryNodeModel.this))
+ tx.getCurrentData()))
{
if (result.isAttributeResult())
{
@@ -318,13 +229,16 @@ public class InMemoryNodeModel implement
* {@inheritDoc} If this operation leaves an affected node in an undefined
* state, it is removed from the model.
*/
- public void clearProperty(final String key, final NodeKeyResolver<ImmutableNode> resolver)
+ public void clearProperty(final String key,
+ final NodeKeyResolver<ImmutableNode> resolver)
{
- updateModel(new TransactionInitializer() {
- public boolean initTransaction(ModelTransaction tx) {
+ updateModel(new TransactionInitializer()
+ {
+ public boolean initTransaction(ModelTransaction tx)
+ {
List<QueryResult<ImmutableNode>> results =
resolver.resolveKey(tx.getCurrentData().getRoot(), key,
- InMemoryNodeModel.this);
+ tx.getCurrentData());
initializeClearTransaction(tx, results);
return true;
}
@@ -382,7 +296,7 @@ public class InMemoryNodeModel implement
TreeData current = structure.get();
NodeTracker newTracker =
current.getNodeTracker().trackNode(current.getRoot(),
- selector, resolver, this);
+ selector, resolver, current);
done =
structure.compareAndSet(current,
current.updateNodeTracker(newTracker));
@@ -484,7 +398,7 @@ public class InMemoryNodeModel implement
parents.put(c, node);
}
}
- }, this);
+ }, DUMMY_HANDLER);
}
/**
@@ -512,7 +426,8 @@ public class InMemoryNodeModel implement
Iterable<?> values, NodeKeyResolver<ImmutableNode> resolver)
{
NodeAddData<ImmutableNode> addData =
- resolver.resolveAddKey(tx.getCurrentData().getRoot(), key, this);
+ resolver.resolveAddKey(tx.getCurrentData().getRoot(), key,
+ tx.getCurrentData());
if (addData.isAttribute())
{
addAttributeProperty(tx, addData, values);
Modified: commons/proper/configuration/branches/immutableNodes/src/main/java/org/apache/commons/configuration/tree/ModelTransaction.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/immutableNodes/src/main/java/org/apache/commons/configuration/tree/ModelTransaction.java?rev=1575760&r1=1575759&r2=1575760&view=diff
==============================================================================
--- commons/proper/configuration/branches/immutableNodes/src/main/java/org/apache/commons/configuration/tree/ModelTransaction.java (original)
+++ commons/proper/configuration/branches/immutableNodes/src/main/java/org/apache/commons/configuration/tree/ModelTransaction.java Sun Mar 9 20:59:39 2014
@@ -242,7 +242,7 @@ class ModelTransaction
updateParentMapping();
return new TreeData(newRoot, parentMapping,
replacedNodes, currentData.getNodeTracker().update(newRoot,
- getResolver(), model));
+ getResolver(), getCurrentData()));
}
/**
@@ -402,7 +402,7 @@ class ModelTransaction
parentMapping.remove(node);
removeNodeFromReplacementMapping(node);
}
- }, model);
+ }, getCurrentData());
}
/**
Modified: commons/proper/configuration/branches/immutableNodes/src/test/java/org/apache/commons/configuration/tree/TestDefaultExpressionEngine.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/immutableNodes/src/test/java/org/apache/commons/configuration/tree/TestDefaultExpressionEngine.java?rev=1575760&r1=1575759&r2=1575760&view=diff
==============================================================================
--- commons/proper/configuration/branches/immutableNodes/src/test/java/org/apache/commons/configuration/tree/TestDefaultExpressionEngine.java (original)
+++ commons/proper/configuration/branches/immutableNodes/src/test/java/org/apache/commons/configuration/tree/TestDefaultExpressionEngine.java Sun Mar 9 20:59:39 2014
@@ -65,7 +65,7 @@ public class TestDefaultExpressionEngine
public static void setUpBeforeClass()
{
root = setUpNodes();
- handler = new InMemoryNodeModel(root);
+ handler = new InMemoryNodeModel(root).getNodeHandler();
}
@Before
Modified: commons/proper/configuration/branches/immutableNodes/src/test/java/org/apache/commons/configuration/tree/TestInMemoryNodeModel.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/immutableNodes/src/test/java/org/apache/commons/configuration/tree/TestInMemoryNodeModel.java?rev=1575760&r1=1575759&r2=1575760&view=diff
==============================================================================
--- commons/proper/configuration/branches/immutableNodes/src/test/java/org/apache/commons/configuration/tree/TestInMemoryNodeModel.java (original)
+++ commons/proper/configuration/branches/immutableNodes/src/test/java/org/apache/commons/configuration/tree/TestInMemoryNodeModel.java Sun Mar 9 20:59:39 2014
@@ -90,7 +90,7 @@ public class TestInMemoryNodeModel
public void testGetNodeHandler()
{
InMemoryNodeModel model = new InMemoryNodeModel(ROOT_PERSONAE_TREE);
- assertSame("Wrong node handler", model, model.getNodeHandler());
+ assertSame("Wrong node handler", model.getTreeData(), model.getNodeHandler());
}
/**
@@ -119,7 +119,7 @@ public class TestInMemoryNodeModel
"Homer/Ilias"), "location", false,
Collections.singleton("locations"));
InMemoryNodeModel model = new InMemoryNodeModel(ROOT_AUTHORS_TREE);
- EasyMock.expect(resolver.resolveAddKey(ROOT_AUTHORS_TREE, KEY, model))
+ EasyMock.expect(resolver.resolveAddKey(ROOT_AUTHORS_TREE, KEY, model.getNodeHandler()))
.andReturn(addData);
EasyMock.replay(resolver);
String[] locations = {
@@ -155,8 +155,9 @@ public class TestInMemoryNodeModel
new NodeAddData<ImmutableNode>(nodeForKey(ROOT_AUTHORS_TREE,
"Homer"), "work", false, null);
InMemoryNodeModel model = new InMemoryNodeModel(ROOT_AUTHORS_TREE);
- EasyMock.expect(resolver.resolveAddKey(ROOT_AUTHORS_TREE, KEY, model))
- .andReturn(addData);
+ EasyMock.expect(
+ resolver.resolveAddKey(ROOT_AUTHORS_TREE, KEY,
+ model.getNodeHandler())).andReturn(addData);
EasyMock.replay(resolver);
model.addProperty(KEY, Collections.singleton("Odyssee"), resolver);
@@ -179,8 +180,9 @@ public class TestInMemoryNodeModel
"Homer/Ilias"), "location", false,
Collections.singleton("locations"));
InMemoryNodeModel model = new InMemoryNodeModel(ROOT_AUTHORS_TREE);
- EasyMock.expect(resolver.resolveAddKey(ROOT_AUTHORS_TREE, KEY, model))
- .andReturn(addData);
+ EasyMock.expect(
+ resolver.resolveAddKey(ROOT_AUTHORS_TREE, KEY,
+ model.getNodeHandler())).andReturn(addData);
EasyMock.replay(resolver);
String[] locations = {
"Troja", "Beach", "Olympos"
@@ -206,13 +208,14 @@ public class TestInMemoryNodeModel
private static void checkPathToRoot(InMemoryNodeModel model,
ImmutableNode node, String... path)
{
+ NodeHandler<ImmutableNode> handler = model.getNodeHandler();
for (int i = path.length - 1; i >= 0; i--)
{
- node = model.getParent(node);
+ node = handler.getParent(node);
assertEquals("Wrong node name", path[i], node.getNodeName());
}
assertSame("Wrong root node", model.getRootNode(),
- model.getParent(node));
+ handler.getParent(node));
}
/**
@@ -227,8 +230,9 @@ public class TestInMemoryNodeModel
"Homer/Ilias"), "number", true, Arrays.asList("scenes",
"scene"));
InMemoryNodeModel model = new InMemoryNodeModel(ROOT_AUTHORS_TREE);
- EasyMock.expect(resolver.resolveAddKey(ROOT_AUTHORS_TREE, KEY, model))
- .andReturn(addData);
+ EasyMock.expect(
+ resolver.resolveAddKey(ROOT_AUTHORS_TREE, KEY,
+ model.getNodeHandler())).andReturn(addData);
EasyMock.replay(resolver);
model.addProperty(KEY, Collections.singleton(1), resolver);
@@ -249,8 +253,9 @@ public class TestInMemoryNodeModel
NodeStructureHelper.author(0)), "year", true,
Arrays.asList("dateOfBirth"));
InMemoryNodeModel model = new InMemoryNodeModel(ROOT_AUTHORS_TREE);
- EasyMock.expect(resolver.resolveAddKey(ROOT_AUTHORS_TREE, KEY, model))
- .andReturn(addData);
+ EasyMock.expect(
+ resolver.resolveAddKey(ROOT_AUTHORS_TREE, KEY,
+ model.getNodeHandler())).andReturn(addData);
EasyMock.replay(resolver);
final Integer year = 1564;
@@ -272,8 +277,9 @@ public class TestInMemoryNodeModel
new NodeAddData<ImmutableNode>(nodeForKey(ROOT_AUTHORS_TREE,
"Shakespeare/The Tempest"), "year", true, null);
InMemoryNodeModel model = new InMemoryNodeModel(ROOT_AUTHORS_TREE);
- EasyMock.expect(resolver.resolveAddKey(ROOT_AUTHORS_TREE, KEY, model))
- .andReturn(addData);
+ EasyMock.expect(
+ resolver.resolveAddKey(ROOT_AUTHORS_TREE, KEY,
+ model.getNodeHandler())).andReturn(addData);
EasyMock.replay(resolver);
model.addProperty(KEY, Collections.singleton(1611), resolver);
@@ -309,8 +315,10 @@ public class TestInMemoryNodeModel
QueryResult<ImmutableNode> result =
QueryResult.createNodeResult(nodeForKey(model,
"Homer/Ilias/Achilles"));
- EasyMock.expect(resolver.resolveKey(ROOT_AUTHORS_TREE, KEY, model))
- .andReturn(Collections.singletonList(result));
+ EasyMock.expect(
+ resolver.resolveKey(ROOT_AUTHORS_TREE, KEY,
+ model.getNodeHandler())).andReturn(
+ Collections.singletonList(result));
EasyMock.replay(resolver);
model.clearTree(KEY, resolver);
@@ -337,14 +345,16 @@ public class TestInMemoryNodeModel
InMemoryNodeModel model = new InMemoryNodeModel(ROOT_AUTHORS_TREE);
QueryResult<ImmutableNode> result =
QueryResult.createNodeResult(nodeForKey(model, pathToRemove));
- EasyMock.expect(resolver.resolveKey(ROOT_AUTHORS_TREE, KEY, model))
- .andReturn(Collections.singletonList(result));
+ EasyMock.expect(
+ resolver.resolveKey(ROOT_AUTHORS_TREE, KEY,
+ model.getNodeHandler())).andReturn(
+ Collections.singletonList(result));
EasyMock.replay(resolver);
model.clearTree(KEY, resolver);
try
{
- model.getParent(nodeToCheck);
+ model.getNodeHandler().getParent(nodeToCheck);
fail("Removed node still in parent mapping!");
}
catch (IllegalArgumentException iaex)
@@ -391,8 +401,10 @@ public class TestInMemoryNodeModel
QueryResult<ImmutableNode> result =
QueryResult.createNodeResult(nodeForKey(model,
nodePathWithEndNode("Achilles", path)));
- EasyMock.expect(resolver.resolveKey(ROOT_AUTHORS_TREE, KEY, model))
- .andReturn(Collections.singletonList(result));
+ EasyMock.expect(
+ resolver.resolveKey(ROOT_AUTHORS_TREE, KEY,
+ model.getNodeHandler())).andReturn(
+ Collections.singletonList(result));
EasyMock.replay(resolver);
model.clearTree(KEY, resolver);
@@ -417,8 +429,9 @@ public class TestInMemoryNodeModel
{
results.add(QueryResult.createNodeResult(child));
}
- EasyMock.expect(resolver.resolveKey(ROOT_AUTHORS_TREE, KEY, model))
- .andReturn(results);
+ EasyMock.expect(
+ resolver.resolveKey(ROOT_AUTHORS_TREE, KEY,
+ model.getNodeHandler())).andReturn(results);
EasyMock.replay(resolver);
model.clearTree(KEY, resolver);
@@ -444,13 +457,15 @@ public class TestInMemoryNodeModel
ImmutableNode root =
new ImmutableNode.Builder(1).addChild(child).create();
InMemoryNodeModel model = new InMemoryNodeModel(root);
- EasyMock.expect(resolver.resolveKey(root, KEY, model)).andReturn(
- Collections.singletonList(QueryResult.createNodeResult(child)));
+ EasyMock.expect(resolver.resolveKey(root, KEY, model.getNodeHandler()))
+ .andReturn(
+ Collections.singletonList(QueryResult
+ .createNodeResult(child)));
EasyMock.replay(resolver);
model.clearTree(KEY, resolver);
assertFalse("Root node still defined",
- model.isDefined(model.getRootNode()));
+ model.getNodeHandler().isDefined(model.getRootNode()));
}
/**
@@ -462,12 +477,12 @@ public class TestInMemoryNodeModel
NodeKeyResolver<ImmutableNode> resolver = createResolver();
InMemoryNodeModel model = new InMemoryNodeModel(ROOT_PERSONAE_TREE);
final String nodeName = "Puck";
- EasyMock.expect(resolver.resolveKey(ROOT_PERSONAE_TREE, KEY, model))
- .andReturn(
- Collections.singletonList(QueryResult
- .createAttributeResult(
- nodeForKey(model, nodeName),
- NodeStructureHelper.ATTR_AUTHOR)));
+ EasyMock.expect(
+ resolver.resolveKey(ROOT_PERSONAE_TREE, KEY,
+ model.getNodeHandler())).andReturn(
+ Collections.singletonList(QueryResult.createAttributeResult(
+ nodeForKey(model, nodeName),
+ NodeStructureHelper.ATTR_AUTHOR)));
EasyMock.replay(resolver);
model.clearTree(KEY, resolver);
@@ -492,8 +507,9 @@ public class TestInMemoryNodeModel
results.add(QueryResult.createAttributeResult(orgNode,
NodeStructureHelper.ATTR_AUTHOR));
results.add(QueryResult.createNodeResult(orgNode.getChildren().get(0)));
- EasyMock.expect(resolver.resolveKey(ROOT_PERSONAE_TREE, KEY, model))
- .andReturn(results);
+ EasyMock.expect(
+ resolver.resolveKey(ROOT_PERSONAE_TREE, KEY,
+ model.getNodeHandler())).andReturn(results);
EasyMock.replay(resolver);
model.clearTree(KEY, resolver);
@@ -516,7 +532,8 @@ public class TestInMemoryNodeModel
{
InMemoryNodeModel model = new InMemoryNodeModel(ROOT_AUTHORS_TREE);
model.clear();
- assertFalse("Got still data", model.isDefined(model.getRootNode()));
+ assertFalse("Got still data",
+ model.getNodeHandler().isDefined(model.getRootNode()));
assertEquals("Root name was changed", ROOT_AUTHORS_TREE.getNodeName(),
model.getRootNode().getNodeName());
}
@@ -534,12 +551,14 @@ public class TestInMemoryNodeModel
results.add(QueryResult.createNodeResult(nodeForKey(model,
NodeStructureHelper.author(0))));
results.add(QueryResult.createNodeResult(ROOT_AUTHORS_TREE));
- EasyMock.expect(resolver.resolveKey(ROOT_AUTHORS_TREE, KEY, model))
- .andReturn(results);
+ EasyMock.expect(
+ resolver.resolveKey(ROOT_AUTHORS_TREE, KEY,
+ model.getNodeHandler())).andReturn(results);
EasyMock.replay(resolver);
model.clearTree(KEY, resolver);
- assertFalse("Got still data", model.isDefined(model.getRootNode()));
+ assertFalse("Got still data",
+ model.getNodeHandler().isDefined(model.getRootNode()));
}
/**
@@ -559,12 +578,11 @@ public class TestInMemoryNodeModel
EasyMock.expect(
resolver.resolveAddKey(
EasyMock.anyObject(ImmutableNode.class),
- EasyMock.eq(KEY), EasyMock.eq(model))).andAnswer(
- new IAnswer<NodeAddData<ImmutableNode>>()
- {
+ EasyMock.eq(KEY),
+ EasyMock.anyObject(TreeData.class))).andAnswer(
+ new IAnswer<NodeAddData<ImmutableNode>>() {
public NodeAddData<ImmutableNode> answer()
- throws Throwable
- {
+ throws Throwable {
assertSame("Wrong root node", model.getRootNode(),
EasyMock.getCurrentArguments()[0]);
ImmutableNode addParent = nodeForKey(model, key);
@@ -602,7 +620,7 @@ public class TestInMemoryNodeModel
new InMemoryNodeModel(NodeStructureHelper.ROOT_AUTHORS_TREE);
EasyMock.expect(
resolver.resolveAddKey(EasyMock.anyObject(ImmutableNode.class),
- EasyMock.eq(KEY), EasyMock.eq(model)))
+ EasyMock.eq(KEY), EasyMock.anyObject(TreeData.class)))
.andAnswer(new IAnswer<NodeAddData<ImmutableNode>>()
{
public NodeAddData<ImmutableNode> answer() throws Throwable
@@ -675,10 +693,11 @@ public class TestInMemoryNodeModel
new InMemoryNodeModel(NodeStructureHelper.ROOT_PERSONAE_TREE);
final String nodeKey =
"Ariel/The Tempest/" + NodeStructureHelper.ELEM_ORG_VALUE;
- EasyMock.expect(resolver.resolveKey(model.getRootNode(), KEY, model))
- .andReturn(
- Collections.singletonList(QueryResult
- .createNodeResult(nodeForKey(model, nodeKey))));
+ EasyMock.expect(
+ resolver.resolveKey(model.getRootNode(), KEY,
+ model.getNodeHandler())).andReturn(
+ Collections.singletonList(QueryResult
+ .createNodeResult(nodeForKey(model, nodeKey))));
EasyMock.replay(resolver);
model.clearProperty(KEY, resolver);
@@ -697,12 +716,12 @@ public class TestInMemoryNodeModel
new InMemoryNodeModel(NodeStructureHelper.ROOT_PERSONAE_TREE);
final String nodeKey =
"Prospero/The Tempest/" + NodeStructureHelper.ELEM_ORG_VALUE;
- EasyMock.expect(resolver.resolveKey(model.getRootNode(), KEY, model))
- .andReturn(
- Collections.singletonList(QueryResult
- .createAttributeResult(
- nodeForKey(model, nodeKey),
- NodeStructureHelper.ATTR_TESTED)));
+ EasyMock.expect(
+ resolver.resolveKey(model.getRootNode(), KEY,
+ model.getNodeHandler())).andReturn(
+ Collections.singletonList(QueryResult.createAttributeResult(
+ nodeForKey(model, nodeKey),
+ NodeStructureHelper.ATTR_TESTED)));
EasyMock.replay(resolver);
model.clearProperty(KEY, resolver);
@@ -725,10 +744,11 @@ public class TestInMemoryNodeModel
Collections.<Object> singleton("Odyssee"), null, KEY);
InMemoryNodeModel model = new InMemoryNodeModel(ROOT_AUTHORS_TREE);
EasyMock.expect(
- resolver.resolveUpdateKey(ROOT_AUTHORS_TREE, KEY, this, model))
- .andReturn(updateData);
- EasyMock.expect(resolver.resolveAddKey(ROOT_AUTHORS_TREE, KEY, model))
- .andReturn(addData);
+ resolver.resolveUpdateKey(ROOT_AUTHORS_TREE, KEY, this,
+ model.getNodeHandler())).andReturn(updateData);
+ EasyMock.expect(
+ resolver.resolveAddKey(ROOT_AUTHORS_TREE, KEY,
+ model.getNodeHandler())).andReturn(addData);
EasyMock.replay(resolver);
model.setProperty(KEY, this, resolver);
@@ -757,7 +777,7 @@ public class TestInMemoryNodeModel
EasyMock.expect(
resolver.resolveUpdateKey(
NodeStructureHelper.ROOT_PERSONAE_TREE, KEY, this,
- model)).andReturn(updateData);
+ model.getNodeHandler())).andReturn(updateData);
EasyMock.replay(resolver);
model.setProperty(KEY, this, resolver);
@@ -789,7 +809,7 @@ public class TestInMemoryNodeModel
EasyMock.expect(
resolver.resolveUpdateKey(
NodeStructureHelper.ROOT_PERSONAE_TREE, KEY, this,
- model)).andReturn(updateData);
+ model.getNodeHandler())).andReturn(updateData);
EasyMock.replay(resolver);
model.setProperty(KEY, this, resolver);
@@ -811,7 +831,7 @@ public class TestInMemoryNodeModel
EasyMock.expect(
resolver.resolveUpdateKey(
NodeStructureHelper.ROOT_PERSONAE_TREE, KEY, this,
- model)).andReturn(
+ model.getNodeHandler())).andReturn(
new NodeUpdateData<ImmutableNode>(null, null, null, null));
EasyMock.replay(resolver);
@@ -837,7 +857,7 @@ public class TestInMemoryNodeModel
.create();
EasyMock.expect(
resolver.resolveKey(NodeStructureHelper.ROOT_AUTHORS_TREE, KEY,
- model)).andReturn(
+ model.getNodeHandler())).andReturn(
Collections.singletonList(QueryResult
.createNodeResult(nodeForKey(model, key))));
EasyMock.replay(resolver);
@@ -865,11 +885,11 @@ public class TestInMemoryNodeModel
final String newPersona = "Mephisto";
EasyMock.expect(
resolver.resolveKey(NodeStructureHelper.ROOT_AUTHORS_TREE, KEY,
- model)).andReturn(
+ model.getNodeHandler())).andReturn(
new ArrayList<QueryResult<ImmutableNode>>(0));
EasyMock.expect(
resolver.resolveAddKey(NodeStructureHelper.ROOT_AUTHORS_TREE,
- KEY, model)).andReturn(
+ KEY, model.getNodeHandler())).andReturn(
new NodeAddData<ImmutableNode>(
NodeStructureHelper.ROOT_AUTHORS_TREE, newWork, false,
Arrays.asList(newAuthor)));
@@ -893,7 +913,7 @@ public class TestInMemoryNodeModel
new InMemoryNodeModel(NodeStructureHelper.ROOT_AUTHORS_TREE);
EasyMock.expect(
resolver.resolveKey(NodeStructureHelper.ROOT_AUTHORS_TREE, KEY,
- model)).andReturn(
+ model.getNodeHandler())).andReturn(
Collections.singletonList(QueryResult.createAttributeResult(
nodeForKey(model, NodeStructureHelper.author(1)),
"test")));
@@ -915,11 +935,11 @@ public class TestInMemoryNodeModel
new InMemoryNodeModel(NodeStructureHelper.ROOT_AUTHORS_TREE);
EasyMock.expect(
resolver.resolveKey(NodeStructureHelper.ROOT_AUTHORS_TREE, KEY,
- model)).andReturn(
+ model.getNodeHandler())).andReturn(
Collections.<QueryResult<ImmutableNode>> emptyList());
EasyMock.expect(
resolver.resolveAddKey(NodeStructureHelper.ROOT_AUTHORS_TREE,
- KEY, model)).andReturn(
+ KEY, model.getNodeHandler())).andReturn(
new NodeAddData<ImmutableNode>(
NodeStructureHelper.ROOT_AUTHORS_TREE, "test", true,
null));
@@ -979,7 +999,7 @@ public class TestInMemoryNodeModel
NodeStructureHelper.ROOT_AUTHORS_TREE, model.getRootNode());
ImmutableNode node = nodeForKey(model, "Homer/Ilias");
assertEquals("Wrong parent mapping", nodeForKey(model, "Homer"),
- model.getParent(node));
+ model.getNodeHandler().getParent(node));
}
/**
Modified: commons/proper/configuration/branches/immutableNodes/src/test/java/org/apache/commons/configuration/tree/TestNodeSelector.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/immutableNodes/src/test/java/org/apache/commons/configuration/tree/TestNodeSelector.java?rev=1575760&r1=1575759&r2=1575760&view=diff
==============================================================================
--- commons/proper/configuration/branches/immutableNodes/src/test/java/org/apache/commons/configuration/tree/TestNodeSelector.java (original)
+++ commons/proper/configuration/branches/immutableNodes/src/test/java/org/apache/commons/configuration/tree/TestNodeSelector.java Sun Mar 9 20:59:39 2014
@@ -54,7 +54,7 @@ public class TestNodeSelector
public static void setUpBeforeClass() throws Exception
{
resolver = createResolver();
- handler = new InMemoryNodeModel();
+ handler = new InMemoryNodeModel().getNodeHandler();
root =
new ImmutableNode.Builder(1).addChild(
NodeStructureHelper.ROOT_TABLES_TREE).create();
Modified: commons/proper/configuration/branches/immutableNodes/src/test/java/org/apache/commons/configuration/tree/TestNodeTreeWalker.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/immutableNodes/src/test/java/org/apache/commons/configuration/tree/TestNodeTreeWalker.java?rev=1575760&r1=1575759&r2=1575760&view=diff
==============================================================================
--- commons/proper/configuration/branches/immutableNodes/src/test/java/org/apache/commons/configuration/tree/TestNodeTreeWalker.java (original)
+++ commons/proper/configuration/branches/immutableNodes/src/test/java/org/apache/commons/configuration/tree/TestNodeTreeWalker.java Sun Mar 9 20:59:39 2014
@@ -70,6 +70,16 @@ public class TestNodeTreeWalker
}
/**
+ * Creates a dummy node handler.
+ *
+ * @return the node handler
+ */
+ private static NodeHandler<ImmutableNode> createHandler()
+ {
+ return new InMemoryNodeModel().getNodeHandler();
+ }
+
+ /**
* Tries a walk() operation without a node handler.
*/
@Test(expected = IllegalArgumentException.class)
@@ -86,7 +96,7 @@ public class TestNodeTreeWalker
public void testWalkNoVisitor()
{
NodeTreeWalker.INSTANCE.walkDFS(NodeStructureHelper.ROOT_AUTHORS_TREE,
- null, new InMemoryNodeModel());
+ null, createHandler());
}
/**
@@ -110,7 +120,7 @@ public class TestNodeTreeWalker
List<String> expected = expectDFS();
TestVisitor visitor = new TestVisitor();
NodeTreeWalker.INSTANCE.walkDFS(NodeStructureHelper.ROOT_AUTHORS_TREE,
- visitor, new InMemoryNodeModel());
+ visitor, createHandler());
assertEquals("Wrong visited nodes", expected, visitor.getVisitedNodes());
}
@@ -159,7 +169,7 @@ public class TestNodeTreeWalker
final int nodeCount = 5;
visitor.setMaxNodeCount(nodeCount);
NodeTreeWalker.INSTANCE.walkDFS(NodeStructureHelper.ROOT_AUTHORS_TREE,
- visitor, new InMemoryNodeModel());
+ visitor, createHandler());
assertEquals("Wrong number of visited nodes", nodeCount, visitor
.getVisitedNodes().size());
}
@@ -185,7 +195,7 @@ public class TestNodeTreeWalker
List<String> expected = expectBFS();
TestVisitor visitor = new TestVisitor();
NodeTreeWalker.INSTANCE.walkBFS(NodeStructureHelper.ROOT_AUTHORS_TREE,
- visitor, new InMemoryNodeModel());
+ visitor, createHandler());
assertEquals("Wrong visited nodes", expected, visitor.getVisitedNodes());
}
@@ -230,7 +240,7 @@ public class TestNodeTreeWalker
final int nodeCount = 9;
visitor.setMaxNodeCount(nodeCount);
NodeTreeWalker.INSTANCE.walkBFS(NodeStructureHelper.ROOT_AUTHORS_TREE,
- visitor, new InMemoryNodeModel());
+ visitor, createHandler());
assertEquals("Wrong number of visited nodes", nodeCount, visitor
.getVisitedNodes().size());
}
Modified: commons/proper/configuration/branches/immutableNodes/src/test/java/org/apache/commons/configuration/tree/TestQueryResult.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/immutableNodes/src/test/java/org/apache/commons/configuration/tree/TestQueryResult.java?rev=1575760&r1=1575759&r2=1575760&view=diff
==============================================================================
--- commons/proper/configuration/branches/immutableNodes/src/test/java/org/apache/commons/configuration/tree/TestQueryResult.java (original)
+++ commons/proper/configuration/branches/immutableNodes/src/test/java/org/apache/commons/configuration/tree/TestQueryResult.java Sun Mar 9 20:59:39 2014
@@ -87,7 +87,8 @@ public class TestQueryResult
QueryResult<ImmutableNode> result =
QueryResult.createAttributeResult(attributeNode, ATTR);
assertEquals("Wrong value", VALUE,
- result.getAttributeValue(new InMemoryNodeModel()));
+ result.getAttributeValue(new InMemoryNodeModel()
+ .getNodeHandler()));
}
/**
@@ -98,7 +99,7 @@ public class TestQueryResult
{
QueryResult<ImmutableNode> result =
QueryResult.createNodeResult(resultNode);
- result.getAttributeValue(new InMemoryNodeModel());
+ result.getAttributeValue(new InMemoryNodeModel().getNodeHandler());
}
/**
Modified: commons/proper/configuration/branches/immutableNodes/src/test/java/org/apache/commons/configuration/tree/xpath/AbstractXPathTest.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/immutableNodes/src/test/java/org/apache/commons/configuration/tree/xpath/AbstractXPathTest.java?rev=1575760&r1=1575759&r2=1575760&view=diff
==============================================================================
--- commons/proper/configuration/branches/immutableNodes/src/test/java/org/apache/commons/configuration/tree/xpath/AbstractXPathTest.java (original)
+++ commons/proper/configuration/branches/immutableNodes/src/test/java/org/apache/commons/configuration/tree/xpath/AbstractXPathTest.java Sun Mar 9 20:59:39 2014
@@ -64,7 +64,7 @@ public abstract class AbstractXPathTest
public void setUp() throws Exception
{
root = constructHierarchy(LEVEL_COUNT);
- handler = new InMemoryNodeModel(root);
+ handler = new InMemoryNodeModel(root).getNodeHandler();
}
/**
Modified: commons/proper/configuration/branches/immutableNodes/src/test/java/org/apache/commons/configuration/tree/xpath/TestConfigurationAttributePointer.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/immutableNodes/src/test/java/org/apache/commons/configuration/tree/xpath/TestConfigurationAttributePointer.java?rev=1575760&r1=1575759&r2=1575760&view=diff
==============================================================================
--- commons/proper/configuration/branches/immutableNodes/src/test/java/org/apache/commons/configuration/tree/xpath/TestConfigurationAttributePointer.java (original)
+++ commons/proper/configuration/branches/immutableNodes/src/test/java/org/apache/commons/configuration/tree/xpath/TestConfigurationAttributePointer.java Sun Mar 9 20:59:39 2014
@@ -61,7 +61,7 @@ public class TestConfigurationAttributeP
ImmutableNode nd = ndBuilder.create();
parent =
new ConfigurationNodePointer<ImmutableNode>(nd, Locale.ENGLISH,
- new InMemoryNodeModel(nd));
+ new InMemoryNodeModel(nd).getNodeHandler());
pointer =
new ConfigurationAttributePointer<ImmutableNode>(parent,
ATTR_NAME);
Modified: commons/proper/configuration/branches/immutableNodes/src/test/java/org/apache/commons/configuration/tree/xpath/TestXPathContextFactory.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/immutableNodes/src/test/java/org/apache/commons/configuration/tree/xpath/TestXPathContextFactory.java?rev=1575760&r1=1575759&r2=1575760&view=diff
==============================================================================
--- commons/proper/configuration/branches/immutableNodes/src/test/java/org/apache/commons/configuration/tree/xpath/TestXPathContextFactory.java (original)
+++ commons/proper/configuration/branches/immutableNodes/src/test/java/org/apache/commons/configuration/tree/xpath/TestXPathContextFactory.java Sun Mar 9 20:59:39 2014
@@ -50,7 +50,8 @@ public class TestXPathContextFactory
{
ImmutableNode node =
new ImmutableNode.Builder().name("testRoot").create();
- NodeHandler<ImmutableNode> handler = new InMemoryNodeModel(node);
+ NodeHandler<ImmutableNode> handler =
+ new InMemoryNodeModel(node).getNodeHandler();
JXPathContext context = factory.createContext(node, handler);
assertTrue("No lenient mode", context.isLenient());
Modified: commons/proper/configuration/branches/immutableNodes/src/test/java/org/apache/commons/configuration/tree/xpath/TestXPathExpressionEngine.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/immutableNodes/src/test/java/org/apache/commons/configuration/tree/xpath/TestXPathExpressionEngine.java?rev=1575760&r1=1575759&r2=1575760&view=diff
==============================================================================
--- commons/proper/configuration/branches/immutableNodes/src/test/java/org/apache/commons/configuration/tree/xpath/TestXPathExpressionEngine.java (original)
+++ commons/proper/configuration/branches/immutableNodes/src/test/java/org/apache/commons/configuration/tree/xpath/TestXPathExpressionEngine.java Sun Mar 9 20:59:39 2014
@@ -61,7 +61,7 @@ public class TestXPathExpressionEngine
public static void setUpBeforeClass() throws Exception
{
root = new ImmutableNode.Builder().name(ROOT_NAME).create();
- handler = new InMemoryNodeModel(root);
+ handler = new InMemoryNodeModel(root).getNodeHandler();
}
/**
@@ -504,7 +504,8 @@ public class TestXPathExpressionEngine
new ImmutableNode.Builder().name("child_other").create();
parentBuilder.addChildren(Arrays.asList(c2, c1));
ImmutableNode parent = parentBuilder.create();
- NodeHandler<ImmutableNode> testHandler = new InMemoryNodeModel(parent);
+ NodeHandler<ImmutableNode> testHandler =
+ new InMemoryNodeModel(parent).getNodeHandler();
XPathExpressionEngine engine = new XPathExpressionEngine();
assertEquals("Wrong canonical key", "parent/child[1]",
engine.canonicalKey(c1, "parent", testHandler));
@@ -524,7 +525,8 @@ public class TestXPathExpressionEngine
new ImmutableNode.Builder().name("child_other").create();
parentBuilder.addChildren(Arrays.asList(c1, c2, c3));
ImmutableNode parent = parentBuilder.create();
- NodeHandler<ImmutableNode> testHandler = new InMemoryNodeModel(parent);
+ NodeHandler<ImmutableNode> testHandler =
+ new InMemoryNodeModel(parent).getNodeHandler();
XPathExpressionEngine engine = new XPathExpressionEngine();
assertEquals("Wrong key 1", "parent/child[1]",
engine.canonicalKey(c1, "parent", testHandler));
@@ -542,7 +544,8 @@ public class TestXPathExpressionEngine
ImmutableNode.Builder parentBuilder = new ImmutableNode.Builder(1);
ImmutableNode c1 = new ImmutableNode.Builder().name("child").create();
ImmutableNode parent = parentBuilder.addChild(c1).create();
- NodeHandler<ImmutableNode> testHandler = new InMemoryNodeModel(parent);
+ NodeHandler<ImmutableNode> testHandler =
+ new InMemoryNodeModel(parent).getNodeHandler();
XPathExpressionEngine engine = new XPathExpressionEngine();
assertEquals("Wrong key", "child[1]",
engine.canonicalKey(c1, null, testHandler));