SQL Plugin copied from Quantum plugin and refactored for PHPEclipse
[phpeclipse.git] / archive / net.sourceforge.phpeclipse.sql / src / net / sourceforge / phpdt / sql / view / bookmark / BookmarkNode.java
1 package net.sourceforge.phpdt.sql.view.bookmark;
2
3 import java.util.Collections;
4 import java.util.Vector;
5
6 import net.sourceforge.phpdt.sql.bookmarks.Bookmark;
7
8 public class BookmarkNode extends Bookmark implements TreeNode {
9     private Vector children = new Vector();
10     
11     public BookmarkNode() {
12     }
13
14     public BookmarkNode(Bookmark bookmark) {
15         super(bookmark);
16     }
17
18         public Object[] getChildren() {
19                 return children.toArray();
20         }
21
22         public Object getParent() {
23                 return Root.ROOT;
24         }
25
26         public boolean hasChildren() {
27                 if (children != null && children.size() > 0) {
28                         return true;
29                 }
30                 return false;
31         }
32
33         public void setChildren(Vector children) {
34                 for (int i = 0; i <  children.size(); i++) {
35                         Object obj = children.elementAt(i);
36                         isValid(obj);
37                 }
38                 Collections.sort(children);
39                 this.children = children;
40         }
41         
42         public void isValid(Object child) {
43                 boolean valid = false;
44                 if (child instanceof TableNode ||
45                     child instanceof ViewNode ||
46                     child instanceof SequenceNode) {
47                         valid = true;
48                 }
49                 if (!valid) {
50                         throw new RuntimeException("Invalid BookmarkNode child: " + child.getClass().getName());
51                 }
52         }
53 }