Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package edu.uga.cs.recdawgs.persistence.impl;
- import java.sql.ResultSet;
- import java.util.Date;
- import java.util.Iterator;
- import java.util.NoSuchElementException;
- import edu.uga.cs.recdawgs.RDException;
- import edu.uga.cs.recdawgs.entity.*;
- import edu.uga.cs.recdawgs.object.ObjectLayer;
- public class MatchIterator implements Iterator<Match> {
- private ResultSet rs = null;
- private ObjectLayer objectLayer = null;
- private boolean more = false;
- public MatchIterator( ResultSet rs, ObjectLayer objectLayer )
- throws RDException
- {
- this.rs = rs;
- this.objectLayer = objectLayer;
- try {
- more = rs.next();
- }
- catch( Exception e ) { // just in case...
- throw new RDException( "MatchIterator: Cannot create Match iterator; root cause: " + e );
- }
- }
- public boolean hasNext() {
- return more;
- }
- public Match next() {
- //Matches m
- long match_Id;
- int homePoints;
- int awayPoints;
- Date date;
- boolean isCompleted;
- long roundId;
- long sportsVenueId;
- long homeTeamId;
- long awayTeamId;
- //Team h
- long homeTeam_Id;
- String homeTeamName;
- long homeTeamCaptainId;
- long homeTeamLeagueId;
- //Team a
- long awayTeam_Id;
- String awayTeamName;
- long awayTeamCaptainId;
- long awayTeamLeagueId;
- //League l
- long league_Id;
- String leagueName;
- String leagueRules;
- String leagueMatchRules;
- boolean leagueisIndoor;
- int leagueMinTeam;
- int leagueMaxTeam;
- int leagueMinPlayers;
- int leagueMaxPlayers;
- int winner;
- //captain home
- long homeCaptain_Id;
- String homeCaptainFirstName;
- String homeCaptainLastName;
- String homeCaptainUserName;
- String homeCaptainPassword ;
- String homeCaptainEmailAddress;
- String homeCaptainStudentId;
- String homeCaptainMajor;
- String homeCaptainAddress;
- String type;
- //captain away
- long awayCaptain_Id;
- String awayCaptainFirstName;
- String awayCaptainLastName;
- String awayCaptainUserName;
- String awayCaptainPassword;
- String awayCaptainEmailAddress;
- String awayCaptainStudentId;
- String awayCaptainMajor;
- String awayCaptainAddress;
- //round
- long round_Id;
- int number;
- long roundLeagueId;
- League league = null;
- Team homeTeam = null;
- Team awayTeam = null;
- Student homeCaptain = null;
- Student awayCaptain = null;
- Round round = null;
- if( more )
- {
- // 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 "
- // + "and a.CaptainId = ac.Id and h.CaptainId = hc.Id and h.LeagueId = l.Id and a.LeagueId = l.Id";
- try {
- //match
- match_Id = rs.getLong( 1 );
- homePoints = rs.getInt( 2 );
- awayPoints= rs.getInt( 3 );
- date = rs.getDate(4);
- isCompleted = rs.getBoolean(5);
- roundId = rs.getLong(6);
- sportsVenueId = rs.getLong(7);
- homeTeamId = rs.getLong( 8 );
- awayTeamId = rs.getLong( 9 );
- //Team h
- homeTeam_Id = rs.getLong(10);
- homeTeamName = rs.getString(11);
- homeTeamCaptainId = rs.getLong(12);
- homeTeamLeagueId = rs.getLong(13);
- //Team a
- awayTeam_Id = rs.getLong(14);
- awayTeamName = rs.getString(15);
- awayTeamCaptainId = rs.getLong(16);
- awayTeamLeagueId = rs.getLong(17);
- //League l
- league_Id = rs.getLong(18);
- leagueName = rs.getString(19);
- leagueRules = rs.getString(20);
- leagueMatchRules = rs.getString(21);
- leagueisIndoor = rs.getBoolean(22);
- leagueMinTeam = rs.getInt(23);
- leagueMaxTeam = rs.getInt(24);
- leagueMinPlayers = rs.getInt(25);
- leagueMaxPlayers = rs.getInt(26);
- winner =rs.getInt(27);
- //captain home
- homeCaptain_Id = rs.getLong(28);
- homeCaptainFirstName = rs.getString(29);
- homeCaptainLastName = rs.getString(30);
- homeCaptainUserName = rs.getString(31);
- homeCaptainPassword = rs.getString(32);
- homeCaptainEmailAddress = rs.getString(33);
- homeCaptainStudentId = rs.getString(34);
- homeCaptainMajor = rs.getString(35);
- homeCaptainAddress = rs.getString(36);
- type = rs.getString(37);
- //captain away
- awayCaptain_Id = rs.getLong(38);
- awayCaptainFirstName = rs.getString(39);
- awayCaptainLastName = rs.getString(40);
- awayCaptainUserName = rs.getString(41);
- awayCaptainPassword = rs.getString(42);
- awayCaptainEmailAddress = rs.getString(43);
- awayCaptainStudentId = rs.getString(44);
- awayCaptainMajor = rs.getString(45);
- awayCaptainAddress = rs.getString(46);
- round_Id = rs.getLong(47);
- number =rs.getInt(48);
- roundLeagueId = rs.getLong(49);
- more = rs.next();
- }
- catch( Exception e ) { // just in case...
- throw new NoSuchElementException( "Match: No next Match object; root cause: " + e );
- }
- /*creating different objects necessary for making a match*/
- try{
- homeCaptain = objectLayer.createStudent(homeCaptainFirstName,homeCaptainLastName,homeCaptainUserName,homeCaptainPassword,homeCaptainEmailAddress,homeCaptainStudentId,homeCaptainMajor,homeCaptainAddress);
- homeCaptain.setId(homeCaptain_Id);
- awayCaptain = objectLayer.createStudent(awayCaptainFirstName,awayCaptainLastName,awayCaptainUserName,awayCaptainPassword,awayCaptainEmailAddress,awayCaptainStudentId,awayCaptainMajor,awayCaptainAddress);
- awayCaptain.setId(awayCaptain_Id);
- }catch(RDException e)
- {
- e.printStackTrace();
- }
- try{
- league = objectLayer.createLeague(leagueName,leagueRules,leagueMatchRules,leagueisIndoor,leagueMinTeam,leagueMaxTeam,leagueMinPlayers,leagueMaxPlayers);
- league.setId(league_Id);
- }catch(RDException e)
- {
- System.out.println("league failed to create");
- e.printStackTrace();
- }
- try{
- round = objectLayer.createRound(number,league);
- round.setId(round_Id);
- }catch(RDException e)
- {
- System.out.println("round failed to create");
- e.printStackTrace();
- }
- try{
- homeTeam = objectLayer.createTeam(homeTeamName,homeCaptain,league);
- homeTeam.setId(homeTeam_Id);
- awayTeam = objectLayer.createTeam(awayTeamName,awayCaptain,league);
- awayTeam.setId(awayTeam_Id);
- System.out.println("sucess home team and away team created");
- }catch(RDException e)
- {
- e.printStackTrace();
- }
- Match match=null;
- try {
- match= objectLayer.createMatch(homePoints, awayPoints, date, isCompleted, homeTeam, awayTeam,round);
- System.out.println("success match created");
- } catch (RDException e) {
- e.printStackTrace();
- }
- match.setId( match_Id );
- return match;
- }
- else {
- throw new NoSuchElementException( "MatchIterator: No next match object" );
- }
- }
- @Override
- public void remove() {
- throw new UnsupportedOperationException();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement