1
0
mirror of https://github.com/Rogiel/l2jserver2 synced 2025-12-10 01:12:52 +00:00

Improves javadoc in more than 190 classes

This commit improves and adds missing javadoc to 196 java files. Now
more than 98% of the code is documented.
This commit is contained in:
2011-09-15 13:12:49 -03:00
parent a2e8680f72
commit 654cc11552
196 changed files with 1718 additions and 59 deletions

View File

@@ -39,6 +39,9 @@ public class CM_CHAR_MOVE extends AbstractClientPacket {
*/ */
public static final int OPCODE = 0x0f; public static final int OPCODE = 0x0f;
/**
* The logger
*/
private final Logger log = LoggerFactory.getLogger(this.getClass()); private final Logger log = LoggerFactory.getLogger(this.getClass());
/** /**

View File

@@ -22,6 +22,9 @@ import com.l2jserver.model.world.Actor;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public enum BaseStats { public enum BaseStats {
/**
* Strength multipliers
*/
STR(0.29, 0.3, 0.31, 0.32, 0.34, 0.35, 0.36, 0.37, 0.39, 0.4, 0.42, 0.43, STR(0.29, 0.3, 0.31, 0.32, 0.34, 0.35, 0.36, 0.37, 0.39, 0.4, 0.42, 0.43,
0.45, 0.46, 0.48, 0.5, 0.51, 0.53, 0.55, 0.57, 0.59, 0.61, 0.63, 0.45, 0.46, 0.48, 0.5, 0.51, 0.53, 0.55, 0.57, 0.59, 0.61, 0.63,
0.66, 0.68, 0.71, 0.73, 0.76, 0.78, 0.81, 0.84, 0.87, 0.9, 0.94, 0.66, 0.68, 0.71, 0.73, 0.76, 0.78, 0.81, 0.84, 0.87, 0.9, 0.94,
@@ -32,6 +35,9 @@ public enum BaseStats {
4.6, 4.77, 4.94, 5.12, 5.3, 5.49, 5.69, 5.89, 6.11, 6.33, 6.55, 4.6, 4.77, 4.94, 5.12, 5.3, 5.49, 5.69, 5.89, 6.11, 6.33, 6.55,
6.79, 7.03, 7.29, 7.55, 7.82, 8.1, 8.39, 8.7, 9.01, 9.33, 9.67), 6.79, 7.03, 7.29, 7.55, 7.82, 8.1, 8.39, 8.7, 9.01, 9.33, 9.67),
/**
* Intelligence multipliers
*/
INT(0.54, 0.55, 0.56, 0.57, 0.58, 0.59, 0.61, 0.62, 0.63, 0.64, 0.65, 0.67, INT(0.54, 0.55, 0.56, 0.57, 0.58, 0.59, 0.61, 0.62, 0.63, 0.64, 0.65, 0.67,
0.68, 0.69, 0.71, 0.72, 0.74, 0.75, 0.77, 0.78, 0.8, 0.81, 0.83, 0.68, 0.69, 0.71, 0.72, 0.74, 0.75, 0.77, 0.78, 0.8, 0.81, 0.83,
0.85, 0.86, 0.88, 0.9, 0.92, 0.94, 0.95, 0.97, 0.99, 1.01, 1.03, 0.85, 0.86, 0.88, 0.9, 0.92, 0.94, 0.95, 0.97, 0.99, 1.01, 1.03,
@@ -42,6 +48,9 @@ public enum BaseStats {
2.52, 2.57, 2.62, 2.67, 2.73, 2.78, 2.84, 2.89, 2.95, 3.01, 3.07, 2.52, 2.57, 2.62, 2.67, 2.73, 2.78, 2.84, 2.89, 2.95, 3.01, 3.07,
3.13, 3.19, 3.26, 3.32, 3.39, 3.46, 3.53, 3.6, 3.67, 3.74, 3.82), 3.13, 3.19, 3.26, 3.32, 3.39, 3.46, 3.53, 3.6, 3.67, 3.74, 3.82),
/**
* Dexterity multipliers
*/
DEX(0.84, 0.85, 0.86, 0.86, 0.87, 0.88, 0.89, 0.9, 0.9, 0.91, 0.92, 0.93, DEX(0.84, 0.85, 0.86, 0.86, 0.87, 0.88, 0.89, 0.9, 0.9, 0.91, 0.92, 0.93,
0.94, 0.94, 0.95, 0.96, 0.97, 0.98, 0.99, 1, 1.01, 1.01, 1.02, 0.94, 0.94, 0.95, 0.96, 0.97, 0.98, 0.99, 1, 1.01, 1.01, 1.02,
1.03, 1.04, 1.05, 1.06, 1.07, 1.08, 1.09, 1.1, 1.11, 1.12, 1.13, 1.03, 1.04, 1.05, 1.06, 1.07, 1.08, 1.09, 1.1, 1.11, 1.12, 1.13,
@@ -52,6 +61,9 @@ public enum BaseStats {
1.69, 1.71, 1.72, 1.74, 1.75, 1.77, 1.78, 1.8, 1.82, 1.83, 1.85, 1.69, 1.71, 1.72, 1.74, 1.75, 1.77, 1.78, 1.8, 1.82, 1.83, 1.85,
1.87, 1.88, 1.9, 1.92, 1.93, 1.95, 1.97, 1.99, 2, 2.02, 2.04), 1.87, 1.88, 1.9, 1.92, 1.93, 1.95, 1.97, 1.99, 2, 2.02, 2.04),
/**
* Witness multipliers
*/
WIT(0.39, 0.4, 0.42, 0.44, 0.46, 0.48, 0.51, 0.53, 0.56, 0.58, 0.61, 0.64, WIT(0.39, 0.4, 0.42, 0.44, 0.46, 0.48, 0.51, 0.53, 0.56, 0.58, 0.61, 0.64,
0.68, 0.71, 0.75, 0.78, 0.82, 0.86, 0.91, 0.95, 1, 1.05, 1.1, 1.16, 0.68, 0.71, 0.75, 0.78, 0.82, 0.86, 0.91, 0.95, 1, 1.05, 1.1, 1.16,
1.22, 1.28, 1.34, 1.41, 1.48, 1.55, 1.63, 1.71, 1.8, 1.89, 1.98, 1.22, 1.28, 1.34, 1.41, 1.48, 1.55, 1.63, 1.71, 1.8, 1.89, 1.98,
@@ -63,6 +75,9 @@ public enum BaseStats {
25.03, 26.28, 27.6, 28.98, 30.43, 31.95, 33.55, 35.22, 36.98, 25.03, 26.28, 27.6, 28.98, 30.43, 31.95, 33.55, 35.22, 36.98,
38.83, 40.77, 42.81, 44.95, 47.2), 38.83, 40.77, 42.81, 44.95, 47.2),
/**
* Concentration multipliers
*/
CON(0.45, 0.46, 0.47, 0.48, 0.5, 0.51, 0.53, 0.54, 0.56, 0.58, 0.59, 0.61, CON(0.45, 0.46, 0.47, 0.48, 0.5, 0.51, 0.53, 0.54, 0.56, 0.58, 0.59, 0.61,
0.63, 0.65, 0.67, 0.69, 0.71, 0.73, 0.75, 0.77, 0.8, 0.82, 0.85, 0.63, 0.65, 0.67, 0.69, 0.71, 0.73, 0.75, 0.77, 0.8, 0.82, 0.85,
0.87, 0.9, 0.93, 0.95, 0.98, 1.01, 1.04, 1.07, 1.1, 1.14, 1.17, 0.87, 0.9, 0.93, 0.95, 0.98, 1.01, 1.04, 1.07, 1.1, 1.14, 1.17,
@@ -73,6 +88,9 @@ public enum BaseStats {
4.56, 4.7, 4.84, 4.99, 5.14, 5.29, 5.45, 5.61, 5.78, 5.96, 6.13, 4.56, 4.7, 4.84, 4.99, 5.14, 5.29, 5.45, 5.61, 5.78, 5.96, 6.13,
6.32, 6.51, 6.7, 6.9, 7.11, 7.33, 7.54, 7.77, 8, 8.24), 6.32, 6.51, 6.7, 6.9, 7.11, 7.33, 7.54, 7.77, 8, 8.24),
/**
* Mentality multipliers
*/
MEN(1, 1.01, 1.02, 1.03, 1.04, 1.05, 1.06, 1.07, 1.08, 1.09, 1.11, 1.12, MEN(1, 1.01, 1.02, 1.03, 1.04, 1.05, 1.06, 1.07, 1.08, 1.09, 1.11, 1.12,
1.13, 1.14, 1.15, 1.16, 1.17, 1.19, 1.2, 1.21, 1.22, 1.23, 1.25, 1.13, 1.14, 1.15, 1.16, 1.17, 1.19, 1.2, 1.21, 1.22, 1.23, 1.25,
1.26, 1.27, 1.28, 1.3, 1.31, 1.32, 1.34, 1.35, 1.36, 1.38, 1.39, 1.26, 1.27, 1.28, 1.3, 1.31, 1.32, 1.34, 1.35, 1.36, 1.38, 1.39,
@@ -89,18 +107,41 @@ public enum BaseStats {
*/ */
public final double[] bonus; public final double[] bonus;
/**
* @param bonus
* the bonus multipliers
*/
BaseStats(double... bonus) { BaseStats(double... bonus) {
this.bonus = bonus; this.bonus = bonus;
} }
/**
* Calculates the bonus
*
* @param n
* the level
* @return the bonus for the given level
*/
public double calculateBonus(int n) { public double calculateBonus(int n) {
return bonus[n]; return bonus[n];
} }
/**
* Calculates the bonus
*
* @param actor
* the actor
* @return the bonus for the given actor
*/
public double calculateBonus(Actor actor) { public double calculateBonus(Actor actor) {
return calculateBonus(actor.getStats()); return calculateBonus(actor.getStats());
} }
/**
* @param stats
* the actor stats
* @return the calculated bonus
*/
public double calculateBonus(ActorStats<?> stats) { public double calculateBonus(ActorStats<?> stats) {
switch (this) { switch (this) {
case CON: case CON:

View File

@@ -65,6 +65,13 @@ public class CharacterInventory implements Iterable<Item> {
return null; return null;
} }
/**
* Checks if the given paperdoll has is occupied
*
* @param paperdoll
* the paperdoll slot
* @return true if has an item
*/
public boolean has(InventoryPaperdoll paperdoll) { public boolean has(InventoryPaperdoll paperdoll) {
return getItem(paperdoll) != null; return getItem(paperdoll) != null;
} }
@@ -131,6 +138,10 @@ public class CharacterInventory implements Iterable<Item> {
*/ */
public final int id; public final int id;
/**
* @param id
* the slot id
*/
InventoryPaperdoll(int id) { InventoryPaperdoll(int id) {
this.id = id; this.id = id;
} }

View File

@@ -137,8 +137,15 @@ public class CharacterShortcutContainer implements Iterable<Shortcut> {
return character; return character;
} }
/**
* Compares two shortcut slots
* @author <a href="http://www.rogiel.com">Rogiel</a>
*/
public static class ShortcutSlotComparator implements Comparator<Shortcut>, public static class ShortcutSlotComparator implements Comparator<Shortcut>,
Serializable { Serializable {
/**
* The Java Serialization API serial
*/
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@Override @Override

View File

@@ -260,6 +260,9 @@ public class CharacterStats extends ActorStats<CharacterCalculatorContext> {
*/ */
private final L2Character character; private final L2Character character;
/**
* The character calculator
*/
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
private static final CharacterCalculator calculator = new CharacterCalculator(); private static final CharacterCalculator calculator = new CharacterCalculator();
@@ -294,6 +297,9 @@ public class CharacterStats extends ActorStats<CharacterCalculatorContext> {
return (int) calc(StatType.MAX_LOAD); return (int) calc(StatType.MAX_LOAD);
} }
/**
* Setups the default formulas
*/
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
private void setup() { private void setup() {
calculator.addNoSort(BASE_HP_FORMULA, BASE_MP_FORMULA, BASE_CP_FORMULA); calculator.addNoSort(BASE_HP_FORMULA, BASE_MP_FORMULA, BASE_CP_FORMULA);
@@ -327,12 +333,21 @@ public class CharacterStats extends ActorStats<CharacterCalculatorContext> {
calculator.sort(); calculator.sort();
} }
/**
* Updates the calculator
*/
public void updateCalculator() { public void updateCalculator() {
calculator.clear(); calculator.clear();
setup(); setup();
addItem(InventoryPaperdoll.RIGHT_HAND); addItem(InventoryPaperdoll.RIGHT_HAND);
} }
/**
* Adds the item formulas to this character calculator
*
* @param paperdoll
* the paperdoll slot
*/
private void addItem(InventoryPaperdoll paperdoll) { private void addItem(InventoryPaperdoll paperdoll) {
if (!character.getInventory().has(paperdoll)) if (!character.getInventory().has(paperdoll))
return; return;

View File

@@ -27,6 +27,9 @@ import com.l2jserver.util.calculator.Calculator;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public class CharacterCalculator extends ActorCalculator { public class CharacterCalculator extends ActorCalculator {
/**
* @param calculators the calculators
*/
public CharacterCalculator( public CharacterCalculator(
Calculator<ActorCalculatorContext, StatType>... calculators) { Calculator<ActorCalculatorContext, StatType>... calculators) {
super(calculators); super(calculators);

View File

@@ -30,6 +30,10 @@ public class CharacterCalculatorContext extends ActorCalculatorContext {
*/ */
public final L2Character character; public final L2Character character;
/**
* Creates a new context
* @param character the character
*/
public CharacterCalculatorContext(L2Character character) { public CharacterCalculatorContext(L2Character character) {
super(character); super(character);
this.character = character; this.character = character;

View File

@@ -30,6 +30,12 @@ import com.l2jserver.model.world.actor.stat.StatType;
*/ */
public abstract class CharacterCalculatorFunction extends public abstract class CharacterCalculatorFunction extends
ActorCalculatorFunction { ActorCalculatorFunction {
/**
* @param order
* the calculation order
* @param type
* the stat type
*/
public CharacterCalculatorFunction(int order, StatType type) { public CharacterCalculatorFunction(int order, StatType type) {
super(order, type); super(order, type);
} }
@@ -41,6 +47,17 @@ public abstract class CharacterCalculatorFunction extends
value); value);
} }
/**
* Computes the calculated value
*
* @param c
* the character
* @param t
* the template
* @param value
* the input value
* @return the computed value
*/
protected abstract double calculate(L2Character c, CharacterTemplate t, protected abstract double calculate(L2Character c, CharacterTemplate t,
double value); double value);
} }

View File

@@ -24,6 +24,10 @@ import com.l2jserver.model.world.actor.stat.StatType;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public abstract class CharacterFormula extends CharacterCalculatorFunction { public abstract class CharacterFormula extends CharacterCalculatorFunction {
/**
* @param order the calculation order
* @param type the stat type
*/
public CharacterFormula(int order, StatType type) { public CharacterFormula(int order, StatType type) {
super(order, type); super(order, type);
} }

View File

@@ -34,6 +34,9 @@ import com.l2jserver.model.world.actor.stat.StatType;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public class MaximumCPAddCalculator extends CharacterFormula { public class MaximumCPAddCalculator extends CharacterFormula {
/**
* Creates a new instance of this formula
*/
public MaximumCPAddCalculator() { public MaximumCPAddCalculator() {
super(0x100, StatType.MAX_CP); super(0x100, StatType.MAX_CP);
} }

View File

@@ -35,6 +35,9 @@ import com.l2jserver.model.world.actor.stat.StatType;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public class MaximumCPBonusCalculator extends CharacterFormula { public class MaximumCPBonusCalculator extends CharacterFormula {
/**
* Creates a new instance of this formula
*/
public MaximumCPBonusCalculator() { public MaximumCPBonusCalculator() {
super(0x100, StatType.MAX_CP); super(0x100, StatType.MAX_CP);
} }

View File

@@ -34,6 +34,9 @@ import com.l2jserver.model.world.actor.stat.StatType;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public class MaximumHPAddCalculator extends CharacterFormula { public class MaximumHPAddCalculator extends CharacterFormula {
/**
* Creates a new instance of this formula
*/
public MaximumHPAddCalculator() { public MaximumHPAddCalculator() {
super(0x100, StatType.MAX_HP); super(0x100, StatType.MAX_HP);
} }

View File

@@ -34,6 +34,9 @@ import com.l2jserver.model.world.actor.stat.StatType;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public class MaximumMPAddCalculator extends CharacterFormula { public class MaximumMPAddCalculator extends CharacterFormula {
/**
* Creates a new instance of this formula
*/
public MaximumMPAddCalculator() { public MaximumMPAddCalculator() {
super(0x100, StatType.MAX_MP); super(0x100, StatType.MAX_MP);
} }

View File

@@ -31,6 +31,9 @@ import com.l2jserver.model.world.character.calculator.CharacterFormula;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public class CharacterBaseAttackAccuracyCalculator extends CharacterFormula { public class CharacterBaseAttackAccuracyCalculator extends CharacterFormula {
/**
* Creates a new instance of this formula
*/
public CharacterBaseAttackAccuracyCalculator() { public CharacterBaseAttackAccuracyCalculator() {
super(0x000, StatType.ACCURACY_COMBAT); super(0x000, StatType.ACCURACY_COMBAT);
} }

View File

@@ -31,6 +31,9 @@ import com.l2jserver.model.world.character.calculator.CharacterFormula;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public class CharacterBaseAttackEvasionCalculator extends CharacterFormula { public class CharacterBaseAttackEvasionCalculator extends CharacterFormula {
/**
* Creates a new instance of this formula
*/
public CharacterBaseAttackEvasionCalculator() { public CharacterBaseAttackEvasionCalculator() {
super(0x000, StatType.EVASION_RATE); super(0x000, StatType.EVASION_RATE);
} }

View File

@@ -31,6 +31,9 @@ import com.l2jserver.model.world.character.calculator.CharacterFormula;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public class CharacterBaseCPCalculator extends CharacterFormula { public class CharacterBaseCPCalculator extends CharacterFormula {
/**
* Creates a new instance of this formula
*/
public CharacterBaseCPCalculator() { public CharacterBaseCPCalculator() {
super(0x000, StatType.MAX_CP); super(0x000, StatType.MAX_CP);
} }

View File

@@ -31,6 +31,9 @@ import com.l2jserver.model.world.character.calculator.CharacterFormula;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public class CharacterBaseConcentrationCalculator extends CharacterFormula { public class CharacterBaseConcentrationCalculator extends CharacterFormula {
/**
* Creates a new instance of this formula
*/
public CharacterBaseConcentrationCalculator() { public CharacterBaseConcentrationCalculator() {
super(0x000, StatType.STAT_CON); super(0x000, StatType.STAT_CON);
} }

View File

@@ -31,6 +31,9 @@ import com.l2jserver.model.world.character.calculator.CharacterFormula;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public class CharacterBaseDexterityCalculator extends CharacterFormula { public class CharacterBaseDexterityCalculator extends CharacterFormula {
/**
* Creates a new instance of this formula
*/
public CharacterBaseDexterityCalculator() { public CharacterBaseDexterityCalculator() {
super(0x000, StatType.STAT_DEX); super(0x000, StatType.STAT_DEX);
} }

View File

@@ -31,6 +31,9 @@ import com.l2jserver.model.world.character.calculator.CharacterFormula;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public class CharacterBaseHPCalculator extends CharacterFormula { public class CharacterBaseHPCalculator extends CharacterFormula {
/**
* Creates a new instance of this formula
*/
public CharacterBaseHPCalculator() { public CharacterBaseHPCalculator() {
super(0x000, StatType.MAX_HP); super(0x000, StatType.MAX_HP);
} }

View File

@@ -31,6 +31,9 @@ import com.l2jserver.model.world.character.calculator.CharacterFormula;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public class CharacterBaseIntelligenceCalculator extends CharacterFormula { public class CharacterBaseIntelligenceCalculator extends CharacterFormula {
/**
* Creates a new instance of this formula
*/
public CharacterBaseIntelligenceCalculator() { public CharacterBaseIntelligenceCalculator() {
super(0x000, StatType.STAT_INT); super(0x000, StatType.STAT_INT);
} }

View File

@@ -31,6 +31,9 @@ import com.l2jserver.model.world.character.calculator.CharacterFormula;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public class CharacterBaseMPCalculator extends CharacterFormula { public class CharacterBaseMPCalculator extends CharacterFormula {
/**
* Creates a new instance of this formula
*/
public CharacterBaseMPCalculator() { public CharacterBaseMPCalculator() {
super(0x000, StatType.MAX_MP); super(0x000, StatType.MAX_MP);
} }

View File

@@ -32,6 +32,9 @@ import com.l2jserver.model.world.character.calculator.CharacterFormula;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public class CharacterBaseMagicalAttackCalculator extends CharacterFormula { public class CharacterBaseMagicalAttackCalculator extends CharacterFormula {
/**
* Creates a new instance of this formula
*/
public CharacterBaseMagicalAttackCalculator() { public CharacterBaseMagicalAttackCalculator() {
super(0x000, StatType.MAGIC_ATTACK); super(0x000, StatType.MAGIC_ATTACK);
} }

View File

@@ -31,6 +31,9 @@ import com.l2jserver.model.world.character.calculator.CharacterFormula;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public class CharacterBaseMagicalAttackSpeedCalculator extends CharacterFormula { public class CharacterBaseMagicalAttackSpeedCalculator extends CharacterFormula {
/**
* Creates a new instance of this formula
*/
public CharacterBaseMagicalAttackSpeedCalculator() { public CharacterBaseMagicalAttackSpeedCalculator() {
super(0x000, StatType.MAGIC_ATTACK_SPEED); super(0x000, StatType.MAGIC_ATTACK_SPEED);
} }

View File

@@ -33,6 +33,9 @@ import com.l2jserver.model.world.character.calculator.CharacterFormula;
*/ */
public class CharacterBaseMagicalCriticalRateCalculator extends public class CharacterBaseMagicalCriticalRateCalculator extends
CharacterFormula { CharacterFormula {
/**
* Creates a new instance of this formula
*/
public CharacterBaseMagicalCriticalRateCalculator() { public CharacterBaseMagicalCriticalRateCalculator() {
super(0x000, StatType.MCRITICAL_RATE); super(0x000, StatType.MCRITICAL_RATE);
} }

View File

@@ -42,6 +42,9 @@ import com.l2jserver.model.world.character.calculator.CharacterFormula;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public class CharacterBaseMagicalDefenseCalculator extends CharacterFormula { public class CharacterBaseMagicalDefenseCalculator extends CharacterFormula {
/**
* Creates a new instance of this formula
*/
public CharacterBaseMagicalDefenseCalculator() { public CharacterBaseMagicalDefenseCalculator() {
super(0x000, StatType.MAGIC_DEFENSE); super(0x000, StatType.MAGIC_DEFENSE);
} }

View File

@@ -31,6 +31,9 @@ import com.l2jserver.model.world.character.calculator.CharacterFormula;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public class CharacterBaseMentalityCalculator extends CharacterFormula { public class CharacterBaseMentalityCalculator extends CharacterFormula {
/**
* Creates a new instance of this formula
*/
public CharacterBaseMentalityCalculator() { public CharacterBaseMentalityCalculator() {
super(0x000, StatType.STAT_MEN); super(0x000, StatType.STAT_MEN);
} }

View File

@@ -33,6 +33,9 @@ import com.l2jserver.model.world.character.calculator.CharacterFormula;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public class CharacterBasePhysicalAttackCalculator extends CharacterFormula { public class CharacterBasePhysicalAttackCalculator extends CharacterFormula {
/**
* Creates a new instance of this formula
*/
public CharacterBasePhysicalAttackCalculator() { public CharacterBasePhysicalAttackCalculator() {
super(0x000, StatType.POWER_ATTACK); super(0x000, StatType.POWER_ATTACK);
} }

View File

@@ -33,6 +33,9 @@ import com.l2jserver.model.world.character.calculator.CharacterFormula;
*/ */
public class CharacterBasePhysicalAttackSpeedCalculator extends public class CharacterBasePhysicalAttackSpeedCalculator extends
CharacterFormula { CharacterFormula {
/**
* Creates a new instance of this formula
*/
public CharacterBasePhysicalAttackSpeedCalculator() { public CharacterBasePhysicalAttackSpeedCalculator() {
super(0x000, StatType.POWER_ATTACK_SPEED); super(0x000, StatType.POWER_ATTACK_SPEED);
} }

View File

@@ -34,6 +34,9 @@ import com.l2jserver.model.world.character.calculator.CharacterFormula;
*/ */
public class CharacterBasePhysicalCriticalRateCalculator extends public class CharacterBasePhysicalCriticalRateCalculator extends
CharacterFormula { CharacterFormula {
/**
* Creates a new instance of this formula
*/
public CharacterBasePhysicalCriticalRateCalculator() { public CharacterBasePhysicalCriticalRateCalculator() {
super(0x000, StatType.CRITICAL_RATE); super(0x000, StatType.CRITICAL_RATE);
} }

View File

@@ -44,6 +44,9 @@ import com.l2jserver.model.world.character.calculator.CharacterFormula;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public class CharacterBasePhysicalDefenseCalculator extends CharacterFormula { public class CharacterBasePhysicalDefenseCalculator extends CharacterFormula {
/**
* Creates a new instance of this formula
*/
public CharacterBasePhysicalDefenseCalculator() { public CharacterBasePhysicalDefenseCalculator() {
super(0x000, StatType.POWER_DEFENSE); super(0x000, StatType.POWER_DEFENSE);
} }

View File

@@ -32,6 +32,9 @@ import com.l2jserver.model.world.character.calculator.CharacterFormula;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public class CharacterBaseRunSpeedCalculator extends CharacterFormula { public class CharacterBaseRunSpeedCalculator extends CharacterFormula {
/**
* Creates a new instance of this formula
*/
public CharacterBaseRunSpeedCalculator() { public CharacterBaseRunSpeedCalculator() {
super(0x000, StatType.RUN_SPEED); super(0x000, StatType.RUN_SPEED);
} }

View File

@@ -31,6 +31,9 @@ import com.l2jserver.model.world.character.calculator.CharacterFormula;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public class CharacterBaseStrengthCalculator extends CharacterFormula { public class CharacterBaseStrengthCalculator extends CharacterFormula {
/**
* Creates a new instance of this formula
*/
public CharacterBaseStrengthCalculator() { public CharacterBaseStrengthCalculator() {
super(0x000, StatType.STAT_STR); super(0x000, StatType.STAT_STR);
} }

View File

@@ -32,6 +32,9 @@ import com.l2jserver.model.world.character.calculator.CharacterFormula;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public class CharacterBaseWalkSpeedCalculator extends CharacterFormula { public class CharacterBaseWalkSpeedCalculator extends CharacterFormula {
/**
* Creates a new instance of this formula
*/
public CharacterBaseWalkSpeedCalculator() { public CharacterBaseWalkSpeedCalculator() {
super(0x000, StatType.WALK_SPEED); super(0x000, StatType.WALK_SPEED);
} }

View File

@@ -31,6 +31,9 @@ import com.l2jserver.model.world.character.calculator.CharacterFormula;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public class CharacterBaseWitnessCalculator extends CharacterFormula { public class CharacterBaseWitnessCalculator extends CharacterFormula {
/**
* Creates a new instance of this formula
*/
public CharacterBaseWitnessCalculator() { public CharacterBaseWitnessCalculator() {
super(0x000, StatType.STAT_WIT); super(0x000, StatType.STAT_WIT);
} }

View File

@@ -25,6 +25,9 @@ import com.l2jserver.service.game.world.event.TypedWorldListener;
*/ */
public abstract class CharacterListener extends public abstract class CharacterListener extends
TypedWorldListener<CharacterEvent> { TypedWorldListener<CharacterEvent> {
/**
* Creates a new instance
*/
public CharacterListener() { public CharacterListener() {
super(CharacterEvent.class); super(CharacterEvent.class);
} }

View File

@@ -24,6 +24,9 @@ import com.l2jserver.service.game.world.event.TypedWorldListener;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public abstract class ClanListener extends TypedWorldListener<ClanEvent> { public abstract class ClanListener extends TypedWorldListener<ClanEvent> {
/**
* Creates a new instance
*/
public ClanListener() { public ClanListener() {
super(ClanEvent.class); super(ClanEvent.class);
} }

View File

@@ -24,6 +24,9 @@ import com.l2jserver.service.game.world.event.TypedWorldListener;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public abstract class ItemListener extends TypedWorldListener<ItemEvent> { public abstract class ItemListener extends TypedWorldListener<ItemEvent> {
/**
* Creates a new instance
*/
public ItemListener() { public ItemListener() {
super(ItemEvent.class); super(ItemEvent.class);
} }

View File

@@ -204,6 +204,9 @@ public class NPCStats extends ActorStats<NPCCalculatorContext> {
*/ */
private final NPC npc; private final NPC npc;
/**
* The NPC calculator
*/
private static final NPCCalculator calculator = new NPCCalculator(); private static final NPCCalculator calculator = new NPCCalculator();
/** /**

View File

@@ -23,6 +23,10 @@ import com.l2jserver.model.world.actor.calculator.ActorCalculator;
* *
*/ */
public class NPCCalculator extends ActorCalculator { public class NPCCalculator extends ActorCalculator {
/**
* @param calculators
* the calculators
*/
public NPCCalculator(NPCCalculator... calculators) { public NPCCalculator(NPCCalculator... calculators) {
super(calculators); super(calculators);
} }

View File

@@ -30,6 +30,10 @@ public class NPCCalculatorContext extends ActorCalculatorContext {
*/ */
public final NPC npc; public final NPC npc;
/**
* Creates a new calculator context
* @param npc the {@link NPC}
*/
public NPCCalculatorContext(NPC npc) { public NPCCalculatorContext(NPC npc) {
super(npc); super(npc);
this.npc = npc; this.npc = npc;

View File

@@ -18,6 +18,7 @@ package com.l2jserver.model.world.npc.calculator;
import com.l2jserver.model.template.ActorTemplate; import com.l2jserver.model.template.ActorTemplate;
import com.l2jserver.model.template.NPCTemplate; import com.l2jserver.model.template.NPCTemplate;
import com.l2jserver.model.template.Template;
import com.l2jserver.model.world.Actor; import com.l2jserver.model.world.Actor;
import com.l2jserver.model.world.NPC; import com.l2jserver.model.world.NPC;
import com.l2jserver.model.world.actor.calculator.ActorCalculatorFunction; import com.l2jserver.model.world.actor.calculator.ActorCalculatorFunction;
@@ -29,6 +30,14 @@ import com.l2jserver.model.world.actor.stat.StatType;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public abstract class NPCCalculatorFunction extends ActorCalculatorFunction { public abstract class NPCCalculatorFunction extends ActorCalculatorFunction {
/**
* Creates a new function
*
* @param order
* the calculation order
* @param type
* the stat type
*/
public NPCCalculatorFunction(int order, StatType type) { public NPCCalculatorFunction(int order, StatType type) {
super(order, type); super(order, type);
} }
@@ -39,5 +48,16 @@ public abstract class NPCCalculatorFunction extends ActorCalculatorFunction {
return calculate((NPC) a, (NPCTemplate) actorTemplate, value); return calculate((NPC) a, (NPCTemplate) actorTemplate, value);
} }
protected abstract double calculate(NPC c, NPCTemplate t, double value); /**
* Calculates the value
*
* @param n
* the {@link NPC}
* @param t
* the {@link Template}
* @param value
* the original value
* @return the output value (calculated)
*/
protected abstract double calculate(NPC n, NPCTemplate t, double value);
} }

View File

@@ -23,6 +23,14 @@ import com.l2jserver.model.world.actor.stat.StatType;
* *
*/ */
public abstract class NPCFormula extends NPCCalculatorFunction { public abstract class NPCFormula extends NPCCalculatorFunction {
/**
* Creates a new formula
*
* @param order
* the calculation order
* @param type
* the stat type
*/
public NPCFormula(int order, StatType type) { public NPCFormula(int order, StatType type) {
super(order, type); super(order, type);
} }

View File

@@ -31,6 +31,9 @@ import com.l2jserver.model.world.npc.calculator.NPCFormula;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public class NPCBaseAttackEvasionCalculator extends NPCFormula { public class NPCBaseAttackEvasionCalculator extends NPCFormula {
/**
* Creates a new instance of this formula
*/
public NPCBaseAttackEvasionCalculator() { public NPCBaseAttackEvasionCalculator() {
super(0x000, StatType.EVASION_RATE); super(0x000, StatType.EVASION_RATE);
} }

View File

@@ -31,6 +31,9 @@ import com.l2jserver.model.world.npc.calculator.NPCFormula;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public class NPCBaseConcentrationCalculator extends NPCFormula { public class NPCBaseConcentrationCalculator extends NPCFormula {
/**
* Creates a new instance of this formula
*/
public NPCBaseConcentrationCalculator() { public NPCBaseConcentrationCalculator() {
super(0x000, StatType.STAT_CON); super(0x000, StatType.STAT_CON);
} }

View File

@@ -31,6 +31,9 @@ import com.l2jserver.model.world.npc.calculator.NPCFormula;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public class NPCBaseDexterityCalculator extends NPCFormula { public class NPCBaseDexterityCalculator extends NPCFormula {
/**
* Creates a new instance of this formula
*/
public NPCBaseDexterityCalculator() { public NPCBaseDexterityCalculator() {
super(0x000, StatType.STAT_DEX); super(0x000, StatType.STAT_DEX);
} }

View File

@@ -31,6 +31,9 @@ import com.l2jserver.model.world.npc.calculator.NPCFormula;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public class NPCBaseHPCalculator extends NPCFormula { public class NPCBaseHPCalculator extends NPCFormula {
/**
* Creates a new instance of this formula
*/
public NPCBaseHPCalculator() { public NPCBaseHPCalculator() {
super(0x000, StatType.MAX_HP); super(0x000, StatType.MAX_HP);
} }

View File

@@ -31,6 +31,9 @@ import com.l2jserver.model.world.npc.calculator.NPCFormula;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public class NPCBaseIntelligenceCalculator extends NPCFormula { public class NPCBaseIntelligenceCalculator extends NPCFormula {
/**
* Creates a new instance of this formula
*/
public NPCBaseIntelligenceCalculator() { public NPCBaseIntelligenceCalculator() {
super(0x000, StatType.STAT_INT); super(0x000, StatType.STAT_INT);
} }

View File

@@ -31,6 +31,9 @@ import com.l2jserver.model.world.npc.calculator.NPCFormula;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public class NPCBaseMPCalculator extends NPCFormula { public class NPCBaseMPCalculator extends NPCFormula {
/**
* Creates a new instance of this formula
*/
public NPCBaseMPCalculator() { public NPCBaseMPCalculator() {
super(0x000, StatType.MAX_MP); super(0x000, StatType.MAX_MP);
} }

View File

@@ -32,6 +32,9 @@ import com.l2jserver.model.world.npc.calculator.NPCFormula;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public class NPCBaseMagicalAttackCalculator extends NPCFormula { public class NPCBaseMagicalAttackCalculator extends NPCFormula {
/**
* Creates a new instance of this formula
*/
public NPCBaseMagicalAttackCalculator() { public NPCBaseMagicalAttackCalculator() {
super(0x000, StatType.MAGIC_ATTACK); super(0x000, StatType.MAGIC_ATTACK);
} }

View File

@@ -31,6 +31,9 @@ import com.l2jserver.model.world.npc.calculator.NPCFormula;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public class NPCBaseMagicalAttackSpeedCalculator extends NPCFormula { public class NPCBaseMagicalAttackSpeedCalculator extends NPCFormula {
/**
* Creates a new instance of this formula
*/
public NPCBaseMagicalAttackSpeedCalculator() { public NPCBaseMagicalAttackSpeedCalculator() {
super(0x000, StatType.MAGIC_ATTACK_SPEED); super(0x000, StatType.MAGIC_ATTACK_SPEED);
} }

View File

@@ -32,6 +32,9 @@ import com.l2jserver.model.world.npc.calculator.NPCFormula;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public class NPCBaseMagicalCriticalRateCalculator extends NPCFormula { public class NPCBaseMagicalCriticalRateCalculator extends NPCFormula {
/**
* Creates a new instance of this formula
*/
public NPCBaseMagicalCriticalRateCalculator() { public NPCBaseMagicalCriticalRateCalculator() {
super(0x000, StatType.MCRITICAL_RATE); super(0x000, StatType.MCRITICAL_RATE);
} }

View File

@@ -42,6 +42,9 @@ import com.l2jserver.model.world.npc.calculator.NPCFormula;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public class NPCBaseMagicalDefenseCalculator extends NPCFormula { public class NPCBaseMagicalDefenseCalculator extends NPCFormula {
/**
* Creates a new instance of this formula
*/
public NPCBaseMagicalDefenseCalculator() { public NPCBaseMagicalDefenseCalculator() {
super(0x000, StatType.MAGIC_DEFENSE); super(0x000, StatType.MAGIC_DEFENSE);
} }

View File

@@ -31,6 +31,9 @@ import com.l2jserver.model.world.npc.calculator.NPCFormula;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public class NPCBaseMentalityCalculator extends NPCFormula { public class NPCBaseMentalityCalculator extends NPCFormula {
/**
* Creates a new instance of this formula
*/
public NPCBaseMentalityCalculator() { public NPCBaseMentalityCalculator() {
super(0x000, StatType.STAT_MEN); super(0x000, StatType.STAT_MEN);
} }

View File

@@ -33,6 +33,9 @@ import com.l2jserver.model.world.npc.calculator.NPCFormula;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public class NPCBasePhysicalAttackCalculator extends NPCFormula { public class NPCBasePhysicalAttackCalculator extends NPCFormula {
/**
* Creates a new instance of this formula
*/
public NPCBasePhysicalAttackCalculator() { public NPCBasePhysicalAttackCalculator() {
super(0x000, StatType.POWER_ATTACK); super(0x000, StatType.POWER_ATTACK);
} }

View File

@@ -32,6 +32,9 @@ import com.l2jserver.model.world.npc.calculator.NPCFormula;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public class NPCBasePhysicalAttackSpeedCalculator extends NPCFormula { public class NPCBasePhysicalAttackSpeedCalculator extends NPCFormula {
/**
* Creates a new instance of this formula
*/
public NPCBasePhysicalAttackSpeedCalculator() { public NPCBasePhysicalAttackSpeedCalculator() {
super(0x000, StatType.POWER_ATTACK_SPEED); super(0x000, StatType.POWER_ATTACK_SPEED);
} }

View File

@@ -33,6 +33,9 @@ import com.l2jserver.model.world.npc.calculator.NPCFormula;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public class NPCBasePhysicalCriticalRateCalculator extends NPCFormula { public class NPCBasePhysicalCriticalRateCalculator extends NPCFormula {
/**
* Creates a new instance of this formula
*/
public NPCBasePhysicalCriticalRateCalculator() { public NPCBasePhysicalCriticalRateCalculator() {
super(0x000, StatType.CRITICAL_RATE); super(0x000, StatType.CRITICAL_RATE);
} }

View File

@@ -44,6 +44,9 @@ import com.l2jserver.model.world.npc.calculator.NPCFormula;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public class NPCBasePhysicalDefenseCalculator extends NPCFormula { public class NPCBasePhysicalDefenseCalculator extends NPCFormula {
/**
* Creates a new instance of this formula
*/
public NPCBasePhysicalDefenseCalculator() { public NPCBasePhysicalDefenseCalculator() {
super(0x000, StatType.POWER_DEFENSE); super(0x000, StatType.POWER_DEFENSE);
} }

View File

@@ -32,6 +32,9 @@ import com.l2jserver.model.world.npc.calculator.NPCFormula;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public class NPCBaseRunSpeedCalculator extends NPCFormula { public class NPCBaseRunSpeedCalculator extends NPCFormula {
/**
* Creates a new instance of this formula
*/
public NPCBaseRunSpeedCalculator() { public NPCBaseRunSpeedCalculator() {
super(0x000, StatType.RUN_SPEED); super(0x000, StatType.RUN_SPEED);
} }

View File

@@ -31,6 +31,9 @@ import com.l2jserver.model.world.npc.calculator.NPCFormula;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public class NPCBaseStrengthCalculator extends NPCFormula { public class NPCBaseStrengthCalculator extends NPCFormula {
/**
* Creates a new instance of this formula
*/
public NPCBaseStrengthCalculator() { public NPCBaseStrengthCalculator() {
super(0x000, StatType.STAT_STR); super(0x000, StatType.STAT_STR);
} }

View File

@@ -32,6 +32,9 @@ import com.l2jserver.model.world.npc.calculator.NPCFormula;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public class NPCBaseWalkSpeedCalculator extends NPCFormula { public class NPCBaseWalkSpeedCalculator extends NPCFormula {
/**
* Creates a new instance of this formula
*/
public NPCBaseWalkSpeedCalculator() { public NPCBaseWalkSpeedCalculator() {
super(0x000, StatType.WALK_SPEED); super(0x000, StatType.WALK_SPEED);
} }

View File

@@ -31,6 +31,9 @@ import com.l2jserver.model.world.npc.calculator.NPCFormula;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public class NPCBaseWitnessCalculator extends NPCFormula { public class NPCBaseWitnessCalculator extends NPCFormula {
/**
* Creates a new instance of this formula
*/
public NPCBaseWitnessCalculator() { public NPCBaseWitnessCalculator() {
super(0x000, StatType.STAT_WIT); super(0x000, StatType.STAT_WIT);
} }

View File

@@ -36,6 +36,9 @@ public class TeleporterController extends BaseNPCController {
*/ */
@Inject @Inject
protected SpawnService spawnService; protected SpawnService spawnService;
/**
* The teleportation template id provider
*/
@Inject @Inject
protected TeleportationTemplateIDProvider teleportationIdProvider; protected TeleportationTemplateIDProvider teleportationIdProvider;

View File

@@ -25,5 +25,8 @@ import com.l2jserver.service.game.world.event.WorldEvent;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public interface NPCEvent extends WorldEvent { public interface NPCEvent extends WorldEvent {
/**
* @return the NPC
*/
NPC getNPC(); NPC getNPC();
} }

View File

@@ -24,6 +24,9 @@ import com.l2jserver.service.game.world.event.TypedWorldListener;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public abstract class NPCListener extends TypedWorldListener<NPCEvent> { public abstract class NPCListener extends TypedWorldListener<NPCEvent> {
/**
* Creates a new instance
*/
public NPCListener() { public NPCListener() {
super(NPCEvent.class); super(NPCEvent.class);
} }

View File

@@ -24,6 +24,9 @@ import com.l2jserver.service.game.world.event.TypedWorldListener;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public abstract class PlayerListener extends TypedWorldListener<PlayerEvent> { public abstract class PlayerListener extends TypedWorldListener<PlayerEvent> {
/**
* Creates a new instance
*/
public PlayerListener() { public PlayerListener() {
super(PlayerEvent.class); super(PlayerEvent.class);
} }

View File

@@ -29,7 +29,13 @@ import com.l2jserver.util.geometry.Point3D;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public class PlayerTeleportingEvent implements PlayerEvent { public class PlayerTeleportingEvent implements PlayerEvent {
/**
* The player object
*/
private final Player player; private final Player player;
/**
* The teleportation point
*/
private final Point3D point; private final Point3D point;
/** /**

View File

@@ -45,6 +45,12 @@ public abstract class AbstractService implements Service {
} }
} }
/**
* Starts the service. This method is invoked internally by {@link #start()}
*
* @throws ServiceStartException
* if any error occur while starting the service
*/
protected void doStart() throws ServiceStartException { protected void doStart() throws ServiceStartException {
} }
@@ -59,6 +65,12 @@ public abstract class AbstractService implements Service {
} }
} }
/**
* Stops the service. This method is invoked internally by {@link #stop()}
*
* @throws ServiceStopException
* if any error occur while stopping the service
*/
protected void doStop() throws ServiceStopException { protected void doStop() throws ServiceStopException {
} }
@@ -86,9 +98,17 @@ public abstract class AbstractService implements Service {
return deps.value(); return deps.value();
} }
/**
* Service dependency metadata
*
* @author <a href="http://www.rogiel.com">Rogiel</a>
*/
@Retention(RetentionPolicy.RUNTIME) @Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE) @Target(ElementType.TYPE)
public @interface Depends { public @interface Depends {
/**
* @return the service's dependency
*/
Class<? extends Service>[] value(); Class<? extends Service>[] value();
} }
} }

View File

@@ -24,20 +24,46 @@ import com.l2jserver.util.exception.L2Exception;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public abstract class ServiceException extends L2Exception { public abstract class ServiceException extends L2Exception {
/**
* The Java Serialization API serial
*/
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/**
* Creates a new instance of this exception
*/
public ServiceException() { public ServiceException() {
super(); super();
} }
/**
* Creates a new instance of this exception
*
* @param message
* the message
* @param cause
* the root cause
*/
public ServiceException(String message, Throwable cause) { public ServiceException(String message, Throwable cause) {
super(message, cause); super(message, cause);
} }
/**
* Creates a new instance of this exception
*
* @param message
* the message
*/
public ServiceException(String message) { public ServiceException(String message) {
super(message); super(message);
} }
/**
* Creates a new instance of this exception
*
* @param cause
* the root cause
*/
public ServiceException(Throwable cause) { public ServiceException(Throwable cause) {
super(cause); super(cause);
} }

View File

@@ -21,6 +21,7 @@ import java.util.Set;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import com.google.inject.Guice;
import com.google.inject.Inject; import com.google.inject.Inject;
import com.google.inject.Injector; import com.google.inject.Injector;
import com.l2jserver.service.core.LoggingService; import com.l2jserver.service.core.LoggingService;
@@ -46,6 +47,10 @@ public class ServiceManager {
*/ */
private final Set<Service> knownServices = CollectionFactory.newSet(); private final Set<Service> knownServices = CollectionFactory.newSet();
/**
* @param injector
* the {@link Guice} {@link Injector}
*/
@Inject @Inject
public ServiceManager(Injector injector) { public ServiceManager(Injector injector) {
this.injector = injector; this.injector = injector;
@@ -60,10 +65,28 @@ public class ServiceManager {
logger = LoggerFactory.getLogger(ServiceManager.class); logger = LoggerFactory.getLogger(ServiceManager.class);
} }
/**
* @param <T>
* the service type
* @param serviceClass
* the service interface <tt>Class&lt;T&gt;</tt>
* @return the service implementation
*/
public <T extends Service> T get(Class<T> serviceClass) { public <T extends Service> T get(Class<T> serviceClass) {
return injector.getInstance(serviceClass); return injector.getInstance(serviceClass);
} }
/**
* Starts the given service implementation
*
* @param <T>
* the service interface type
* @param serviceClass
* the service interface
* @return the service implementation
* @throws ServiceStartException
* if any error occur while starting service
*/
public <T extends Service> T start(Class<T> serviceClass) public <T extends Service> T start(Class<T> serviceClass)
throws ServiceStartException { throws ServiceStartException {
final T service = injector.getInstance(serviceClass); final T service = injector.getInstance(serviceClass);
@@ -90,6 +113,14 @@ public class ServiceManager {
} }
} }
/**
* Starts the dependencies
*
* @param dependencies
* the dependencies
* @throws ServiceStartException
* if any error occur while starting dependencies
*/
private void startDependencies(Class<? extends Service>[] dependencies) private void startDependencies(Class<? extends Service>[] dependencies)
throws ServiceStartException { throws ServiceStartException {
if (dependencies == null) if (dependencies == null)
@@ -101,6 +132,14 @@ public class ServiceManager {
} }
} }
/**
* Stops the given service implementation
*
* @param serviceClass
* the service interface
* @throws ServiceStopException
* if any error occur while stopping service
*/
public void stop(Class<? extends Service> serviceClass) public void stop(Class<? extends Service> serviceClass)
throws ServiceStopException { throws ServiceStopException {
final Service service = injector.getInstance(serviceClass); final Service service = injector.getInstance(serviceClass);
@@ -122,6 +161,14 @@ public class ServiceManager {
} }
} }
/**
* Stops the dependencies
*
* @param service
* the service
* @throws ServiceStopException
* if any error occur while stopping dependencies
*/
private void stopDependencies(Service service) throws ServiceStopException { private void stopDependencies(Service service) throws ServiceStopException {
final Set<Class<? extends Service>> dependencies = createStopDependencies( final Set<Class<? extends Service>> dependencies = createStopDependencies(
null, service); null, service);
@@ -130,6 +177,15 @@ public class ServiceManager {
} }
} }
/**
* Creates a {@link Set} of all dependecies to be stopped
*
* @param depends
* the service
* @param serviceClass
* the service class
* @return the {@link Set} of all depedendecies to be stopped
*/
private Set<Class<? extends Service>> createStopDependencies( private Set<Class<? extends Service>> createStopDependencies(
Set<Class<? extends Service>> depends, Service serviceClass) { Set<Class<? extends Service>> depends, Service serviceClass) {
if (depends == null) if (depends == null)
@@ -150,6 +206,17 @@ public class ServiceManager {
return depends; return depends;
} }
/**
* Restarts the given service
*
* @param <T>
* the service type
* @param serviceClass
* the service interface
* @return the service implementation
* @throws ServiceException
* if any error occur while starting or stopping the service
*/
public <T extends Service> T restart(Class<T> serviceClass) public <T extends Service> T restart(Class<T> serviceClass)
throws ServiceException { throws ServiceException {
final T service = injector.getInstance(serviceClass); final T service = injector.getInstance(serviceClass);

View File

@@ -23,20 +23,46 @@ package com.l2jserver.service;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public class ServiceRestartException extends ServiceException { public class ServiceRestartException extends ServiceException {
/**
* The Java Serialization API serial
*/
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/**
* Creates a new instance of this exception
*/
public ServiceRestartException() { public ServiceRestartException() {
super(); super();
} }
/**
* Creates a new instance of this exception
*
* @param message
* the message
* @param cause
* the root cause
*/
public ServiceRestartException(String message, Throwable cause) { public ServiceRestartException(String message, Throwable cause) {
super(message, cause); super(message, cause);
} }
/**
* Creates a new instance of this exception
*
* @param message
* the message
*/
public ServiceRestartException(String message) { public ServiceRestartException(String message) {
super(message); super(message);
} }
/**
* Creates a new instance of this exception
*
* @param cause
* the root cause
*/
public ServiceRestartException(Throwable cause) { public ServiceRestartException(Throwable cause) {
super(cause); super(cause);
} }

View File

@@ -22,20 +22,46 @@ package com.l2jserver.service;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public class ServiceStartException extends ServiceException { public class ServiceStartException extends ServiceException {
/**
* The Java Serialization API serial
*/
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/**
* Creates a new instance of this exception
*/
public ServiceStartException() { public ServiceStartException() {
super(); super();
} }
/**
* Creates a new instance of this exception
*
* @param message
* the message
* @param cause
* the root cause
*/
public ServiceStartException(String message, Throwable cause) { public ServiceStartException(String message, Throwable cause) {
super(message, cause); super(message, cause);
} }
/**
* Creates a new instance of this exception
*
* @param message
* the message
*/
public ServiceStartException(String message) { public ServiceStartException(String message) {
super(message); super(message);
} }
/**
* Creates a new instance of this exception
*
* @param cause
* the root cause
*/
public ServiceStartException(Throwable cause) { public ServiceStartException(Throwable cause) {
super(cause); super(cause);
} }

View File

@@ -22,20 +22,46 @@ package com.l2jserver.service;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public class ServiceStopException extends ServiceException { public class ServiceStopException extends ServiceException {
/**
* The Java Serialization API serial
*/
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/**
* Creates a new instance of this exception
*/
public ServiceStopException() { public ServiceStopException() {
super(); super();
} }
/**
* Creates a new instance of this exception
*
* @param message
* the message
* @param cause
* the root cause
*/
public ServiceStopException(String message, Throwable cause) { public ServiceStopException(String message, Throwable cause) {
super(message, cause); super(message, cause);
} }
/**
* Creates a new instance of this exception
*
* @param message
* the message
*/
public ServiceStopException(String message) { public ServiceStopException(String message) {
super(message); super(message);
} }
/**
* Creates a new instance of this exception
*
* @param cause
* the root cause
*/
public ServiceStopException(Throwable cause) { public ServiceStopException(Throwable cause) {
super(cause); super(cause);
} }

View File

@@ -37,6 +37,9 @@ import com.l2jserver.util.factory.CollectionFactory;
* the value type * the value type
*/ */
abstract class AbstractReferenceCache<K, V> implements Cache<K, V> { abstract class AbstractReferenceCache<K, V> implements Cache<K, V> {
/**
* The logger
*/
protected final Logger log = LoggerFactory.getLogger(this.getClass()); protected final Logger log = LoggerFactory.getLogger(this.getClass());
/** /**
@@ -93,6 +96,9 @@ abstract class AbstractReferenceCache<K, V> implements Cache<K, V> {
return cacheMap.containsKey(key); return cacheMap.containsKey(key);
} }
/**
* Cleans the queue
*/
protected abstract void cleanQueue(); protected abstract void cleanQueue();
@Override @Override
@@ -131,6 +137,17 @@ abstract class AbstractReferenceCache<K, V> implements Cache<K, V> {
}; };
} }
/**
* Creates a new reference
*
* @param key
* the reference key
* @param value
* the reference value
* @param queue
* the queue
* @return the new reference
*/
protected abstract Reference<V> newReference(K key, V value, protected abstract Reference<V> newReference(K key, V value,
ReferenceQueue<V> queue); ReferenceQueue<V> queue);
} }

View File

@@ -163,9 +163,25 @@ public class EhCacheService extends AbstractService implements CacheService {
interfaceCache = null; interfaceCache = null;
} }
/**
* {@link net.sf.ehcache.Cache EhCache} facade
*
* @author <a href="http://www.rogiel.com">Rogiel</a>
*
* @param <K>
* the key type
* @param <V>
* the value type
*/
private class EhCacheFacade<K, V> implements Cache<K, V> { private class EhCacheFacade<K, V> implements Cache<K, V> {
/**
* The backing cache
*/
private final net.sf.ehcache.Cache cache; private final net.sf.ehcache.Cache cache;
/**
* @param cache the backing cache
*/
public EhCacheFacade(net.sf.ehcache.Cache cache) { public EhCacheFacade(net.sf.ehcache.Cache cache) {
this.cache = cache; this.cache = cache;
} }

View File

@@ -36,6 +36,9 @@ import com.l2jserver.util.factory.CollectionFactory;
* the value type * the value type
*/ */
public class EternalCache<K, V> implements Cache<K, V> { public class EternalCache<K, V> implements Cache<K, V> {
/**
* The logger
*/
protected final Logger log = LoggerFactory.getLogger(this.getClass()); protected final Logger log = LoggerFactory.getLogger(this.getClass());
/** /**

View File

@@ -22,11 +22,12 @@ import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target; import java.lang.annotation.Target;
/**
* Indicate to the proxy that this method should not be cached.
* @author <a href="http://www.rogiel.com">Rogiel</a>
*/
@Retention(RetentionPolicy.RUNTIME) @Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD) @Target(ElementType.METHOD)
@Documented @Documented
/**
* Indicate to the proxy that this method should not be cached.
*/
public @interface IgnoreCaching { public @interface IgnoreCaching {
} }

View File

@@ -34,6 +34,10 @@ class MethodInvocation {
*/ */
private final Object[] args; private final Object[] args;
/**
* @param method the method invoked
* @param args the invocation arguments
*/
public MethodInvocation(Method method, Object[] args) { public MethodInvocation(Method method, Object[] args) {
this.method = method; this.method = method;
this.args = args; this.args = args;

View File

@@ -142,18 +142,36 @@ public class SoftCacheService extends AbstractService implements CacheService {
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
private class SoftEntry extends SoftReference<V> { private class SoftEntry extends SoftReference<V> {
/**
* The key
*/
private K key; private K key;
/**
* @param key
* the key
* @param referent
* the value
* @param q
* the queue
*/
SoftEntry(K key, V referent, ReferenceQueue<? super V> q) { SoftEntry(K key, V referent, ReferenceQueue<? super V> q) {
super(referent, q); super(referent, q);
this.key = key; this.key = key;
} }
/**
* @return the key
*/
K getKey() { K getKey() {
return key; return key;
} }
} }
/**
* @param cacheName
* the cache name
*/
public SoftCache(String cacheName) { public SoftCache(String cacheName) {
super(cacheName); super(cacheName);
} }

View File

@@ -130,8 +130,10 @@ public class WeakCacheService extends AbstractService implements CacheService {
* if there isn't any strong reference to the value object. * if there isn't any strong reference to the value object.
* *
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
* @param <K> the key type * @param <K>
* @param <V> the value type * the key type
* @param <V>
* the value type
*/ */
private class WeakCache<K, V> extends AbstractReferenceCache<K, V> private class WeakCache<K, V> extends AbstractReferenceCache<K, V>
implements Cache<K, V> { implements Cache<K, V> {
@@ -142,18 +144,36 @@ public class WeakCacheService extends AbstractService implements CacheService {
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
private class Entry extends WeakReference<V> { private class Entry extends WeakReference<V> {
/**
* The key
*/
private K key; private K key;
/**
* @param key
* the key
* @param referent
* the value
* @param q
* the queue
*/
Entry(K key, V referent, ReferenceQueue<? super V> q) { Entry(K key, V referent, ReferenceQueue<? super V> q) {
super(referent, q); super(referent, q);
this.key = key; this.key = key;
} }
/**
* @return the key
*/
K getKey() { K getKey() {
return key; return key;
} }
} }
/**
* @param cacheName
* the cache name
*/
WeakCache(String cacheName) { WeakCache(String cacheName) {
super(cacheName); super(cacheName);
} }

View File

@@ -103,9 +103,19 @@ public class ProxyConfigurationService extends AbstractService implements
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
private class ConfigInvocationHandler implements InvocationHandler { private class ConfigInvocationHandler implements InvocationHandler {
/**
* The invocation handler properties
*/
private final Properties properties; private final Properties properties;
/**
* The invocation cache
*/
private Map<String, Object> cache = CollectionFactory.newWeakMap(); private Map<String, Object> cache = CollectionFactory.newWeakMap();
/**
* @param properties
* the properties
*/
public ConfigInvocationHandler(Properties properties) { public ConfigInvocationHandler(Properties properties) {
this.properties = properties; this.properties = properties;
} }

View File

@@ -34,8 +34,17 @@ import com.l2jserver.service.ServiceStopException;
*/ */
public class Log4JLoggingService extends AbstractService implements public class Log4JLoggingService extends AbstractService implements
LoggingService { LoggingService {
/**
* The root logger
*/
private Logger rootLogger; private Logger rootLogger;
/**
* The l2j logger
*/
private Logger l2jLogger; private Logger l2jLogger;
/**
* The netty logger
*/
private Logger nettyLogger; private Logger nettyLogger;
@Override @Override

View File

@@ -19,6 +19,7 @@ package com.l2jserver.service.core.threading;
import java.util.concurrent.Callable; import java.util.concurrent.Callable;
import java.util.concurrent.Delayed; import java.util.concurrent.Delayed;
import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors; import java.util.concurrent.Executors;
import java.util.concurrent.Future; import java.util.concurrent.Future;
import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ScheduledExecutorService;
@@ -85,14 +86,16 @@ public class ThreadServiceImpl extends AbstractService implements ThreadService
Preconditions.checkNotNull(unit, "unit"); Preconditions.checkNotNull(unit, "unit");
Preconditions.checkNotNull(task, "task"); Preconditions.checkNotNull(task, "task");
log.debug("Scheduling repeating async task in {}ms each {}ms: {}", new Object[] { log.debug("Scheduling repeating async task in {}ms each {}ms: {}",
unit.toMillis(delay), unit.toMillis(repeat), task }); new Object[] { unit.toMillis(delay), unit.toMillis(repeat),
task });
return pool.async(delay, unit, repeat, task); return pool.async(delay, unit, repeat, task);
} }
@Override @Override
public ThreadPool createThreadPool(String name, int maxThreads) { public ThreadPool createThreadPool(String name, int maxThreads) {
log.debug("Creating new ThreadPool {} with maximum of {} threads", name, maxThreads); log.debug("Creating new ThreadPool {} with maximum of {} threads",
name, maxThreads);
return new ThreadPoolImpl(name, return new ThreadPoolImpl(name,
Executors.newScheduledThreadPool(maxThreads)); Executors.newScheduledThreadPool(maxThreads));
} }
@@ -205,9 +208,21 @@ public class ThreadServiceImpl extends AbstractService implements ThreadService
} }
} }
/**
* Future implementation for asynchronous tasks
*
* @author <a href="http://www.rogiel.com">Rogiel</a>
*/
private class ScheduledAsyncFutureImpl implements ScheduledAsyncFuture { private class ScheduledAsyncFutureImpl implements ScheduledAsyncFuture {
/**
* The {@link ExecutorService} {@link ScheduledFuture}
*/
private final ScheduledFuture<?> future; private final ScheduledFuture<?> future;
/**
* @param future
* the {@link ExecutorService} {@link ScheduledFuture}
*/
public ScheduledAsyncFutureImpl(ScheduledFuture<?> future) { public ScheduledAsyncFutureImpl(ScheduledFuture<?> future) {
this.future = future; this.future = future;
} }
@@ -251,6 +266,11 @@ public class ThreadServiceImpl extends AbstractService implements ThreadService
} }
/**
* Thread pool implementation
*
* @author <a href="http://www.rogiel.com">Rogiel</a>
*/
private class ThreadPoolImpl implements ThreadPool { private class ThreadPoolImpl implements ThreadPool {
/** /**
* This thread pool name * This thread pool name
@@ -261,6 +281,12 @@ public class ThreadServiceImpl extends AbstractService implements ThreadService
*/ */
private final ScheduledExecutorService executor; private final ScheduledExecutorService executor;
/**
* @param name
* the pool name
* @param executor
* the backing {@link ScheduledExecutorService}
*/
public ThreadPoolImpl(String name, ScheduledExecutorService executor) { public ThreadPoolImpl(String name, ScheduledExecutorService executor) {
this.name = name; this.name = name;
this.executor = executor; this.executor = executor;

View File

@@ -43,6 +43,9 @@ public class Java7VFSService extends AbstractService implements VFSService {
*/ */
private final Logger log = LoggerFactory.getLogger(this.getClass()); private final Logger log = LoggerFactory.getLogger(this.getClass());
/**
* The Java 7 vfs configuration
*/
private final Java7VFSConfiguration config; private final Java7VFSConfiguration config;
/** /**
@@ -62,6 +65,10 @@ public class Java7VFSService extends AbstractService implements VFSService {
public interface Java7VFSConfiguration extends VFSConfiguration { public interface Java7VFSConfiguration extends VFSConfiguration {
} }
/**
* @param configService
* the configuration service
*/
@Inject @Inject
protected Java7VFSService(final ConfigurationService configService) { protected Java7VFSService(final ConfigurationService configService) {
this.config = configService.get(Java7VFSConfiguration.class); this.config = configService.get(Java7VFSConfiguration.class);

View File

@@ -41,6 +41,9 @@ public abstract class AbstractDAO<T extends Model<?>, I extends ID<?>>
*/ */
protected final DatabaseService database; protected final DatabaseService database;
/**
* @param database the database service
*/
@Inject @Inject
protected AbstractDAO(DatabaseService database) { protected AbstractDAO(DatabaseService database) {
this.database = database; this.database = database;

View File

@@ -49,6 +49,18 @@ public interface DatabaseService extends Service {
public interface DatabaseConfiguration extends ServiceConfiguration { public interface DatabaseConfiguration extends ServiceConfiguration {
} }
/**
* Returns the {@link DataAccessObject} used to retrieve and save objects of
* type <M>
*
* @param <M>
* the {@link Model} type
* @param <I>
* the {@link ID} type
* @param model
* the model class
* @return the {@link DataAccessObject} for {@link Model}
*/
<M extends Model<I>, I extends ID<M>> DataAccessObject<M, I> getDAO( <M extends Model<I>, I extends ID<M>> DataAccessObject<M, I> getDAO(
Class<M> model); Class<M> model);
} }

View File

@@ -36,6 +36,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import com.google.common.base.Preconditions; import com.google.common.base.Preconditions;
import com.google.inject.Guice;
import com.google.inject.Inject; import com.google.inject.Inject;
import com.google.inject.Injector; import com.google.inject.Injector;
import com.l2jserver.model.Model; import com.l2jserver.model.Model;
@@ -243,6 +244,16 @@ public class JDBCDatabaseService extends AbstractService implements
void setMinIdleConnections(int password); void setMinIdleConnections(int password);
} }
/**
* @param configService
* the configuration service
* @param injector
* the {@link Guice} {@link Injector}
* @param cacheService
* the cache service
* @param threadService
* the thread service
*/
@Inject @Inject
public JDBCDatabaseService(ConfigurationService configService, public JDBCDatabaseService(ConfigurationService configService,
Injector injector, CacheService cacheService, Injector injector, CacheService cacheService,
@@ -343,29 +354,57 @@ public class JDBCDatabaseService extends AbstractService implements
} }
} }
/**
* Checks for the cached version of the object
*
* @param id
* the object ID
* @return the cached version, if any
*/
public Object getCachedObject(Object id) { public Object getCachedObject(Object id) {
Preconditions.checkNotNull(id, "id"); Preconditions.checkNotNull(id, "id");
log.debug("Fetching cached object {}", id); log.debug("Fetching cached object {}", id);
return objectCache.get(id); return objectCache.get(id);
} }
/**
* Checks for the cached version of the object
*
* @param id
* the object ID
* @return true if has an cached version,
*/
public boolean hasCachedObject(Object id) { public boolean hasCachedObject(Object id) {
Preconditions.checkNotNull(id, "id"); Preconditions.checkNotNull(id, "id");
log.debug("Locating cached object {}", id); log.debug("Locating cached object {}", id);
return objectCache.contains(id); return objectCache.contains(id);
} }
public void updateCache(ID<?> key, Model<?> value) { /**
Preconditions.checkNotNull(key, "key"); * Updates an cache object
*
* @param id
* the cache key
* @param value
* the model value
*/
public void updateCache(ID<?> id, Model<?> value) {
Preconditions.checkNotNull(id, "key");
Preconditions.checkNotNull(value, "value"); Preconditions.checkNotNull(value, "value");
log.debug("Updating cached object {} with {}", key, value); log.debug("Updating cached object {} with {}", id, value);
objectCache.put(key, value); objectCache.put(id, value);
} }
public void removeCache(Object key) { /**
Preconditions.checkNotNull(key, "key"); * Removes an cached object
log.debug("Removing cached object {}", key); *
objectCache.remove(key); * @param id
* the object id
*/
public void removeCache(Object id) {
Preconditions.checkNotNull(id, "key");
log.debug("Removing cached object {}", id);
objectCache.remove(id);
} }
@Override @Override
@@ -431,6 +470,9 @@ public class JDBCDatabaseService extends AbstractService implements
private final Logger log = LoggerFactory private final Logger log = LoggerFactory
.getLogger(InsertUpdateQuery.class); .getLogger(InsertUpdateQuery.class);
/**
* The iterator
*/
private final Iterator<T> iterator; private final Iterator<T> iterator;
/** /**
@@ -736,6 +778,9 @@ public class JDBCDatabaseService extends AbstractService implements
*/ */
private final JDBCDatabaseService database; private final JDBCDatabaseService database;
/**
* The {@link ID} mapper
*/
private final Mapper<I> idMapper; private final Mapper<I> idMapper;
/** /**

View File

@@ -40,6 +40,9 @@ public abstract class AbstractJDBCDAO<T extends Model<?>, I extends ID<?>>
*/ */
protected final JDBCDatabaseService database; protected final JDBCDatabaseService database;
/**
* @param database the database service
*/
@Inject @Inject
protected AbstractJDBCDAO(DatabaseService database) { protected AbstractJDBCDAO(DatabaseService database) {
super(database); super(database);

View File

@@ -105,6 +105,18 @@ public abstract class JDBCCharacterDAO extends
public static final String APPEARANCE_HAIR_COLOR = "appearance_hair_color"; public static final String APPEARANCE_HAIR_COLOR = "appearance_hair_color";
public static final String APPEARANCE_FACE = "apperance_face"; public static final String APPEARANCE_FACE = "apperance_face";
/**
* @param database
* the database service
* @param idFactory
* the character id provider
* @param templateIdFactory
* the template id provider
* @param accountIdFactory
* the account id provider
* @param clanIdFactory
* the clan id provider
*/
@Inject @Inject
public JDBCCharacterDAO(DatabaseService database, public JDBCCharacterDAO(DatabaseService database,
final CharacterIDProvider idFactory, final CharacterIDProvider idFactory,

View File

@@ -63,6 +63,11 @@ public abstract class JDBCCharacterFriendDAO extends
public static final String CHAR_ID_FRIEND = JDBCCharacterDAO.CHAR_ID public static final String CHAR_ID_FRIEND = JDBCCharacterDAO.CHAR_ID
+ "_friend"; + "_friend";
/**
* @param database the database service
* @param idProvider the frind id provider
* @param charIdProvider the character id provider
*/
@Inject @Inject
public JDBCCharacterFriendDAO(DatabaseService database, public JDBCCharacterFriendDAO(DatabaseService database,
final FriendIDProvider idProvider, final FriendIDProvider idProvider,

View File

@@ -67,6 +67,14 @@ public abstract class JDBCChatMessageDAO extends
public static final String DATE = "date"; public static final String DATE = "date";
public static final String MESSAGE = "message"; public static final String MESSAGE = "message";
/**
* @param database
* the database service
* @param idFactory
* the chat message id provider
* @param charIdFactory
* the character id provider
*/
@Inject @Inject
public JDBCChatMessageDAO(DatabaseService database, public JDBCChatMessageDAO(DatabaseService database,
ChatMessageIDProvider idFactory, ChatMessageIDProvider idFactory,

View File

@@ -61,6 +61,14 @@ public abstract class JDBCClanDAO extends AbstractJDBCDAO<Clan, ClanID>
public static final String CLAN_ID = "clan_id"; public static final String CLAN_ID = "clan_id";
public static final String CHAR_ID_LEADER = "character_id_leader"; public static final String CHAR_ID_LEADER = "character_id_leader";
/**
* @param database
* the database service
* @param clanIdFactory
* the clan id provider
* @param idFactory
* the character id provider
*/
@Inject @Inject
public JDBCClanDAO(DatabaseService database, ClanIDProvider clanIdFactory, public JDBCClanDAO(DatabaseService database, ClanIDProvider clanIdFactory,
final CharacterIDProvider idFactory) { final CharacterIDProvider idFactory) {

View File

@@ -79,6 +79,12 @@ public abstract class JDBCItemDAO extends AbstractJDBCDAO<Item, ItemID>
public static final String COORD_Y = "coord_y"; public static final String COORD_Y = "coord_y";
public static final String COORD_Z = "coord_z"; public static final String COORD_Z = "coord_z";
/**
* @param database the database service
* @param idFactory the item id provider
* @param templateIdFactory the item template id provider
* @param charIdFactory the character id provider
*/
@Inject @Inject
public JDBCItemDAO(DatabaseService database, public JDBCItemDAO(DatabaseService database,
final ItemIDProvider idFactory, final ItemIDProvider idFactory,

View File

@@ -48,6 +48,9 @@ import com.l2jserver.util.geometry.Point3D;
*/ */
public abstract class JDBCNPCDAO extends AbstractJDBCDAO<NPC, NPCID> implements public abstract class JDBCNPCDAO extends AbstractJDBCDAO<NPC, NPCID> implements
NPCDAO { NPCDAO {
/**
* The logger
*/
private final Logger log = LoggerFactory.getLogger(this.getClass()); private final Logger log = LoggerFactory.getLogger(this.getClass());
/** /**
@@ -77,6 +80,14 @@ public abstract class JDBCNPCDAO extends AbstractJDBCDAO<NPC, NPCID> implements
public static final String RESPAWN_TIME = "respawn_time"; public static final String RESPAWN_TIME = "respawn_time";
/**
* @param database
* the database service
* @param idProvider
* the npc id provider
* @param templateIdProvider
* the npc template id provider
*/
@Inject @Inject
public JDBCNPCDAO(DatabaseService database, final NPCIDProvider idProvider, public JDBCNPCDAO(DatabaseService database, final NPCIDProvider idProvider,
NPCTemplateIDProvider templateIdProvider) { NPCTemplateIDProvider templateIdProvider) {

View File

@@ -31,6 +31,18 @@ import com.l2jserver.service.database.jdbc.JDBCCharacterDAO;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public class H2CharacterDAO extends JDBCCharacterDAO implements CharacterDAO { public class H2CharacterDAO extends JDBCCharacterDAO implements CharacterDAO {
/**
* @param database
* the database service
* @param idFactory
* the character id provider
* @param templateIdFactory
* the template id provider
* @param accountIdFactory
* the account id provider
* @param clanIdFactory
* the clan id provider
*/
@Inject @Inject
public H2CharacterDAO(DatabaseService database, public H2CharacterDAO(DatabaseService database,
CharacterIDProvider idFactory, CharacterIDProvider idFactory,

View File

@@ -30,6 +30,11 @@ import com.l2jserver.service.database.jdbc.JDBCCharacterFriendDAO;
*/ */
public class H2CharacterFriendDAO extends JDBCCharacterFriendDAO implements public class H2CharacterFriendDAO extends JDBCCharacterFriendDAO implements
CharacterFriendDAO { CharacterFriendDAO {
/**
* @param database the database service
* @param idProvider the frind id provider
* @param charIdProvider the character id provider
*/
@Inject @Inject
public H2CharacterFriendDAO(DatabaseService database, public H2CharacterFriendDAO(DatabaseService database,
FriendIDProvider idProvider, CharacterIDProvider charIdProvider) { FriendIDProvider idProvider, CharacterIDProvider charIdProvider) {

View File

@@ -30,6 +30,14 @@ import com.l2jserver.service.database.jdbc.JDBCChatMessageDAO;
*/ */
public class H2ChatMessageDAO extends JDBCChatMessageDAO implements public class H2ChatMessageDAO extends JDBCChatMessageDAO implements
ChatMessageDAO { ChatMessageDAO {
/**
* @param database
* the database service
* @param idFactory
* the chat message id provider
* @param charIdFactory
* the character id provider
*/
@Inject @Inject
public H2ChatMessageDAO(DatabaseService database, public H2ChatMessageDAO(DatabaseService database,
ChatMessageIDProvider idFactory, CharacterIDProvider charIdFactory) { ChatMessageIDProvider idFactory, CharacterIDProvider charIdFactory) {

View File

@@ -30,6 +30,14 @@ import com.l2jserver.service.database.jdbc.JDBCClanDAO;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public class H2ClanDAO extends JDBCClanDAO implements ClanDAO { public class H2ClanDAO extends JDBCClanDAO implements ClanDAO {
/**
* @param database
* the database service
* @param clanIdFactory
* the clan id provider
* @param idFactory
* the character id provider
*/
@Inject @Inject
public H2ClanDAO(DatabaseService database, ClanIDProvider clanIdFactory, public H2ClanDAO(DatabaseService database, ClanIDProvider clanIdFactory,
CharacterIDProvider idFactory) { CharacterIDProvider idFactory) {

View File

@@ -30,6 +30,12 @@ import com.l2jserver.service.database.jdbc.JDBCItemDAO;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public class H2ItemDAO extends JDBCItemDAO implements ItemDAO { public class H2ItemDAO extends JDBCItemDAO implements ItemDAO {
/**
* @param database the database service
* @param idFactory the item id provider
* @param templateIdFactory the item template id provider
* @param charIdFactory the character id provider
*/
@Inject @Inject
public H2ItemDAO(DatabaseService database, ItemIDProvider idFactory, public H2ItemDAO(DatabaseService database, ItemIDProvider idFactory,
ItemTemplateIDProvider templateIdFactory, ItemTemplateIDProvider templateIdFactory,

View File

@@ -30,6 +30,11 @@ import com.l2jserver.service.database.jdbc.JDBCNPCDAO;
* @author <a href="http://www.rogiel.com">Rogiel</a> * @author <a href="http://www.rogiel.com">Rogiel</a>
*/ */
public class H2NPCDAO extends JDBCNPCDAO implements NPCDAO { public class H2NPCDAO extends JDBCNPCDAO implements NPCDAO {
/**
* @param database the database service
* @param idProvider the npc id provider
* @param templateIdProvider the npc template id provider
*/
@Inject @Inject
public H2NPCDAO(DatabaseService database, NPCIDProvider idProvider, public H2NPCDAO(DatabaseService database, NPCIDProvider idProvider,
NPCTemplateIDProvider templateIdProvider) { NPCTemplateIDProvider templateIdProvider) {

View File

@@ -32,6 +32,18 @@ import com.l2jserver.service.database.jdbc.JDBCCharacterDAO;
*/ */
public class MySQL5CharacterDAO extends JDBCCharacterDAO implements public class MySQL5CharacterDAO extends JDBCCharacterDAO implements
CharacterDAO { CharacterDAO {
/**
* @param database
* the database service
* @param idFactory
* the character id provider
* @param templateIdFactory
* the template id provider
* @param accountIdFactory
* the account id provider
* @param clanIdFactory
* the clan id provider
*/
@Inject @Inject
public MySQL5CharacterDAO(DatabaseService database, public MySQL5CharacterDAO(DatabaseService database,
CharacterIDProvider idFactory, CharacterIDProvider idFactory,

Some files were not shown because too many files have changed in this diff Show More