001 package nl.cwi.sen1.gui.plugin.data; 002 003 import java.util.Iterator; 004 import java.util.LinkedList; 005 import java.util.List; 006 007 import nl.cwi.sen1.ioapi.types.File; 008 import aterm.ATerm; 009 010 public class Module implements Comparable<Module> { 011 public static final int STATE_NORMAL = 0; 012 013 public static final int STATE_NEW = 1; 014 015 private ATerm _id; 016 017 private String _name; 018 019 private File _file; 020 021 private List<String> _parent; 022 023 private List<String> _child; 024 025 private ListModel<String> childListModel; 026 027 private ListModel<String> parentListModel; 028 029 private int State = STATE_NORMAL; 030 031 public Module(ATerm id, File file, String name) { 032 setId(id); 033 setName(name); 034 setFile(file); 035 initParentList(); 036 037 childListModel = new ListModel<String>(_child); 038 parentListModel = new ListModel<String>(_parent); 039 initChildList(); 040 } 041 042 public int compareTo(Module module) { 043 return _name.compareTo(module.getName()); 044 } 045 046 public ATerm getId() { 047 return _id; 048 } 049 050 public String getName() { 051 return _name; 052 } 053 054 public String getAbbreviation() { 055 return _name.substring(_name.lastIndexOf('/'), -1); 056 } 057 058 private void setId(ATerm id) { 059 _id = id; 060 } 061 062 private void setName(String name) { 063 _name = name; 064 } 065 066 private void setFile(File file) { 067 _file = file; 068 } 069 070 public void addParent(String parent) { 071 _parent.add(parent); 072 parentListModel.elementAdded(); 073 } 074 075 private void initParentList() { 076 _parent = new LinkedList<String>(); 077 } 078 079 public Iterator<String> fetchParentIterator() { 080 return _parent.iterator(); 081 } 082 083 public ListModel<String> fetchParentListModel() { 084 return parentListModel; 085 } 086 087 public void addChild(String child) { 088 _child.add(child); 089 childListModel.elementAdded(); 090 } 091 092 private void initChildList() { 093 _child = new LinkedList<String>(); 094 childListModel.setList(_child); 095 } 096 097 public List<String> getChildren() { 098 return _child; 099 } 100 101 public List<String> getParents() { 102 return _parent; 103 } 104 105 public Iterator<String> fetchChildIterator() { 106 return _child.iterator(); 107 } 108 109 public ListModel<String> fetchChildListModel() { 110 return childListModel; 111 } 112 113 public Object[] fetchChildrenArray() { 114 return _child.toArray(); 115 } 116 117 public String toString() { 118 return _name; 119 } 120 121 public int getState() { 122 return State; 123 } 124 125 public void setState(int State) { 126 this.State = State; 127 } 128 129 public File getFile() { 130 return _file; 131 } 132 }