KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > ca > mcgill > sable > graph > model > SimpleNode


1 /* Soot - a J*va Optimization Framework
2  * Copyright (C) 2005 Jennifer Lhotak
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
16  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
17  * Boston, MA 02111-1307, USA.
18  */

19
20
21 package ca.mcgill.sable.graph.model;
22 import java.util.*;
23
24 public class SimpleNode extends Element {
25
26     private ArrayList inputs;
27     private ArrayList outputs;
28     protected Object JavaDoc data;
29     private ArrayList children = new ArrayList();
30     
31
32     public SimpleNode() {
33         super();
34     }
35
36     public void addInput(Edge e){
37         if (getInputs() == null){
38             setInputs(new ArrayList());
39         }
40         getInputs().add(e);
41         fireStructureChange(INPUTS, e);
42     }
43     
44     public void addOutput(Edge e){
45         if (getOutputs() == null){
46             setOutputs(new ArrayList());
47         }
48         getOutputs().add(e);
49         fireStructureChange(OUTPUTS, e);
50     }
51     
52     public void removeInput(Edge e){
53         if (getInputs() == null) return;
54         if (getInputs().contains(e)){
55             getInputs().remove(e);
56             fireStructureChange(INPUTS, e);
57         }
58     }
59     
60     public void removeOutput(Edge e){
61         if (getOutputs() == null) return;
62         if (getOutputs().contains(e)){
63             getOutputs().remove(e);
64             fireStructureChange(OUTPUTS, e);
65         }
66     }
67     
68     public void removeAllInputs(){
69         if (getInputs() == null) return;
70         Iterator it = getInputs().iterator();
71         while (it.hasNext()){
72             Edge e = (Edge)it.next();
73             e.getSrc().removeOutput(e);
74         }
75         setInputs(new ArrayList());
76         fireStructureChange(INPUTS, null);
77     }
78     
79     public void removeAllOutputs(){
80         if (getOutputs() == null) return;
81         Iterator it = getOutputs().iterator();
82         while (it.hasNext()){
83             Edge e = (Edge)it.next();
84             e.getTgt().removeInput(e);
85         }
86         setOutputs(new ArrayList());
87         fireStructureChange(OUTPUTS, null);
88     }
89     
90     /**
91      * @return
92      */

93     public ArrayList getInputs() {
94         return inputs;
95     }
96
97     /**
98      * @return
99      */

100     public ArrayList getOutputs() {
101         return outputs;
102     }
103
104     /**
105      * @param list
106      */

107     public void setInputs(ArrayList list) {
108         inputs = list;
109     }
110
111     /**
112      * @param list
113      */

114     public void setOutputs(ArrayList list) {
115         outputs = list;
116     }
117
118     
119     /**
120      * @return
121      */

122     public Object JavaDoc getData() {
123         return data;
124     }
125
126     /**
127      * @param string
128      */

129     public void setData(Object JavaDoc string) {
130         data = string;
131         firePropertyChange(DATA, data.toString());
132     }
133
134     /**
135      * @return
136      */

137     public ArrayList getChildren() {
138         return children;
139     }
140
141     /**
142      * @param list
143      */

144     public void setChildren(ArrayList list) {
145         children = list;
146     }
147     
148     public void addChild(SimpleNode sn){
149         children.add(sn);
150         fireStructureChange(COMPLEX_CHILD_ADDED, sn);
151     }
152
153 }
154
Popular Tags