View Javadoc

1   /*
2    * Copyright (C) 2003-2012 David E. Berry
3    *
4    * This library is free software; you can redistribute it and/or
5    * modify it under the terms of the GNU Lesser General Public
6    * License as published by the Free Software Foundation; either
7    * version 2.1 of the License, or (at your option) any later version.
8    *
9    * This library is distributed in the hope that it will be useful,
10   * but WITHOUT ANY WARRANTY; without even the implied warranty of
11   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12   * Lesser General Public License for more details.
13   *
14   * You should have received a copy of the GNU Lesser General Public
15   * License along with this library; if not, write to the Free Software
16   * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
17   *
18   * A copy of the GNU Lesser General Public License may also be found at
19   * http://www.gnu.org/licenses/lgpl.txt
20   */
21  package org.synchronoss.cpo;
22  
23  /**
24   * This is the interface for the visitors to the Node Hierarchy
25   *
26   */
27  public interface NodeVisitor {
28  
29    /**
30     * This is called by composite nodes prior to visiting children
31     *
32     * @param val The node to be visited
33     * @return a boolean (false) to end visit or (true) to continue visiting
34     */
35    public boolean visitBegin(Node node) throws Exception;
36  
37    /**
38     * This is called for composite nodes between visiting children
39     *
40     * @param val The node to be visited
41     * @return a boolean (false) to end visit or (true) to continue visiting
42     */
43    public boolean visitMiddle(Node node) throws Exception;
44  
45    /**
46     * This is called by composite nodes after visiting children
47     *
48     * @param val The node to be visited
49     * @return a boolean (false) to end visit or (true) to continue visiting
50     */
51    public boolean visitEnd(Node node) throws Exception;
52  
53    /**
54     * This is called for component elements which have no children
55     *
56     * @param val The element to be visited
57     * @return a boolean (false) to end visit or (true) to continue visiting
58     */
59    public boolean visit(Node node) throws Exception;
60  }