Advertisement
Guest User

MatchIterator

a guest
Apr 12th, 2016
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.36 KB | None | 0 0
  1. package edu.uga.cs.recdawgs.persistence.impl;
  2.  
  3. import java.sql.ResultSet;
  4. import java.util.Date;
  5. import java.util.Iterator;
  6. import java.util.NoSuchElementException;
  7.  
  8. import edu.uga.cs.recdawgs.RDException;
  9. import edu.uga.cs.recdawgs.entity.*;
  10. import edu.uga.cs.recdawgs.object.ObjectLayer;
  11.  
  12. public class MatchIterator implements Iterator<Match> {
  13. private ResultSet rs = null;
  14. private ObjectLayer objectLayer = null;
  15. private boolean more = false;
  16.  
  17. public MatchIterator( ResultSet rs, ObjectLayer objectLayer )
  18. throws RDException
  19. {
  20. this.rs = rs;
  21. this.objectLayer = objectLayer;
  22. try {
  23. more = rs.next();
  24. }
  25. catch( Exception e ) { // just in case...
  26. throw new RDException( "MatchIterator: Cannot create Match iterator; root cause: " + e );
  27. }
  28. }
  29. public boolean hasNext() {
  30. return more;
  31. }
  32. public Match next() {
  33. //Matches m
  34. long match_Id;
  35. int homePoints;
  36. int awayPoints;
  37. Date date;
  38. boolean isCompleted;
  39. long roundId;
  40. long sportsVenueId;
  41. long homeTeamId;
  42. long awayTeamId;
  43. //Team h
  44. long homeTeam_Id;
  45. String homeTeamName;
  46. long homeTeamCaptainId;
  47. long homeTeamLeagueId;
  48. //Team a
  49. long awayTeam_Id;
  50. String awayTeamName;
  51. long awayTeamCaptainId;
  52. long awayTeamLeagueId;
  53. //League l
  54. long league_Id;
  55. String leagueName;
  56. String leagueRules;
  57. String leagueMatchRules;
  58. boolean leagueisIndoor;
  59. int leagueMinTeam;
  60. int leagueMaxTeam;
  61. int leagueMinPlayers;
  62. int leagueMaxPlayers;
  63. int winner;
  64. //captain home
  65. long homeCaptain_Id;
  66. String homeCaptainFirstName;
  67. String homeCaptainLastName;
  68. String homeCaptainUserName;
  69. String homeCaptainPassword ;
  70. String homeCaptainEmailAddress;
  71. String homeCaptainStudentId;
  72. String homeCaptainMajor;
  73. String homeCaptainAddress;
  74. String type;
  75. //captain away
  76. long awayCaptain_Id;
  77. String awayCaptainFirstName;
  78. String awayCaptainLastName;
  79. String awayCaptainUserName;
  80. String awayCaptainPassword;
  81. String awayCaptainEmailAddress;
  82. String awayCaptainStudentId;
  83. String awayCaptainMajor;
  84. String awayCaptainAddress;
  85. //round
  86. long round_Id;
  87. int number;
  88. long roundLeagueId;
  89.  
  90. League league = null;
  91. Team homeTeam = null;
  92. Team awayTeam = null;
  93. Student homeCaptain = null;
  94. Student awayCaptain = null;
  95. Round round = null;
  96.  
  97. if( more )
  98. {
  99. // selectMatchSql = " select * from Matches m, Team h, Team a, League l, User hc, User ac where m.homeTeamId = h.Id and m.awayTeamId = a.Id "
  100. // + "and a.CaptainId = ac.Id and h.CaptainId = hc.Id and h.LeagueId = l.Id and a.LeagueId = l.Id";
  101.  
  102.  
  103.  
  104. try {
  105. //match
  106. match_Id = rs.getLong( 1 );
  107. homePoints = rs.getInt( 2 );
  108. awayPoints= rs.getInt( 3 );
  109. date = rs.getDate(4);
  110. isCompleted = rs.getBoolean(5);
  111. roundId = rs.getLong(6);
  112. sportsVenueId = rs.getLong(7);
  113. homeTeamId = rs.getLong( 8 );
  114. awayTeamId = rs.getLong( 9 );
  115.  
  116. //Team h
  117. homeTeam_Id = rs.getLong(10);
  118. homeTeamName = rs.getString(11);
  119. homeTeamCaptainId = rs.getLong(12);
  120. homeTeamLeagueId = rs.getLong(13);
  121.  
  122. //Team a
  123. awayTeam_Id = rs.getLong(14);
  124. awayTeamName = rs.getString(15);
  125. awayTeamCaptainId = rs.getLong(16);
  126. awayTeamLeagueId = rs.getLong(17);
  127.  
  128. //League l
  129. league_Id = rs.getLong(18);
  130. leagueName = rs.getString(19);
  131. leagueRules = rs.getString(20);
  132. leagueMatchRules = rs.getString(21);
  133. leagueisIndoor = rs.getBoolean(22);
  134. leagueMinTeam = rs.getInt(23);
  135. leagueMaxTeam = rs.getInt(24);
  136. leagueMinPlayers = rs.getInt(25);
  137. leagueMaxPlayers = rs.getInt(26);
  138. winner =rs.getInt(27);
  139.  
  140. //captain home
  141. homeCaptain_Id = rs.getLong(28);
  142. homeCaptainFirstName = rs.getString(29);
  143. homeCaptainLastName = rs.getString(30);
  144. homeCaptainUserName = rs.getString(31);
  145. homeCaptainPassword = rs.getString(32);
  146. homeCaptainEmailAddress = rs.getString(33);
  147. homeCaptainStudentId = rs.getString(34);
  148. homeCaptainMajor = rs.getString(35);
  149. homeCaptainAddress = rs.getString(36);
  150. type = rs.getString(37);
  151. //captain away
  152. awayCaptain_Id = rs.getLong(38);
  153. awayCaptainFirstName = rs.getString(39);
  154. awayCaptainLastName = rs.getString(40);
  155. awayCaptainUserName = rs.getString(41);
  156. awayCaptainPassword = rs.getString(42);
  157. awayCaptainEmailAddress = rs.getString(43);
  158. awayCaptainStudentId = rs.getString(44);
  159. awayCaptainMajor = rs.getString(45);
  160. awayCaptainAddress = rs.getString(46);
  161. round_Id = rs.getLong(47);
  162. number =rs.getInt(48);
  163. roundLeagueId = rs.getLong(49);
  164. more = rs.next();
  165. }
  166. catch( Exception e ) { // just in case...
  167. throw new NoSuchElementException( "Match: No next Match object; root cause: " + e );
  168. }
  169.  
  170. /*creating different objects necessary for making a match*/
  171.  
  172. try{
  173. homeCaptain = objectLayer.createStudent(homeCaptainFirstName,homeCaptainLastName,homeCaptainUserName,homeCaptainPassword,homeCaptainEmailAddress,homeCaptainStudentId,homeCaptainMajor,homeCaptainAddress);
  174. homeCaptain.setId(homeCaptain_Id);
  175. awayCaptain = objectLayer.createStudent(awayCaptainFirstName,awayCaptainLastName,awayCaptainUserName,awayCaptainPassword,awayCaptainEmailAddress,awayCaptainStudentId,awayCaptainMajor,awayCaptainAddress);
  176. awayCaptain.setId(awayCaptain_Id);
  177. }catch(RDException e)
  178. {
  179. e.printStackTrace();
  180. }
  181. try{
  182. league = objectLayer.createLeague(leagueName,leagueRules,leagueMatchRules,leagueisIndoor,leagueMinTeam,leagueMaxTeam,leagueMinPlayers,leagueMaxPlayers);
  183. league.setId(league_Id);
  184. }catch(RDException e)
  185. {
  186. System.out.println("league failed to create");
  187. e.printStackTrace();
  188. }
  189. try{
  190. round = objectLayer.createRound(number,league);
  191. round.setId(round_Id);
  192. }catch(RDException e)
  193. {
  194. System.out.println("round failed to create");
  195. e.printStackTrace();
  196. }
  197. try{
  198. homeTeam = objectLayer.createTeam(homeTeamName,homeCaptain,league);
  199. homeTeam.setId(homeTeam_Id);
  200. awayTeam = objectLayer.createTeam(awayTeamName,awayCaptain,league);
  201. awayTeam.setId(awayTeam_Id);
  202. System.out.println("sucess home team and away team created");
  203. }catch(RDException e)
  204. {
  205. e.printStackTrace();
  206. }
  207.  
  208. Match match=null;
  209. try {
  210. match= objectLayer.createMatch(homePoints, awayPoints, date, isCompleted, homeTeam, awayTeam,round);
  211. System.out.println("success match created");
  212. } catch (RDException e) {
  213. e.printStackTrace();
  214. }
  215.  
  216. match.setId( match_Id );
  217.  
  218. return match;
  219. }
  220. else {
  221. throw new NoSuchElementException( "MatchIterator: No next match object" );
  222. }
  223.  
  224. }
  225. @Override
  226. public void remove() {
  227. throw new UnsupportedOperationException();
  228.  
  229. }
  230. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement