Save This Page
Home » cocoon-2.1.11-src » org.apache » cocoon » components » treeprocessor » [javadoc | source]
    1   /*
    2    * Licensed to the Apache Software Foundation (ASF) under one or more
    3    * contributor license agreements.  See the NOTICE file distributed with
    4    * this work for additional information regarding copyright ownership.
    5    * The ASF licenses this file to You under the Apache License, Version 2.0
    6    * (the "License"); you may not use this file except in compliance with
    7    * the License.  You may obtain a copy of the License at
    8    *
    9    *      http://www.apache.org/licenses/LICENSE-2.0
   10    *
   11    * Unless required by applicable law or agreed to in writing, software
   12    * distributed under the License is distributed on an "AS IS" BASIS,
   13    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   14    * See the License for the specific language governing permissions and
   15    * limitations under the License.
   16    */
   17   package org.apache.cocoon.components.treeprocessor;
   18   
   19   import org.apache.cocoon.environment.Environment;
   20   
   21   import java.util.Map;
   22   
   23   /**
   24    *
   25    * @author <a href="mailto:sylvain@apache.org">Sylvain Wallez</a>
   26    * @version CVS $Id: AbstractParentProcessingNode.java 433543 2006-08-22 06:22:54Z crossley $
   27    */
   28   public abstract class AbstractParentProcessingNode extends AbstractProcessingNode {
   29   
   30       /**
   31        * Invoke all nodes of a node array in order, until one succeeds.
   32        *
   33        * @param currentMap the <code>Map<code> of parameters produced by this node,
   34        *            which is added to <code>listOfMap</code>.
   35        */
   36       protected final boolean invokeNodes(ProcessingNode[] nodes,
   37                                           Environment env,
   38                                           InvokeContext context,
   39                                           String currentName,
   40                                           Map currentMap)
   41       throws Exception {
   42   
   43           context.pushMap(currentName,currentMap);
   44   
   45           try {
   46               for (int i = 0; i < nodes.length; i++) {
   47                   if (nodes[i].invoke(env, context)) {
   48                       // Success
   49                       return true;
   50                   }
   51               }
   52           } finally {
   53               // No success
   54               context.popMap();
   55           }
   56   
   57           return false;
   58       }
   59   
   60       /**
   61        * Invoke all nodes of a node array in order, until one succeeds.
   62        */
   63       protected final boolean invokeNodes (ProcessingNode[] nodes,
   64                                            Environment env,
   65                                            InvokeContext context)
   66       throws Exception {
   67   
   68           for (int i = 0; i < nodes.length; i++) {
   69               if (nodes[i].invoke(env, context)) {
   70                   return true;
   71               }
   72           }
   73   
   74           return false;
   75       }
   76   }

Save This Page
Home » cocoon-2.1.11-src » org.apache » cocoon » components » treeprocessor » [javadoc | source]