PageRenderTime 42ms CodeModel.GetById 19ms RepoModel.GetById 0ms app.codeStats 0ms

/testbed_php/src-gen-umple/StudentAD.php

http://umple.googlecode.com/
PHP | 283 lines | 235 code | 35 blank | 13 comment | 38 complexity | c6c115ea8e57bbe7281f5acdde2008ad MD5 | raw file
Possible License(s): MIT, LGPL-2.1, BSD-3-Clause, GPL-2.0
  1. <?php
  2. /*PLEASE DO NOT EDIT THIS CODE*/
  3. /*This code was generated using the UMPLE 1.16.0.2388 modeling language!*/
  4. class StudentAD
  5. {
  6. //------------------------
  7. // MEMBER VARIABLES
  8. //------------------------
  9. //StudentAD Attributes
  10. private $number;
  11. //StudentAD Associations
  12. private $program;
  13. private $mentors;
  14. //------------------------
  15. // CONSTRUCTOR
  16. //------------------------
  17. public function __construct($aNumber)
  18. {
  19. $this->number = $aNumber;
  20. $this->mentors = array();
  21. }
  22. //------------------------
  23. // INTERFACE
  24. //------------------------
  25. public function setNumber($aNumber)
  26. {
  27. $wasSet = false;
  28. $this->number = $aNumber;
  29. $wasSet = true;
  30. return $wasSet;
  31. }
  32. public function getNumber()
  33. {
  34. return $this->number;
  35. }
  36. public function getProgram()
  37. {
  38. return $this->program;
  39. }
  40. public function getMentor($index)
  41. {
  42. $aMentor = $this->mentors[$index];
  43. return $aMentor;
  44. }
  45. public function getMentors()
  46. {
  47. $newMentors = $this->mentors;
  48. return $newMentors;
  49. }
  50. public function numberOfMentors()
  51. {
  52. $number = count($this->mentors);
  53. return $number;
  54. }
  55. public function hasMentors()
  56. {
  57. $has = $this->numberOfMentors() > 0;
  58. return $has;
  59. }
  60. public function indexOfMentor($aMentor)
  61. {
  62. $wasFound = false;
  63. $index = 0;
  64. foreach($this->mentors as $mentor)
  65. {
  66. if ($mentor->equals($aMentor))
  67. {
  68. $wasFound = true;
  69. break;
  70. }
  71. $index += 1;
  72. }
  73. $index = $wasFound ? $index : -1;
  74. return $index;
  75. }
  76. public function setProgram($newProgram)
  77. {
  78. $wasSet = false;
  79. if ($newProgram == null)
  80. {
  81. $existingProgram = $this->program;
  82. $this->program = null;
  83. if ($existingProgram != null && $existingProgram->getStudent() != null)
  84. {
  85. $existingProgram->setStudent(null);
  86. }
  87. $wasSet = true;
  88. return $wasSet;
  89. }
  90. $currentProgram = $this->getProgram();
  91. if ($currentProgram != null && $currentProgram != $newProgram)
  92. {
  93. $currentProgram->setStudent(null);
  94. }
  95. $this->program = $newProgram;
  96. $existingStudent = $newProgram->getStudent();
  97. if ($this != $existingStudent)
  98. {
  99. $newProgram->setStudent($this);
  100. }
  101. $wasSet = true;
  102. return $wasSet;
  103. }
  104. public function isNumberOfMentorsValid()
  105. {
  106. $isValid = $this->numberOfMentors() >= self::minimumNumberOfMentors();
  107. return $isValid;
  108. }
  109. public static function minimumNumberOfMentors()
  110. {
  111. return 3;
  112. }
  113. public function addMentor($aMentor)
  114. {
  115. $wasAdded = false;
  116. if ($this->indexOfMentor($aMentor) !== -1) { return false; }
  117. $this->mentors[] = $aMentor;
  118. if ($aMentor->indexOfStudent($this) != -1)
  119. {
  120. $wasAdded = true;
  121. }
  122. else
  123. {
  124. $wasAdded = $aMentor->addStudent($this);
  125. if (!$wasAdded)
  126. {
  127. array_pop($this->mentors);
  128. }
  129. }
  130. return $wasAdded;
  131. }
  132. public function removeMentor($aMentor)
  133. {
  134. $wasRemoved = false;
  135. if ($this->indexOfMentor($aMentor) == -1)
  136. {
  137. return $wasRemoved;
  138. }
  139. if ($this->numberOfMentors() <= self::minimumNumberOfMentors())
  140. {
  141. return $wasRemoved;
  142. }
  143. $oldIndex = $this->indexOfMentor($aMentor);
  144. unset($this->mentors[$oldIndex]);
  145. if ($aMentor->indexOfStudent($this) == -1)
  146. {
  147. $wasRemoved = true;
  148. }
  149. else
  150. {
  151. $wasRemoved = $aMentor->removeStudent($this);
  152. if (!$wasRemoved)
  153. {
  154. $this->mentors[$oldIndex] = $aMentor;
  155. ksort($this->mentors);
  156. }
  157. }
  158. $this->mentors = array_values($this->mentors);
  159. return $wasRemoved;
  160. }
  161. public function setMentors($newMentors)
  162. {
  163. $wasSet = false;
  164. $verifiedMentors = array();
  165. foreach ($newMentors as $aMentor)
  166. {
  167. if (array_search($aMentor,$verifiedMentors) !== false)
  168. {
  169. continue;
  170. }
  171. $verifiedMentors[] = $aMentor;
  172. }
  173. if (count($verifiedMentors) != count($newMentors) || count($verifiedMentors) < self::minimumNumberOfMentors())
  174. {
  175. return $wasSet;
  176. }
  177. $oldMentors = $this->mentors;
  178. $this->mentors = array();
  179. foreach ($verifiedMentors as $newMentor)
  180. {
  181. $this->mentors[] = $newMentor;
  182. $removeIndex = array_search($newMentor,$oldMentors);
  183. if ($removeIndex !== false)
  184. {
  185. unset($oldMentors[$removeIndex]);
  186. $oldMentors = array_values($oldMentors);
  187. }
  188. else
  189. {
  190. $newMentor->addStudent($this);
  191. }
  192. }
  193. foreach ($oldMentors as $oldMentor)
  194. {
  195. $oldMentor->removeStudent($this);
  196. }
  197. $wasSet = true;
  198. return $wasSet;
  199. }
  200. public function addMentorAt($aMentor, $index)
  201. {
  202. $wasAdded = false;
  203. if($this->addMentor($aMentor))
  204. {
  205. if($index < 0 ) { $index = 0; }
  206. if($index > $this->numberOfMentors()) { $index = $this->numberOfMentors() - 1; }
  207. array_splice($this->mentors, $this->indexOfMentor($aMentor), 1);
  208. array_splice($this->mentors, $index, 0, array($aMentor));
  209. $wasAdded = true;
  210. }
  211. return $wasAdded;
  212. }
  213. public function addOrMoveMentorAt($aMentor, $index)
  214. {
  215. $wasAdded = false;
  216. if($this->indexOfMentor($aMentor) !== -1)
  217. {
  218. if($index < 0 ) { $index = 0; }
  219. if($index > $this->numberOfMentors()) { $index = $this->numberOfMentors() - 1; }
  220. array_splice($this->mentors, $this->indexOfMentor($aMentor), 1);
  221. array_splice($this->mentors, $index, 0, array($aMentor));
  222. $wasAdded = true;
  223. }
  224. else
  225. {
  226. $wasAdded = $this->addMentorAt($aMentor, $index);
  227. }
  228. return $wasAdded;
  229. }
  230. public function equals($compareTo)
  231. {
  232. return $this == $compareTo;
  233. }
  234. public function delete()
  235. {
  236. if ($this->program != null)
  237. {
  238. $this->program->setStudent(null);
  239. }
  240. $copyOfMentors = $this->mentors;
  241. $this->mentors = array();
  242. foreach ($copyOfMentors as $aMentor)
  243. {
  244. $aMentor->removeStudent($this);
  245. }
  246. }
  247. }
  248. ?>