blob: ec9b3d8476951e3bb8e2f40cf4e9a7937fe20100 [file] [log] [blame]
/*
* Copyright (c) 2001, 2018 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* This Source Code may also be made available under the following Secondary
* Licenses when the conditions for such availability set forth in the
* Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
* version 2 with the GNU Classpath Exception, which is available at
* https://www.gnu.org/software/classpath/license.html.
*
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
*/
package com.sun.s1asdev.jdbc.stress1.ejb;
import java.util.*;
import jakarta.ejb.*;
import jakarta.ejb.*;
import javax.naming.*;
import com.sun.s1asdev.jdbc.stress1.util.*;
public class RosterBean implements SessionBean {
private LocalPlayerHome playerHome = null;
private LocalTeamHome teamHome = null;
private LocalLeagueHome leagueHome = null;
// Player business methods
public ArrayList testFinder(String parm1, String parm2,
String parm3) {
//Debug.print("RosterBean testFinder");
Collection players = null;
try {
players = playerHome.findByTest(parm1, parm2, parm3);
} catch (Exception ex) {
throw new EJBException(ex.getMessage());
}
return copyPlayersToDetails(players);
}
public void createPlayer(PlayerDetails details) {
//Debug.print("RosterBean createPlayer");
try {
LocalPlayer player = playerHome.create(details.getId(),
details.getName(), details.getPosition(), details.getSalary());
} catch (Exception ex) {
throw new EJBException(ex.getMessage());
}
}
public void addPlayer(String playerId, String teamId) {
//Debug.print("RosterBean addPlayer");
try {
LocalTeam team = teamHome.findByPrimaryKey(teamId);
LocalPlayer player = playerHome.findByPrimaryKey(playerId);
team.addPlayer(player);
} catch (Exception ex) {
throw new EJBException(ex.getMessage());
}
}
public void removePlayer(String playerId) {
//Debug.print("RosterBean removePlayer");
try {
LocalPlayer player = playerHome.findByPrimaryKey(playerId);
player.remove();
} catch (Exception ex) {
throw new EJBException(ex.getMessage());
}
}
public void dropPlayer(String playerId, String teamId) {
//Debug.print("RosterBean dropPlayer");
try {
LocalPlayer player = playerHome.findByPrimaryKey(playerId);
LocalTeam team = teamHome.findByPrimaryKey(teamId);
team.dropPlayer(player);
} catch (Exception ex) {
throw new EJBException(ex.getMessage());
}
}
public PlayerDetails getPlayer(String playerId) {
//Debug.print("RosterBean getPlayer");
PlayerDetails playerDetails = null;
try {
LocalPlayer player = playerHome.findByPrimaryKey(playerId);
playerDetails = new PlayerDetails(playerId,
player.getName(), player.getPosition(), player.getSalary());
} catch (Exception ex) {
throw new EJBException(ex.getMessage());
}
return playerDetails;
}
public ArrayList getPlayersOfTeam(String teamId) {
//Debug.print("RosterBean getPlayersOfTeam");
Collection players = null;
try {
LocalTeam team = teamHome.findByPrimaryKey(teamId);
players = team.getPlayers();
} catch (Exception ex) {
throw new EJBException(ex.getMessage());
}
return copyPlayersToDetails(players);
}
public ArrayList getPlayersOfTeamCopy(String teamId) {
//Debug.print("RosterBean getPlayersOfTeamCopy");
ArrayList playersList = null;
try {
LocalTeam team = teamHome.findByPrimaryKey(teamId);
playersList = team.getCopyOfPlayers();
} catch (Exception ex) {
throw new EJBException(ex.getMessage());
}
return playersList;
}
public ArrayList getTeamsOfLeague(String leagueId) {
//Debug.print("RosterBean getTeamsOfLeague");
ArrayList detailsList = new ArrayList();
Collection teams = null;
try {
LocalLeague league = leagueHome.findByPrimaryKey(leagueId);
teams = league.getTeams();
} catch (Exception ex) {
throw new EJBException(ex.getMessage());
}
Iterator i = teams.iterator();
while (i.hasNext()) {
LocalTeam team = (LocalTeam) i.next();
TeamDetails details = new TeamDetails(team.getTeamId(),
team.getName(), team.getCity());
detailsList.add(details);
}
return detailsList;
}
public ArrayList getPlayersByPosition(String position) {
//Debug.print("RosterBean getPlayersByPosition");
Collection players = null;
try {
players = playerHome.findByPosition(position);
} catch (Exception ex) {
throw new EJBException(ex.getMessage());
}
return copyPlayersToDetails(players);
}
public ArrayList getPlayersByHigherSalary(String name) {
//Debug.print("RosterBean getPlayersByByHigherSalary");
Collection players = null;
try {
players = playerHome.findByHigherSalary(name);
} catch (Exception ex) {
throw new EJBException(ex.getMessage());
}
return copyPlayersToDetails(players);
} // getPlayersByHigherSalary
public ArrayList getPlayersBySalaryRange(double low, double high) {
//Debug.print("RosterBean getPlayersBySalaryRange");
Collection players = null;
try {
players = playerHome.findBySalaryRange(low, high);
} catch (Exception ex) {
throw new EJBException(ex.getMessage());
}
return copyPlayersToDetails(players);
} // getPlayersBySalaryRange
public ArrayList getPlayersByLeagueId(String leagueId) {
//Debug.print("RosterBean getPlayersByLeagueId");
Collection players = null;
try {
LocalLeague league = leagueHome.findByPrimaryKey(leagueId);
players = playerHome.findByLeague(league);
} catch (Exception ex) {
throw new EJBException(ex.getMessage());
}
return copyPlayersToDetails(players);
} // getPlayersByLeagueId
public ArrayList getPlayersBySport(String sport) {
//Debug.print("RosterBean getPlayersBySport");
Collection players = null;
try {
players = playerHome.findBySport(sport);
} catch (Exception ex) {
throw new EJBException(ex.getMessage());
}
return copyPlayersToDetails(players);
} // getPlayersBySport
public ArrayList getPlayersByCity(String city) {
//Debug.print("RosterBean getPlayersByCity");
Collection players = null;
try {
players = playerHome.findByCity(city);
} catch (Exception ex) {
throw new EJBException(ex.getMessage());
}
return copyPlayersToDetails(players);
} // getPlayersByCity
public ArrayList getAllPlayers() {
//Debug.print("RosterBean getAllPlayers");
Collection players = null;
try {
players = playerHome.findAll();
} catch (Exception ex) {
throw new EJBException(ex.getMessage());
}
return copyPlayersToDetails(players);
} // getAllPlayers
public ArrayList getPlayersNotOnTeam() {
//Debug.print("RosterBean getPlayersNotOnTeam");
Collection players = null;
try {
players = playerHome.findNotOnTeam();
} catch (Exception ex) {
throw new EJBException(ex.getMessage());
}
return copyPlayersToDetails(players);
} // getPlayersNotOnTeam
public ArrayList getPlayersByPositionAndName(String position,
String name) {
//Debug.print("RosterBean getPlayersByPositionAndName");
Collection players = null;
try {
players = playerHome.findByPositionAndName(position, name);
} catch (Exception ex) {
throw new EJBException(ex.getMessage());
}
return copyPlayersToDetails(players);
} // getPlayersByPositionAndName
public ArrayList getLeaguesOfPlayer(String playerId) {
//Debug.print("RosterBean getLeaguesOfPlayer");
ArrayList detailsList = new ArrayList();
Collection leagues = null;
try {
LocalPlayer player = playerHome.findByPrimaryKey(playerId);
leagues = player.getLeagues();
} catch (Exception ex) {
throw new EJBException(ex.getMessage());
}
Iterator i = leagues.iterator();
while (i.hasNext()) {
LocalLeague league = (LocalLeague) i.next();
LeagueDetails details = new LeagueDetails(league.getLeagueId(),
league.getName(),
league.getSport());
detailsList.add(details);
}
return detailsList;
} // getLeaguesOfPlayer
public ArrayList getSportsOfPlayer(String playerId) {
//Debug.print("RosterBean getSportsOfPlayer");
ArrayList sportsList = new ArrayList();
Collection sports = null;
try {
LocalPlayer player = playerHome.findByPrimaryKey(playerId);
sports = player.getSports();
} catch (Exception ex) {
throw new EJBException(ex.getMessage());
}
Iterator i = sports.iterator();
while (i.hasNext()) {
String sport = (String) i.next();
sportsList.add(sport);
}
return sportsList;
} // getSportsOfPlayer
// Team business methods
public void createTeamInLeague(TeamDetails details, String leagueId) {
//Debug.print("RosterBean createTeamInLeague");
try {
LocalLeague league = leagueHome.findByPrimaryKey(leagueId);
LocalTeam team = teamHome.create(details.getId(),
details.getName(),
details.getCity());
league.addTeam(team);
} catch (Exception ex) {
throw new EJBException(ex.getMessage());
}
}
public void removeTeam(String teamId) {
//Debug.print("RosterBean removeTeam");
try {
LocalTeam team = teamHome.findByPrimaryKey(teamId);
team.remove();
} catch (Exception ex) {
throw new EJBException(ex.getMessage());
}
}
public TeamDetails getTeam(String teamId) {
//Debug.print("RosterBean getTeam");
TeamDetails teamDetails = null;
try {
LocalTeam team = teamHome.findByPrimaryKey(teamId);
teamDetails = new TeamDetails(teamId,
team.getName(), team.getCity());
} catch (Exception ex) {
throw new EJBException(ex.getMessage());
}
return teamDetails;
}
// League business methods
public void createLeague(LeagueDetails details) {
//Debug.print("RosterBean createLeague");
try {
LocalLeague league = leagueHome.create(details.getId(),
details.getName(),
details.getSport());
} catch (Exception ex) {
throw new EJBException(ex.getMessage());
}
}
public void removeLeague(String leagueId) {
//Debug.print("RosterBean removeLeague");
try {
LocalLeague league = leagueHome.findByPrimaryKey(leagueId);
league.remove();
} catch (Exception ex) {
throw new EJBException(ex.getMessage());
}
}
public LeagueDetails getLeague(String leagueId) {
//Debug.print("RosterBean getLeague");
LeagueDetails leagueDetails = null;
try {
LocalLeague league = leagueHome.findByPrimaryKey(leagueId);
leagueDetails = new LeagueDetails(leagueId,
league.getName(),
league.getSport());
} catch (Exception ex) {
throw new EJBException(ex.getMessage());
}
return leagueDetails;
}
// SessionBean methods
public void ejbCreate() throws CreateException {
//Debug.print("RosterBean ejbCreate");
try {
playerHome = lookupPlayer();
teamHome = lookupTeam();
leagueHome = lookupLeague();
} catch (NamingException ex) {
throw new CreateException(ex.getMessage());
}
}
public void ejbActivate() {
//Debug.print("RosterBean ejbActivate");
try {
playerHome = lookupPlayer();
teamHome = lookupTeam();
leagueHome = lookupLeague();
} catch (NamingException ex) {
throw new EJBException(ex.getMessage());
}
}
public void ejbPassivate() {
playerHome = null;
teamHome = null;
leagueHome = null;
}
public RosterBean() {}
public void ejbRemove() {}
public void setSessionContext(SessionContext sc) {}
// Private methods
private LocalPlayerHome lookupPlayer() throws NamingException {
Context initial = new InitialContext();
Object objref = initial.lookup("java:comp/env/ejb/SimplePlayer");
return (LocalPlayerHome) objref;
}
private LocalTeamHome lookupTeam() throws NamingException {
Context initial = new InitialContext();
Object objref = initial.lookup("java:comp/env/ejb/SimpleTeam");
return (LocalTeamHome) objref;
}
private LocalLeagueHome lookupLeague() throws NamingException {
Context initial = new InitialContext();
Object objref = initial.lookup("java:comp/env/ejb/SimpleLeague");
return (LocalLeagueHome) objref;
}
private ArrayList copyPlayersToDetails(Collection players) {
ArrayList detailsList = new ArrayList();
Iterator i = players.iterator();
while (i.hasNext()) {
LocalPlayer player = (LocalPlayer) i.next();
PlayerDetails details = new PlayerDetails(player.getPlayerId(),
player.getName(),
player.getPosition(),
player.getSalary());
detailsList.add(details);
}
return detailsList;
}
}