mirror of
https://github.com/Rogiel/l2jserver2
synced 2025-12-06 07:32:46 +00:00
@@ -21,6 +21,7 @@ import java.util.List;
|
||||
import com.l2jserver.model.id.AccountID;
|
||||
import com.l2jserver.model.id.ID;
|
||||
import com.l2jserver.model.id.object.CharacterID;
|
||||
import com.l2jserver.model.world.Clan;
|
||||
import com.l2jserver.model.world.L2Character;
|
||||
import com.l2jserver.service.cache.Cacheable;
|
||||
import com.l2jserver.service.cache.IgnoreCaching;
|
||||
@@ -41,6 +42,14 @@ public interface CharacterDAO extends DataAccessObject<L2Character>, Cacheable {
|
||||
*/
|
||||
L2Character load(CharacterID id);
|
||||
|
||||
/**
|
||||
* Load the members of the given <tt>clan</tt>
|
||||
*
|
||||
* @param clan
|
||||
* the clan
|
||||
*/
|
||||
void load(Clan clan);
|
||||
|
||||
/**
|
||||
* Select an character by its name.
|
||||
*
|
||||
|
||||
@@ -35,6 +35,7 @@ import com.l2jserver.model.id.template.factory.CharacterTemplateIDFactory;
|
||||
import com.l2jserver.model.template.CharacterTemplate;
|
||||
import com.l2jserver.model.world.AbstractActor.Race;
|
||||
import com.l2jserver.model.world.AbstractActor.Sex;
|
||||
import com.l2jserver.model.world.Clan;
|
||||
import com.l2jserver.model.world.L2Character;
|
||||
import com.l2jserver.model.world.character.CharacterAppearance;
|
||||
import com.l2jserver.model.world.character.CharacterAppearance.CharacterFace;
|
||||
@@ -42,7 +43,6 @@ import com.l2jserver.model.world.character.CharacterAppearance.CharacterHairColo
|
||||
import com.l2jserver.model.world.character.CharacterAppearance.CharacterHairStyle;
|
||||
import com.l2jserver.model.world.character.CharacterClass;
|
||||
import com.l2jserver.service.database.DatabaseService;
|
||||
import com.l2jserver.service.database.MySQLDatabaseService;
|
||||
import com.l2jserver.service.database.MySQLDatabaseService.CachedMapper;
|
||||
import com.l2jserver.service.database.MySQLDatabaseService.InsertUpdateQuery;
|
||||
import com.l2jserver.service.database.MySQLDatabaseService.Mapper;
|
||||
@@ -114,28 +114,18 @@ public class MySQL5CharacterDAO extends AbstractMySQL5DAO<L2Character>
|
||||
}
|
||||
|
||||
/**
|
||||
* The {@link Mapper} instance
|
||||
* The {@link Mapper} for {@link L2Character}
|
||||
*/
|
||||
private final CharacterMapper mapper = new CharacterMapper(database);
|
||||
|
||||
/**
|
||||
* Character mapper class
|
||||
*
|
||||
* @author <a href="http://www.rogiel.com">Rogiel</a>
|
||||
*/
|
||||
private final class CharacterMapper extends
|
||||
CachedMapper<L2Character, CharacterID> {
|
||||
public CharacterMapper(MySQLDatabaseService database) {
|
||||
super(database);
|
||||
}
|
||||
|
||||
private final Mapper<L2Character> mapper = new CachedMapper<L2Character, CharacterID>(
|
||||
database) {
|
||||
@Override
|
||||
protected CharacterID createID(ResultSet rs) throws SQLException {
|
||||
return idFactory.createID(rs.getInt(CHAR_ID));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected L2Character map(CharacterID id, ResultSet rs) throws SQLException {
|
||||
protected L2Character map(CharacterID id, ResultSet rs)
|
||||
throws SQLException {
|
||||
final CharacterClass charClass = CharacterClass.valueOf(rs
|
||||
.getString(CLASS));
|
||||
final CharacterTemplateID templateId = templateIdFactory
|
||||
@@ -176,63 +166,19 @@ public class MySQL5CharacterDAO extends AbstractMySQL5DAO<L2Character>
|
||||
character.getAppearance().setFace(
|
||||
CharacterFace.valueOf(rs.getString(APPEARANCE_FACE)));
|
||||
|
||||
database.updateCache(character.getID(), character);
|
||||
|
||||
return character;
|
||||
}
|
||||
};
|
||||
|
||||
// @Override
|
||||
// public L2Character map(ResultSet rs) throws SQLException {
|
||||
// final CharacterID id = idFactory.createID(rs.getInt(CHAR_ID));
|
||||
//
|
||||
// if (database.hasCachedObject(id))
|
||||
// return (L2Character) database.getCachedObject(id);
|
||||
//
|
||||
// final CharacterClass charClass = CharacterClass.valueOf(rs
|
||||
// .getString(CLASS));
|
||||
// final CharacterTemplateID templateId = templateIdFactory
|
||||
// .createID(charClass.id);
|
||||
// final CharacterTemplate template = templateId.getTemplate();
|
||||
//
|
||||
// final L2Character character = new L2Character(
|
||||
// template.getBaseAttributes());
|
||||
//
|
||||
// character.setID(id);
|
||||
// character.setAccountID(accountIdFactory.createID(rs
|
||||
// .getString(ACCOUNT_ID)));
|
||||
// if (rs.getString(CLAN_ID) != null)
|
||||
// character.setClanID(clanIdFactory.createID(rs.getInt(CLAN_ID)));
|
||||
//
|
||||
// character.setName(rs.getString(NAME));
|
||||
//
|
||||
// character.setRace(Race.valueOf(rs.getString(RACE)));
|
||||
// character.setCharacterClass(CharacterClass.valueOf(rs
|
||||
// .getString(CLASS)));
|
||||
// character.setSex(Sex.valueOf(rs.getString(SEX)));
|
||||
//
|
||||
// character.setLevel(rs.getInt(LEVEL));
|
||||
// // TODO load experience
|
||||
// // TODO load sp
|
||||
//
|
||||
// character.setPoint(Point.fromXYZA(rs.getInt(POINT_X),
|
||||
// rs.getInt(POINT_Y), rs.getInt(POINT_Z),
|
||||
// rs.getDouble(POINT_ANGLE)));
|
||||
//
|
||||
// // appearance
|
||||
// character.getAppearance().setHairStyle(
|
||||
// CharacterHairStyle.valueOf(rs
|
||||
// .getString(APPEARANCE_HAIR_STYLE)));
|
||||
// character.getAppearance().setHairColor(
|
||||
// CharacterHairColor.valueOf(rs
|
||||
// .getString(APPEARANCE_HAIR_COLOR)));
|
||||
// character.getAppearance().setFace(
|
||||
// CharacterFace.valueOf(rs.getString(APPEARANCE_FACE)));
|
||||
//
|
||||
// database.updateCache(character.getID(), character);
|
||||
//
|
||||
// return character;
|
||||
// }
|
||||
}
|
||||
/**
|
||||
* The mapper for {@link CharacterID}
|
||||
*/
|
||||
private final Mapper<CharacterID> idMapper = new Mapper<CharacterID>() {
|
||||
@Override
|
||||
public CharacterID map(ResultSet rs) throws SQLException {
|
||||
return idFactory.createID(rs.getInt(CHAR_ID));
|
||||
}
|
||||
};
|
||||
|
||||
@Override
|
||||
public L2Character load(final CharacterID id) {
|
||||
@@ -255,6 +201,29 @@ public class MySQL5CharacterDAO extends AbstractMySQL5DAO<L2Character>
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void load(final Clan clan) {
|
||||
clan.getMembers().load(
|
||||
database.query(new SelectListQuery<CharacterID>() {
|
||||
@Override
|
||||
protected String query() {
|
||||
return "SELECT `" + CHAR_ID + "` FROM `" + TABLE
|
||||
+ "` WHERE `" + CLAN_ID + "` = ?";
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void parametize(PreparedStatement st)
|
||||
throws SQLException {
|
||||
st.setInt(1, clan.getID().getID());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Mapper<CharacterID> mapper() {
|
||||
return idMapper;
|
||||
}
|
||||
}));
|
||||
}
|
||||
|
||||
@Override
|
||||
public L2Character selectByName(final String name) {
|
||||
return database.query(new SelectSingleQuery<L2Character>() {
|
||||
@@ -301,17 +270,12 @@ public class MySQL5CharacterDAO extends AbstractMySQL5DAO<L2Character>
|
||||
return database.query(new SelectListQuery<CharacterID>() {
|
||||
@Override
|
||||
protected String query() {
|
||||
return "SELECT * FROM `" + TABLE + "`";
|
||||
return "SELECT `" + CHAR_ID + " FROM `" + TABLE + "`";
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Mapper<CharacterID> mapper() {
|
||||
return new Mapper<CharacterID>() {
|
||||
@Override
|
||||
public CharacterID map(ResultSet rs) throws SQLException {
|
||||
return idFactory.createID(rs.getInt(CHAR_ID));
|
||||
}
|
||||
};
|
||||
return idMapper;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -61,21 +61,14 @@ public class MySQL5CharacterFriendDAO extends AbstractMySQL5DAO<CharacterID>
|
||||
}
|
||||
|
||||
/**
|
||||
* The {@link Mapper} instance
|
||||
* The {@link Mapper} for {@link CharacterID}
|
||||
*/
|
||||
private final CharacterFriendMapper mapper = new CharacterFriendMapper();
|
||||
|
||||
/**
|
||||
* The friend list mapper
|
||||
*
|
||||
* @author <a href="http://www.rogiel.com">Rogiel</a>
|
||||
*/
|
||||
private final class CharacterFriendMapper implements Mapper<CharacterID> {
|
||||
private final Mapper<CharacterID> mapper = new Mapper<CharacterID>() {
|
||||
@Override
|
||||
public CharacterID map(ResultSet rs) throws SQLException {
|
||||
return idFactory.createID(rs.getInt(CHAR_ID_FRIEND));
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@Override
|
||||
public List<CharacterID> load(final CharacterID id) {
|
||||
|
||||
@@ -30,7 +30,6 @@ import com.l2jserver.model.id.object.factory.CharacterIDFactory;
|
||||
import com.l2jserver.model.id.object.factory.ClanIDFactory;
|
||||
import com.l2jserver.model.world.Clan;
|
||||
import com.l2jserver.service.database.DatabaseService;
|
||||
import com.l2jserver.service.database.MySQLDatabaseService;
|
||||
import com.l2jserver.service.database.MySQLDatabaseService.CachedMapper;
|
||||
import com.l2jserver.service.database.MySQLDatabaseService.InsertUpdateQuery;
|
||||
import com.l2jserver.service.database.MySQLDatabaseService.Mapper;
|
||||
@@ -69,20 +68,9 @@ public class MySQL5ClanDAO extends AbstractMySQL5DAO<Clan> implements ClanDAO {
|
||||
}
|
||||
|
||||
/**
|
||||
* The {@link Mapper} instance
|
||||
* The {@link Mapper} for {@link Clan}
|
||||
*/
|
||||
private final ClanMapper mapper = new ClanMapper(database);
|
||||
|
||||
/**
|
||||
* Clan mapper class
|
||||
*
|
||||
* @author <a href="http://www.rogiel.com">Rogiel</a>
|
||||
*/
|
||||
private final class ClanMapper extends CachedMapper<Clan, ClanID> {
|
||||
public ClanMapper(MySQLDatabaseService database) {
|
||||
super(database);
|
||||
}
|
||||
|
||||
private final Mapper<Clan> mapper = new CachedMapper<Clan, ClanID>(database) {
|
||||
@Override
|
||||
protected ClanID createID(ResultSet rs) throws SQLException {
|
||||
return idFactory.createID(rs.getInt(CLAN_ID));
|
||||
@@ -94,7 +82,17 @@ public class MySQL5ClanDAO extends AbstractMySQL5DAO<Clan> implements ClanDAO {
|
||||
clan.setID(id);
|
||||
return clan;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* The {@link Mapper} for {@link ClanID}
|
||||
*/
|
||||
private final Mapper<ClanID> idMapper = new Mapper<ClanID>() {
|
||||
@Override
|
||||
public ClanID map(ResultSet rs) throws SQLException {
|
||||
return idFactory.createID(rs.getInt(CLAN_ID));
|
||||
}
|
||||
};
|
||||
|
||||
@Override
|
||||
public Clan load(final ClanID id) {
|
||||
@@ -127,12 +125,7 @@ public class MySQL5ClanDAO extends AbstractMySQL5DAO<Clan> implements ClanDAO {
|
||||
|
||||
@Override
|
||||
protected Mapper<ClanID> mapper() {
|
||||
return new Mapper<ClanID>() {
|
||||
@Override
|
||||
public ClanID map(ResultSet rs) throws SQLException {
|
||||
return idFactory.createID(rs.getInt(CLAN_ID));
|
||||
}
|
||||
};
|
||||
return idMapper;
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -150,7 +143,6 @@ public class MySQL5ClanDAO extends AbstractMySQL5DAO<Clan> implements ClanDAO {
|
||||
protected void parametize(PreparedStatement st, Clan clan)
|
||||
throws SQLException {
|
||||
int i = 1;
|
||||
|
||||
st.setInt(i++, clan.getID().getID());
|
||||
}
|
||||
}) > 0;
|
||||
|
||||
@@ -34,6 +34,7 @@ import com.l2jserver.model.world.Item;
|
||||
import com.l2jserver.model.world.L2Character;
|
||||
import com.l2jserver.model.world.character.CharacterInventory;
|
||||
import com.l2jserver.service.database.DatabaseService;
|
||||
import com.l2jserver.service.database.MySQLDatabaseService.CachedMapper;
|
||||
import com.l2jserver.service.database.MySQLDatabaseService.Mapper;
|
||||
import com.l2jserver.service.database.MySQLDatabaseService.SelectListQuery;
|
||||
import com.l2jserver.service.database.MySQLDatabaseService.SelectSingleQuery;
|
||||
@@ -80,21 +81,14 @@ public class MySQL5ItemDAO extends AbstractMySQL5DAO<Item> implements ItemDAO {
|
||||
/**
|
||||
* The {@link Mapper} instance
|
||||
*/
|
||||
private final ItemMapper mapper = new ItemMapper();
|
||||
|
||||
/**
|
||||
* {@link Item} mapper class
|
||||
*
|
||||
* @author <a href="http://www.rogiel.com">Rogiel</a>
|
||||
*/
|
||||
private final class ItemMapper implements Mapper<Item> {
|
||||
private final Mapper<Item> mapper = new CachedMapper<Item, ItemID>(database) {
|
||||
@Override
|
||||
public Item map(ResultSet rs) throws SQLException {
|
||||
final ItemID id = idFactory.createID(rs.getInt(ITEM_ID));
|
||||
|
||||
if (database.hasCachedObject(id))
|
||||
return (Item) database.getCachedObject(id);
|
||||
protected ItemID createID(ResultSet rs) throws SQLException {
|
||||
return idFactory.createID(rs.getInt(ITEM_ID));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Item map(ItemID id, ResultSet rs) throws SQLException {
|
||||
final ItemTemplateID templateId = templateIdFactory.createID(rs
|
||||
.getInt(TEMPLATE_ID));
|
||||
final ItemTemplate template = templateId.getTemplate();
|
||||
@@ -103,11 +97,19 @@ public class MySQL5ItemDAO extends AbstractMySQL5DAO<Item> implements ItemDAO {
|
||||
item.setID(id);
|
||||
item.setOwnerID(charIdFactory.createID(rs.getInt(CHAR_ID)));
|
||||
|
||||
database.updateCache(item.getID(), item);
|
||||
|
||||
return item;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* The {@link Mapper} for {@link ItemID}
|
||||
*/
|
||||
private final Mapper<ItemID> idMapper = new Mapper<ItemID>() {
|
||||
@Override
|
||||
public ItemID map(ResultSet rs) throws SQLException {
|
||||
return idFactory.createID(rs.getInt(CHAR_ID));
|
||||
}
|
||||
};
|
||||
|
||||
@Override
|
||||
public Item load(final ItemID id) {
|
||||
@@ -164,12 +166,7 @@ public class MySQL5ItemDAO extends AbstractMySQL5DAO<Item> implements ItemDAO {
|
||||
|
||||
@Override
|
||||
protected Mapper<ItemID> mapper() {
|
||||
return new Mapper<ItemID>() {
|
||||
@Override
|
||||
public ItemID map(ResultSet rs) throws SQLException {
|
||||
return idFactory.createID(rs.getInt(CHAR_ID));
|
||||
}
|
||||
};
|
||||
return idMapper;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -76,6 +76,13 @@ public class Clan extends AbstractObject implements
|
||||
this.leaderID = leaderID;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the members
|
||||
*/
|
||||
public ClanMembers getMembers() {
|
||||
return members;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ClanID getID() {
|
||||
return (ClanID) super.getID();
|
||||
|
||||
@@ -16,8 +16,8 @@
|
||||
*/
|
||||
package com.l2jserver.model.world.clan;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import com.l2jserver.model.id.object.CharacterID;
|
||||
@@ -80,7 +80,7 @@ public class ClanMembers implements Iterable<CharacterID> {
|
||||
* @param members
|
||||
* the list of members ids
|
||||
*/
|
||||
public void load(List<CharacterID> members) {
|
||||
public void load(Collection<CharacterID> members) {
|
||||
this.members.addAll(members);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user