You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by cz...@apache.org on 2005/06/11 19:25:51 UTC
svn commit: r190155 - in
/cocoon/trunk/src/java/org/apache/cocoon/components/treeprocessor:
CategoryNodeBuilder.java DefaultTreeBuilder.java TreeBuilder.java
sitemap/FlowNodeBuilder.java
Author: cziegeler
Date: Sat Jun 11 10:25:50 2005
New Revision: 190155
URL: http://svn.apache.org/viewcvs?rev=190155&view=rev
Log:
Allow only one flow node per sitemap
Modified:
cocoon/trunk/src/java/org/apache/cocoon/components/treeprocessor/CategoryNodeBuilder.java
cocoon/trunk/src/java/org/apache/cocoon/components/treeprocessor/DefaultTreeBuilder.java
cocoon/trunk/src/java/org/apache/cocoon/components/treeprocessor/TreeBuilder.java
cocoon/trunk/src/java/org/apache/cocoon/components/treeprocessor/sitemap/FlowNodeBuilder.java
Modified: cocoon/trunk/src/java/org/apache/cocoon/components/treeprocessor/CategoryNodeBuilder.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/src/java/org/apache/cocoon/components/treeprocessor/CategoryNodeBuilder.java?rev=190155&r1=190154&r2=190155&view=diff
==============================================================================
--- cocoon/trunk/src/java/org/apache/cocoon/components/treeprocessor/CategoryNodeBuilder.java (original)
+++ cocoon/trunk/src/java/org/apache/cocoon/components/treeprocessor/CategoryNodeBuilder.java Sat Jun 11 10:25:50 2005
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2004 The Apache Software Foundation.
+ * Copyright 1999-2005 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -29,7 +29,7 @@
* Builds a generic container node.
*
* @author <a href="mailto:sylvain@apache.org">Sylvain Wallez</a>
- * @version CVS $Id: CategoryNodeBuilder.java,v 1.4 2004/06/09 11:59:23 cziegeler Exp $
+ * @version CVS $Id$
*/
public class CategoryNodeBuilder extends AbstractParentProcessingNodeBuilder
@@ -72,7 +72,9 @@
node.setCategory(this.name, category);
// Register node to allow lookup by other nodes
- this.treeBuilder.registerNode(PREFIX + this.name, node);
+ if ( !this.treeBuilder.registerNode(PREFIX + this.name, node) ) {
+ throw new ConfigurationException("There can only be one category with the name: " + this.name);
+ }
return node;
}
Modified: cocoon/trunk/src/java/org/apache/cocoon/components/treeprocessor/DefaultTreeBuilder.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/src/java/org/apache/cocoon/components/treeprocessor/DefaultTreeBuilder.java?rev=190155&r1=190154&r2=190155&view=diff
==============================================================================
--- cocoon/trunk/src/java/org/apache/cocoon/components/treeprocessor/DefaultTreeBuilder.java (original)
+++ cocoon/trunk/src/java/org/apache/cocoon/components/treeprocessor/DefaultTreeBuilder.java Sat Jun 11 10:25:50 2005
@@ -280,12 +280,14 @@
}
/**
- * Register a <code>ProcessingNode</code> under a given name.
- * For example, <code>ResourceNodeBuilder</code> stores here the <code>ProcessingNode</code>s
- * it produces for use by sitemap pipelines. This allows to turn the tree into a graph.
+ * @see org.apache.cocoon.components.treeprocessor.TreeBuilder#registerNode(java.lang.String, org.apache.cocoon.components.treeprocessor.ProcessingNode)
*/
- public void registerNode(String name, ProcessingNode node) {
+ public boolean registerNode(String name, ProcessingNode node) {
+ if ( this.registeredNodes.containsKey(name) ) {
+ return false;
+ }
this.registeredNodes.put(name, node);
+ return true;
}
public ProcessingNode getRegisteredNode(String name) {
Modified: cocoon/trunk/src/java/org/apache/cocoon/components/treeprocessor/TreeBuilder.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/src/java/org/apache/cocoon/components/treeprocessor/TreeBuilder.java?rev=190155&r1=190154&r2=190155&view=diff
==============================================================================
--- cocoon/trunk/src/java/org/apache/cocoon/components/treeprocessor/TreeBuilder.java (original)
+++ cocoon/trunk/src/java/org/apache/cocoon/components/treeprocessor/TreeBuilder.java Sat Jun 11 10:25:50 2005
@@ -56,8 +56,10 @@
* Register a <code>ProcessingNode</code> under a given name.
* For example, <code>ResourceNodeBuilder</code> stores here the <code>ProcessingNode</code>s
* it produces for use by sitemap pipelines. This allows to turn the tree into a graph.
+ * If a node with the name is already registed, the process fails!
+ * @return If the node could be registered, <code>true</code> is returned; otherwise false.
*/
- void registerNode(String name, ProcessingNode node);
+ boolean registerNode(String name, ProcessingNode node);
/**
* @throws IllegalStateException
Modified: cocoon/trunk/src/java/org/apache/cocoon/components/treeprocessor/sitemap/FlowNodeBuilder.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/src/java/org/apache/cocoon/components/treeprocessor/sitemap/FlowNodeBuilder.java?rev=190155&r1=190154&r2=190155&view=diff
==============================================================================
--- cocoon/trunk/src/java/org/apache/cocoon/components/treeprocessor/sitemap/FlowNodeBuilder.java (original)
+++ cocoon/trunk/src/java/org/apache/cocoon/components/treeprocessor/sitemap/FlowNodeBuilder.java Sat Jun 11 10:25:50 2005
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2004 The Apache Software Foundation.
+ * Copyright 1999-2005 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,6 +16,7 @@
package org.apache.cocoon.components.treeprocessor.sitemap;
import org.apache.avalon.framework.configuration.Configuration;
+import org.apache.avalon.framework.configuration.ConfigurationException;
import org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNodeBuilder;
import org.apache.cocoon.components.treeprocessor.ProcessingNode;
@@ -34,7 +35,9 @@
String language = config.getAttribute("language", "javascript");
FlowNode node = new FlowNode(language);
- this.treeBuilder.registerNode("flow", node);
+ if ( !this.treeBuilder.registerNode("flow", node) ) {
+ throw new ConfigurationException("Only one flow node per sitemap allowed.");
+ }
this.treeBuilder.setupNode(node, config);
buildChildNodesList(config);