| 1 | package org.ufcspa.simdecs.diagram.elements;\r |
| 2 | \r |
| 3 | import java.util.ArrayList;\r |
| 4 | import java.util.Collection;\r |
| 5 | import java.util.LinkedList;\r |
| 6 | import java.util.ListIterator;\r |
| 7 | import java.util.Locale;\r |
| 8 | \r |
| 9 | \r |
| 10 | public abstract class SwimLane extends Element {\r |
| 11 | \r |
| 12 | private String name;\r |
| 13 | private Integer age;\r |
| 14 | private String sex;\r |
| 15 | private Float weight;\r |
| 16 | private Float height;\r |
| 17 | private LinkedList<Node> nodes;\r |
| 18 | \r |
| 19 | public SwimLane(String messageBundle, Locale locale) {\r |
| 20 | super(messageBundle, locale);\r |
| 21 | nodes = new LinkedList<Node>();\r |
| 22 | }\r |
| 23 | \r |
| 24 | public Node getNode(String id) {\r |
| 25 | for(Node node : nodes) {\r |
| 26 | if (node.equals(node))\r |
| 27 | return node;\r |
| 28 | }\r |
| 29 | return null;\r |
| 30 | }\r |
| 31 | \r |
| 32 | public Integer getAge() {\r |
| 33 | return age;\r |
| 34 | }\r |
| 35 | \r |
| 36 | public void setAge(Integer age) {\r |
| 37 | this.age = age;\r |
| 38 | }\r |
| 39 | \r |
| 40 | public Float getHeight() {\r |
| 41 | return height;\r |
| 42 | }\r |
| 43 | \r |
| 44 | public void setHeight(Float height) {\r |
| 45 | this.height = height;\r |
| 46 | }\r |
| 47 | \r |
| 48 | public String getName() {\r |
| 49 | return name;\r |
| 50 | }\r |
| 51 | \r |
| 52 | public void setName(String name) {\r |
| 53 | this.name = name;\r |
| 54 | }\r |
| 55 | \r |
| 56 | public String getSex() {\r |
| 57 | return sex;\r |
| 58 | }\r |
| 59 | \r |
| 60 | public void setSex(String sex) {\r |
| 61 | this.sex = sex;\r |
| 62 | }\r |
| 63 | \r |
| 64 | public Float getWeight() {\r |
| 65 | return weight;\r |
| 66 | }\r |
| 67 | \r |
| 68 | public void setWeight(Float weight) {\r |
| 69 | this.weight = weight;\r |
| 70 | }\r |
| 71 | \r |
| 72 | \r |
| 73 | private void updateImages() {\r |
| 74 | ListIterator it = nodes.listIterator();\r |
| 75 | while(it.hasNext()) {\r |
| 76 | Node node = (Node) it.next();\r |
| 77 | if (it.hasNext()) {\r |
| 78 | node.setCurrentImage(node.getImageWithLink());\r |
| 79 | \r |
| 80 | }\r |
| 81 | else {\r |
| 82 | node.setCurrentImage(node.getImage());\r |
| 83 | }\r |
| 84 | }\r |
| 85 | }\r |
| 86 | \r |
| 87 | public void addNode(Node node) {\r |
| 88 | if (!nodes.contains(node)) {\r |
| 89 | node.setPosition(nodes.size()+1);\r |
| 90 | nodes.addLast(node);\r |
| 91 | }\r |
| 92 | \r |
| 93 | updateImages();\r |
| 94 | }\r |
| 95 | \r |
| 96 | public LinkedList<Node> getNodes() {\r |
| 97 | return nodes;\r |
| 98 | }\r |
| 99 | \r |
| 100 | public abstract String getImage();\r |
| 101 | public abstract String getType();\r |
| 102 | \r |
| 103 | public Collection<Node> getGrantedNextNodes() {\r |
| 104 | Collection<Node> list = new ArrayList<Node>();\r |
| 105 | \r |
| 106 | if (nodes.size()==0) {\r |
| 107 | list.add(new Begin(getMessageBundle(), getLocale()));\r |
| 108 | return list;\r |
| 109 | }\r |
| 110 | \r |
| 111 | return null;\r |
| 112 | }\r |
| 113 | \r |
| 114 | }\r |