1
0
mirror of https://github.com/Rogiel/l2jserver2 synced 2025-12-06 07:32:46 +00:00

Javadoc improvement and renamed IDProvider#createID(Object) to

resolveID(Object)

Signed-off-by: Rogiel <rogiel@rogiel.com>
This commit is contained in:
2011-07-30 22:36:16 -03:00
parent 17fb84faab
commit b7d3738c0b
26 changed files with 69 additions and 44 deletions

View File

@@ -123,7 +123,7 @@ public abstract class JDBCCharacterDAO extends
private final Mapper<CharacterID> idMapper = new Mapper<CharacterID>() { private final Mapper<CharacterID> idMapper = new Mapper<CharacterID>() {
@Override @Override
public CharacterID map(ResultSet rs) throws SQLException { public CharacterID map(ResultSet rs) throws SQLException {
return idFactory.createID(rs.getInt(CHAR_ID)); return idFactory.resolveID(rs.getInt(CHAR_ID));
} }
}; };
@@ -138,16 +138,16 @@ public abstract class JDBCCharacterDAO extends
final CharacterClass charClass = CharacterClass.valueOf(rs final CharacterClass charClass = CharacterClass.valueOf(rs
.getString(CLASS)); .getString(CLASS));
final CharacterTemplateID templateId = templateIdFactory final CharacterTemplateID templateId = templateIdFactory
.createID(charClass.id); .resolveID(charClass.id);
final CharacterTemplate template = templateId.getTemplate(); final CharacterTemplate template = templateId.getTemplate();
final L2Character character = template.create(); final L2Character character = template.create();
character.setID(id); character.setID(id);
character.setAccountID(accountIdFactory.createID(rs character.setAccountID(accountIdFactory.resolveID(rs
.getString(ACCOUNT_ID))); .getString(ACCOUNT_ID)));
if (rs.getString(CLAN_ID) != null) if (rs.getString(CLAN_ID) != null)
character.setClanID(clanIdFactory.createID(rs.getInt(CLAN_ID))); character.setClanID(clanIdFactory.resolveID(rs.getInt(CLAN_ID)));
character.setName(rs.getString(NAME)); character.setName(rs.getString(NAME));

View File

