Source code: com/virtuosotechnologies/lib/command/CommandNode.java
1 /*
2 ================================================================================
3
4 FILE: CommandNode.java
5
6 PROJECT:
7
8 Virtuoso Utilities
9
10 CONTENTS:
11
12 A node in the command graph
13
14 PROGRAMMERS:
15
16 Daniel Azuma (DA) <dazuma@kagi.com>
17
18 COPYRIGHT:
19
20 Copyright (C) 2003 Daniel Azuma (dazuma@kagi.com)
21
22 This program is free software; you can redistribute it and/or
23 modify it under the terms of the GNU General Public License as
24 published by the Free Software Foundation; either version 2
25 of the License, or (at your option) any later version.
26
27 This program is distributed in the hope that it will be useful,
28 but WITHOUT ANY WARRANTY; without even the implied warranty of
29 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
30 GNU General Public License for more details.
31
32 You should have received a copy of the GNU General Public
33 License along with this program; if not, write to
34 Free Software Foundation, Inc.
35 59 Temple Place, Suite 330
36 Boston, MA 02111-1307 USA
37
38 ================================================================================
39 */
40
41
42 package com.virtuosotechnologies.lib.command;
43
44
45 import com.virtuosotechnologies.lib.propertyset.PropertySet;
46
47
48 /**
49 * A node in the command graph
50 */
51 public interface CommandNode
52 extends PropertySet, CommandListener
53 {
54 /**
55 * Get the flavor of CommandNode
56 */
57 public CommandNodeFlavor getFlavor();
58
59
60 /**
61 * Add listener for node hierarchy events
62 */
63 public void addNodeListener(
64 CommandNodeListener listener);
65
66
67 /**
68 * Remove listener for node hierarchy events
69 */
70 public void removeNodeListener(
71 CommandNodeListener listener);
72
73
74 /**
75 * Add a child node
76 */
77 public void addChild(
78 CommandNode child);
79
80
81 /**
82 * Insert a child node at the given index
83 */
84 public void insertChild(
85 int index,
86 CommandNode child);
87
88
89 /**
90 * Get the indexed child
91 */
92 public CommandNode getNthChild(
93 int index);
94
95
96 /**
97 * Get the number of children
98 */
99 public int getNumChildren();
100
101
102 /**
103 * Remove a child node
104 */
105 public void removeNthChild(
106 int index);
107
108
109 /**
110 * Remove all children
111 */
112 public void removeAllChildren();
113 }