aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/pokemon/Service.java
blob: 1d95c4bb8c2c2a8ff38815202f9d5c2468f3772f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
package pokemon;

import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
import java.util.ArrayList;

import database.Database;
import models.Ability;
import models.History;
import models.Monster;
import models.MonsterViewModel;
import models.PokemonAddModel;
import models.User;

public class Service extends UnicastRemoteObject implements IService  {

	protected Service() throws RemoteException {
		super();
	}

	@Override
	public boolean addUser(User user) throws RemoteException{
		Database db=Database.getInstance();
		return db.addUser(user);
	}

	@Override
	public User login(User user) throws RemoteException{
		Database db=Database.getInstance();
		return db.login(user);
	}

	@Override
	public long addMonster(Monster monster)throws RemoteException {
		Database db=Database.getInstance();
		return db.addMonster(monster);
	}

	@Override
	public boolean addAbility(Ability ability) throws RemoteException{
		Database db=Database.getInstance();
		return db.addAbility(ability);
	}

	@Override
	public ArrayList<Monster> getMonsters()throws RemoteException {
		Database db=Database.getInstance();
		return db.getMonsters();
	}

	@Override
	public Monster getUserMonster(String username) throws RemoteException {
		Database db=Database.getInstance();
		return db.getUserMonster(username);
	}

	@Override
	public void addMonsterToUser(long id, long monsterId) throws RemoteException {
		Database db=Database.getInstance();
		db.addMonsterToUser(id, monsterId);
		
	}

	@Override
	public MonsterViewModel getMonsterViewModel(long id) throws RemoteException {
		Database db=Database.getInstance();
		return db.getMonsterViewModel(id);
	}

	@Override
	public ArrayList<User> getAllUsers() throws RemoteException {
		Database db=Database.getInstance();
		return db.getAllUsers();
	}

	@Override
	public void deleteUser(long id) throws RemoteException {
		Database db=Database.getInstance();
		db.deleteUser(id);
		
	}
	public boolean addPokemonWithAbilities(PokemonAddModel pokemon)throws RemoteException {
		boolean res=false;
		Database db=Database.getInstance();
		long monsterId=db.addMonster(addModelToMonster(pokemon));
		for(Ability a:pokemon.abilities) {
			a.monsterId=monsterId;
			db.addAbility(a);
		}
		res=true;
		return res;
		
	}
	public Monster addModelToMonster(PokemonAddModel pokemon) {
		Monster newMonster=new Monster();
		newMonster.setName(pokemon.getName());
		newMonster.setDescription(pokemon.getDescription());
		newMonster.setHp(pokemon.getHp());
		newMonster.setBase64Image(pokemon.getBase64Image());
		return newMonster;
		
	}

	@Override
	public void deleteMonster(long id) throws RemoteException {
		Database db=Database.getInstance();
		db.deleteMonster(id);
		
	}

	@Override
	public User getUserById(long id) throws RemoteException {
		Database db=Database.getInstance();
		return db.getUserById(id);
	}

	@Override
	public int addHistory(Game game) throws Exception {
		Database db=Database.getInstance();
		return db.addHistory(game);
	}

	@Override
	public ArrayList<History> getUserHistory(long id) throws RemoteException {
		Database db=Database.getInstance();
		
		return db.getUserHistory(id);
	}
	

}