@@ -78,9 +78,9 @@ public abstract class JDBCCharacterFriendDAO extends
private final Mapper<FriendID> idMapper = new Mapper<FriendID>() { private final Mapper<FriendID> idMapper = new Mapper<FriendID>() {
@Override @Override
public FriendID map(ResultSet rs) throws SQLException { public FriendID map(ResultSet rs) throws SQLException {
final CharacterID characterId = charIdProvider.createID(rs final CharacterID characterId = charIdProvider.resolveID(rs
.getInt(CHAR_ID)); .getInt(CHAR_ID));
final CharacterID friendId = charIdProvider.createID(rs final CharacterID friendId = charIdProvider.resolveID(rs
.getInt(CHAR_ID_FRIEND)); .getInt(CHAR_ID_FRIEND));
return idProvider.createID(characterId, friendId); return idProvider.createID(characterId, friendId);
} }

View File

@@ -82,7 +82,7 @@ public abstract class JDBCChatMessageDAO extends
private final Mapper<ChatMessageID> idMapper = new Mapper<ChatMessageID>() { private final Mapper<ChatMessageID> idMapper = new Mapper<ChatMessageID>() {
@Override @Override
public ChatMessageID map(ResultSet rs) throws SQLException { public ChatMessageID map(ResultSet rs) throws SQLException {
return idFactory.createID(rs.getInt(MESSAGE_ID)); return idFactory.resolveID(rs.getInt(MESSAGE_ID));
} }
}; };
@@ -100,13 +100,13 @@ public abstract class JDBCChatMessageDAO extends
message.setType(ChatMessageType.valueOf(rs.getString(TYPE))); message.setType(ChatMessageType.valueOf(rs.getString(TYPE)));
switch (message.getType()) { switch (message.getType()) {
case SHOUT: case SHOUT:
message.setTarget(charIdFactory.createID(rs.getInt(CHANNEL_ID))); message.setTarget(charIdFactory.resolveID(rs.getInt(CHANNEL_ID)));
break; break;
default: default:
message.setChannelID(rs.getInt(CHANNEL_ID)); message.setChannelID(rs.getInt(CHANNEL_ID));
break; break;
} }
message.setSender(charIdFactory.createID(rs.getInt(SENDER))); message.setSender(charIdFactory.resolveID(rs.getInt(SENDER)));
message.setDate(new Date(rs.getTimestamp(DATE).getTime())); message.setDate(new Date(rs.getTimestamp(DATE).getTime()));
message.setMessage(rs.getString(MESSAGE)); message.setMessage(rs.getString(MESSAGE));

View File

@@ -75,7 +75,7 @@ public abstract class JDBCClanDAO extends AbstractJDBCDAO<Clan, ClanID> implemen
private final Mapper<ClanID> idMapper = new Mapper<ClanID>() { private final Mapper<ClanID> idMapper = new Mapper<ClanID>() {
@Override @Override
public ClanID map(ResultSet rs) throws SQLException { public ClanID map(ResultSet rs) throws SQLException {
return idFactory.createID(rs.getInt(CLAN_ID)); return idFactory.resolveID(rs.getInt(CLAN_ID));
} }
}; };

View File

@@ -96,7 +96,7 @@ public abstract class JDBCItemDAO extends AbstractJDBCDAO<Item, ItemID> implemen
private final Mapper<ItemID> idMapper = new Mapper<ItemID>() { private final Mapper<ItemID> idMapper = new Mapper<ItemID>() {
@Override @Override
public ItemID map(ResultSet rs) throws SQLException { public ItemID map(ResultSet rs) throws SQLException {
return idFactory.createID(rs.getInt(ITEM_ID)); return idFactory.resolveID(rs.getInt(ITEM_ID));
} }
}; };
@@ -107,14 +107,14 @@ public abstract class JDBCItemDAO extends AbstractJDBCDAO<Item, ItemID> implemen
database, idMapper) { database, idMapper) {
@Override @Override
public Item map(ItemID id, ResultSet rs) throws SQLException { public Item map(ItemID id, ResultSet rs) throws SQLException {
final ItemTemplateID templateId = templateIdFactory.createID(rs final ItemTemplateID templateId = templateIdFactory.resolveID(rs
.getInt(TEMPLATE_ID)); .getInt(TEMPLATE_ID));
final ItemTemplate template = templateId.getTemplate(); final ItemTemplate template = templateId.getTemplate();
final Item item = template.create(); final Item item = template.create();
item.setID(id); item.setID(id);
if (rs.getObject(CHAR_ID) != null) if (rs.getObject(CHAR_ID) != null)
item.setOwnerID(charIdFactory.createID(rs.getInt(CHAR_ID))); item.setOwnerID(charIdFactory.resolveID(rs.getInt(CHAR_ID)));
if (rs.getObject(LOCATION) != null) if (rs.getObject(LOCATION) != null)
item.setLocation(InventoryLocation.valueOf(rs item.setLocation(InventoryLocation.valueOf(rs
.getString(LOCATION))); .getString(LOCATION)));

View File

@@ -93,7 +93,7 @@ public abstract class JDBCNPCDAO extends AbstractJDBCDAO<NPC, NPCID> implements
public NPCID map(ResultSet rs) throws SQLException { public NPCID map(ResultSet rs) throws SQLException {
if (rs.getString(NPC_ID) == null) if (rs.getString(NPC_ID) == null)
return null; return null;
return idProvider.createID(rs.getInt(NPC_ID)); return idProvider.resolveID(rs.getInt(NPC_ID));
} }
}; };
@@ -104,7 +104,7 @@ public abstract class JDBCNPCDAO extends AbstractJDBCDAO<NPC, NPCID> implements
idMapper) { idMapper) {
@Override @Override
protected NPC map(NPCID id, ResultSet rs) throws SQLException { protected NPC map(NPCID id, ResultSet rs) throws SQLException {
NPCTemplateID templateId = templateIdProvider.createID(rs NPCTemplateID templateId = templateIdProvider.resolveID(rs
.getInt(NPC_TEMPLATE_ID)); .getInt(NPC_TEMPLATE_ID));
NPCTemplate template = templateId.getTemplate(); NPCTemplate template = templateId.getTemplate();
if (template == null) { if (template == null) {

View File

@@ -81,7 +81,7 @@ public class CM_AUTH_LOGIN extends AbstractClientPacket {
@Override @Override
public void process(final Lineage2Client conn) { public void process(final Lineage2Client conn) {
final AccountID accountId = accountIdFactory.createID(loginName); final AccountID accountId = accountIdFactory.resolveID(loginName);
conn.setSession(new Lineage2Session(accountId, playKey1, playKey2, conn.setSession(new Lineage2Session(accountId, playKey1, playKey2,
loginKey1, loginKey2)); loginKey1, loginKey2));

View File

@@ -193,7 +193,7 @@ public class CM_CHAR_CREATE extends AbstractClientPacket {
// create template id and lookup for the template instance // create template id and lookup for the template instance
final CharacterTemplateID templateId = characterTemplateIdProvider final CharacterTemplateID templateId = characterTemplateIdProvider
.createID(characterClass.id); .resolveID(characterClass.id);
final CharacterTemplate template = templateId.getTemplate(); final CharacterTemplate template = templateId.getTemplate();
log.debug("Creating character with template {}", template); log.debug("Creating character with template {}", template);

View File

@@ -80,7 +80,7 @@ public class CM_REQUEST_CHAR_TEMPLATE extends AbstractClientPacket {
final CharacterTemplate[] templates = new CharacterTemplate[TEMPLATE_CLASSES.length]; final CharacterTemplate[] templates = new CharacterTemplate[TEMPLATE_CLASSES.length];
int i = 0; int i = 0;
for (final CharacterClass charClass : TEMPLATE_CLASSES) { for (final CharacterClass charClass : TEMPLATE_CLASSES) {
final CharacterTemplateID id = idFactory.createID(charClass.id); final CharacterTemplateID id = idFactory.resolveID(charClass.id);
templates[i++] = id.getTemplate(); templates[i++] = id.getTemplate();
} }
conn.write(new SM_CHAR_TEMPLATE(templates)); conn.write(new SM_CHAR_TEMPLATE(templates));

View File

@@ -58,7 +58,7 @@ public class CharacterIDProvider implements ObjectIDProvider<CharacterID> {
} }
@Override @Override
public CharacterID createID(Integer id) { public CharacterID resolveID(Integer id) {
CharacterID idObject = idService.resolve(id); CharacterID idObject = idService.resolve(id);
if (idObject == null) { if (idObject == null) {
idObject = factory.create(id); idObject = factory.create(id);

View File

@@ -59,7 +59,7 @@ public class ClanIDProvider implements ObjectIDProvider<ClanID> {
} }
@Override @Override
public ClanID createID(Integer id) { public ClanID resolveID(Integer id) {
ClanID idObject = idService.resolve(id); ClanID idObject = idService.resolve(id);
if (idObject == null) { if (idObject == null) {
idObject = factory.create(id); idObject = factory.create(id);

View File

@@ -59,7 +59,7 @@ public class ItemIDProvider implements ObjectIDProvider<ItemID> {
} }
@Override @Override
public ItemID createID(Integer id) { public ItemID resolveID(Integer id) {
ItemID idObject = idService.resolve(id); ItemID idObject = idService.resolve(id);
if (idObject == null) { if (idObject == null) {
idObject = factory.create(id); idObject = factory.create(id);

View File

@@ -58,7 +58,7 @@ public class NPCIDProvider implements ObjectIDProvider<NPCID> {
} }
@Override @Override
public NPCID createID(Integer id) { public NPCID resolveID(Integer id) {
NPCID idObject = idService.resolve(id); NPCID idObject = idService.resolve(id);
if (idObject == null) { if (idObject == null) {
idObject = factory.create(id); idObject = factory.create(id);

View File

@@ -18,19 +18,34 @@ package com.l2jserver.model.id.object.provider;
import com.google.inject.Inject; import com.google.inject.Inject;
import com.l2jserver.model.id.ObjectID; import com.l2jserver.model.id.ObjectID;
import com.l2jserver.model.id.object.ActorID;
import com.l2jserver.model.id.object.CharacterID;
import com.l2jserver.model.id.object.NPCID;
import com.l2jserver.service.game.world.WorldIDService; import com.l2jserver.service.game.world.WorldIDService;
/** /**
* <h1>THIS PROVIDER IS READ ONLY!</h1> * <b>THIS PROVIDER IS READ ONLY!</b>
* <p> * <p>
* This is an ID resolver that will lookup for IDs in {@link WorldIDService}. * This is an ID resolver that will lookup for <b>existing</b> IDs in
* Since this is only a resolver, only read operations can be performed and * {@link WorldIDService}. Since this is only a resolver, only read operations
* {@link #createID()} and {@link #destroy(ObjectID)} will throw * can be performed. Methods {@link #createID()} and {@link #destroy(ObjectID)}
* {@link UnsupportedOperationException}. * will throw {@link UnsupportedOperationException}.
* <p> * <p>
* Another important aspect is that in {@link #createID(Integer)} if the ID is * Another important aspect is that in {@link #resolveID(Integer)} if the ID is
* not found, it will <b>NOT</b> be created, instead <tt>null</tt> will be * not found, it will <b>NOT</b> create it, instead <tt>null</tt> will be
* returned. You must use specific a {@link ObjectIDProvider} for that. * returned. You must use specific a {@link ObjectIDProvider} for that.
* <p>
* <h1>Use case</h1>
* You should only use this class if you don't know which {@link ObjectID} to
* expect or you are expecting multiple types (like {@link CharacterID} or
* {@link NPCID} both of them extend {@link ActorID}).
* <p>
* <h1>Type safe notice</h1>
* All IDs returned by this class are {@link ObjectID}. However sub-types cannot
* be ensured and you must check them manually in order to avoid unneeded
* {@link ClassCastException}. Even if you are sure that an given
* {@link ObjectID} is from an certain sub-type, do not assume that it will be
* always and do an checking.
* *
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
@@ -45,13 +60,18 @@ public class ObjectIDResolver implements ObjectIDProvider<ObjectID<?>> {
this.idService = idService; this.idService = idService;
} }
/**
* Resolvers do not support creating new IDs
*
* @throws UnsupportedOperationException
*/
@Override @Override
public ObjectID<?> createID() { public ObjectID<?> createID() {
throw new UnsupportedOperationException(); throw new UnsupportedOperationException();
} }
@Override @Override
public ObjectID<?> createID(Integer id) { public ObjectID<?> resolveID(Integer id) {
return idService.resolve(id); return idService.resolve(id);
} }
@@ -67,9 +87,14 @@ public class ObjectIDResolver implements ObjectIDProvider<ObjectID<?>> {
*/ */
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public <T extends ObjectID<?>> T resolve(Integer id) { public <T extends ObjectID<?>> T resolve(Integer id) {
return (T) createID(id); return (T) resolveID(id);
} }
/**
* Resolvers do not support destroying IDs
*
* @throws UnsupportedOperationException
*/
@Override @Override
public void destroy(ObjectID<?> id) { public void destroy(ObjectID<?> id) {
throw new UnsupportedOperationException(); throw new UnsupportedOperationException();

View File

@@ -59,7 +59,7 @@ public class PetIDProvider implements ObjectIDProvider<PetID> {
} }
@Override @Override
public PetID createID(Integer id) { public PetID resolveID(Integer id) {
PetID idObject = idService.resolve(id); PetID idObject = idService.resolve(id);
if (idObject == null) { if (idObject == null) {
idObject = factory.create(id); idObject = factory.create(id);

View File

@@ -40,5 +40,5 @@ public interface IDProvider<I, T extends ID<I>> {
* @param id * @param id
* @return * @return
*/ */
T createID(I id); T resolveID(I id);
} }

View File

@@ -45,7 +45,7 @@ public class TeleporterController extends BaseNPCController {
if (args.length >= 2) { if (args.length >= 2) {
if (args[0].equals("goto")) { if (args[0].equals("goto")) {
final TeleportationTemplate tele = teleportationIdProvider final TeleportationTemplate tele = teleportationIdProvider
.createID(Integer.parseInt(args[1])).getTemplate(); .resolveID(Integer.parseInt(args[1])).getTemplate();
if (tele == null) { if (tele == null) {
// TODO notify user that his destination is invalid // TODO notify user that his destination is invalid
conn.sendActionFailed(); conn.sendActionFailed();

View File

@@ -58,7 +58,7 @@ public class DatabaseChatLoggingService extends AbstractService implements
switch (channel.getMessageType()) { switch (channel.getMessageType()) {
case SHOUT: // if type is SHOUT the ChannelID is the CharacterID case SHOUT: // if type is SHOUT the ChannelID is the CharacterID
// (target) // (target)
message.setTarget(charIdProvider.createID(channel.getChannelID())); message.setTarget(charIdProvider.resolveID(channel.getChannelID()));
break; break;
default: default:
message.setChannelID(channel.getChannelID()); message.setChannelID(channel.getChannelID());

View File

@@ -41,7 +41,7 @@ public class CharacterTemplateIDAdapter extends
public CharacterTemplateID unmarshal(CharacterClass v) throws Exception { public CharacterTemplateID unmarshal(CharacterClass v) throws Exception {
if (v == null) if (v == null)
return null; return null;
return provider.createID(v.id); return provider.resolveID(v.id);
} }
@Override @Override

View File

@@ -45,7 +45,7 @@ public class ItemTemplateIDAdapter extends XmlAdapter<Integer, ItemTemplateID> {
return null; return null;
if (provider == null) if (provider == null)
return new ItemTemplateID(v, null); return new ItemTemplateID(v, null);
return provider.createID(v); return provider.resolveID(v);
} }
@Override @Override

View File

@@ -45,7 +45,7 @@ public class NPCTemplateIDAdapter extends XmlAdapter<Integer, NPCTemplateID> {
return null; return null;
if (provider == null) if (provider == null)
return new NPCTemplateID(v, null); return new NPCTemplateID(v, null);
return provider.createID(v); return provider.resolveID(v);
} }
@Override @Override

View File

@@ -46,7 +46,7 @@ public class SkillTemplateIDAdapter extends
return null; return null;
if (provider == null) if (provider == null)
return new SkillTemplateID(v, null); return new SkillTemplateID(v, null);
return provider.createID(v); return provider.resolveID(v);
} }
@Override @Override

View File

@@ -47,7 +47,7 @@ public class TeleportationTemplateIDAdapter extends
return null; return null;
if (provider == null) if (provider == null)
return new TeleportationTemplateID(v, null); return new TeleportationTemplateID(v, null);
return provider.createID(v); return provider.resolveID(v);
} }
@Override @Override

View File

@@ -45,9 +45,9 @@ public class MySQL5CharacterDAOTest {
final CharacterDAO dao = injector.getInstance(CharacterDAO.class); final CharacterDAO dao = injector.getInstance(CharacterDAO.class);
final L2Character char1 = dao.select(injector.getInstance( final L2Character char1 = dao.select(injector.getInstance(
CharacterIDProvider.class).createID(268437456)); CharacterIDProvider.class).resolveID(268437456));
final L2Character char2 = dao.select(injector.getInstance( final L2Character char2 = dao.select(injector.getInstance(
CharacterIDProvider.class).createID(268437456)); CharacterIDProvider.class).resolveID(268437456));
Assert.assertSame(char1, char2); Assert.assertSame(char1, char2);
} }

View File

@@ -66,7 +66,7 @@ public class IDFactoryTest {
@Test @Test
public void testGetObject() throws ServiceStartException { public void testGetObject() throws ServiceStartException {
final CharacterID id = charIdFactory.createID(268437456); final CharacterID id = charIdFactory.resolveID(268437456);
final L2Character character = id.getObject(); final L2Character character = id.getObject();
Assert.assertNotNull(character); Assert.assertNotNull(character);

View File

@@ -36,6 +36,6 @@ public class StaticTemplateServiceTest {
@Test @Test
public void testAdena() throws ServiceStartException { public void testAdena() throws ServiceStartException {
injector.getInstance(ServiceManager.class).start(TemplateService.class); injector.getInstance(ServiceManager.class).start(TemplateService.class);
System.out.println(factory.createID(57).getTemplate()); System.out.println(factory.resolveID(57).getTemplate());
} }
} }