diff --git a/com.b3dgs.lionengine.editor/src/com/b3dgs/lionengine/editor/ObjectListAbstract.java b/com.b3dgs.lionengine.editor/src/com/b3dgs/lionengine/editor/ObjectListAbstract.java index 8fad0ec97..82a932004 100644 --- a/com.b3dgs.lionengine.editor/src/com/b3dgs/lionengine/editor/ObjectListAbstract.java +++ b/com.b3dgs.lionengine.editor/src/com/b3dgs/lionengine/editor/ObjectListAbstract.java @@ -50,7 +50,7 @@ * @param The object type handled by the list. */ // CHECKSTYLE IGNORE LINE: DataAbstractionCoupling -public abstract class ObjectListAbstract +public abstract class ObjectListAbstract> { /** Icon add. */ public static final Image ICON_ADD = UtilIcon.get("add.png"); diff --git a/com.b3dgs.lionengine.editor/src/com/b3dgs/lionengine/editor/ObjectListListener.java b/com.b3dgs.lionengine.editor/src/com/b3dgs/lionengine/editor/ObjectListListener.java index dae563d8b..16cfffc6b 100644 --- a/com.b3dgs.lionengine.editor/src/com/b3dgs/lionengine/editor/ObjectListListener.java +++ b/com.b3dgs.lionengine.editor/src/com/b3dgs/lionengine/editor/ObjectListListener.java @@ -23,7 +23,7 @@ * * @param The object type handled by the list. */ -public interface ObjectListListener +public interface ObjectListListener> { /** * Notify when object has been selected from list. diff --git a/com.b3dgs.lionengine.editor/src/com/b3dgs/lionengine/editor/ObjectPropertiesAbstract.java b/com.b3dgs.lionengine.editor/src/com/b3dgs/lionengine/editor/ObjectPropertiesAbstract.java index 4dfbb41f8..bc59a4bdd 100644 --- a/com.b3dgs.lionengine.editor/src/com/b3dgs/lionengine/editor/ObjectPropertiesAbstract.java +++ b/com.b3dgs.lionengine.editor/src/com/b3dgs/lionengine/editor/ObjectPropertiesAbstract.java @@ -36,7 +36,7 @@ * * @param The object type handled by the properties. */ -public abstract class ObjectPropertiesAbstract +public abstract class ObjectPropertiesAbstract> { /** * Create a text and its label. diff --git a/lionengine-core/src/main/java/com/b3dgs/lionengine/Animation.java b/lionengine-core/src/main/java/com/b3dgs/lionengine/Animation.java index aa3a0533d..854b70a97 100644 --- a/lionengine-core/src/main/java/com/b3dgs/lionengine/Animation.java +++ b/lionengine-core/src/main/java/com/b3dgs/lionengine/Animation.java @@ -48,7 +48,7 @@ * @param repeat The repeat flag. */ public record Animation(String name, int firstFrame, int lastFrame, double speed, boolean reverse, boolean repeat) - implements Nameable + implements Nameable { /** Animation default name. */ diff --git a/lionengine-core/src/main/java/com/b3dgs/lionengine/InputDevice.java b/lionengine-core/src/main/java/com/b3dgs/lionengine/InputDevice.java index 109d05952..85a72e14a 100644 --- a/lionengine-core/src/main/java/com/b3dgs/lionengine/InputDevice.java +++ b/lionengine-core/src/main/java/com/b3dgs/lionengine/InputDevice.java @@ -19,7 +19,7 @@ /** * Represents an input device, such as mouse, keyboard, joypad... */ -public interface InputDevice extends Updatable, Nameable, Listenable +public interface InputDevice extends Updatable, Nameable, Listenable { /** * Set visibility. diff --git a/lionengine-core/src/main/java/com/b3dgs/lionengine/Media.java b/lionengine-core/src/main/java/com/b3dgs/lionengine/Media.java index ee623b1dd..a00f79d3d 100644 --- a/lionengine-core/src/main/java/com/b3dgs/lionengine/Media.java +++ b/lionengine-core/src/main/java/com/b3dgs/lionengine/Media.java @@ -26,8 +26,15 @@ * Represents a path to a resource located outside. This abstraction allows to load a resource from any kind of * location, such as external storage, JAR... Can point to a file or a directory. */ -public interface Media extends Nameable +public interface Media { + /** + * Get the media name (excluding its path). + * + * @return The media name without its path. + */ + String getName(); + /** * Get the relative media path. * @@ -94,12 +101,4 @@ public interface Media extends Nameable * @return true if in jar, false else. */ boolean isJar(); - - /** - * Get the media name (excluding its path). - * - * @return The media name without its path. - */ - @Override - String getName(); } diff --git a/lionengine-core/src/main/java/com/b3dgs/lionengine/Nameable.java b/lionengine-core/src/main/java/com/b3dgs/lionengine/Nameable.java index cefd9b898..59e609b0c 100644 --- a/lionengine-core/src/main/java/com/b3dgs/lionengine/Nameable.java +++ b/lionengine-core/src/main/java/com/b3dgs/lionengine/Nameable.java @@ -18,8 +18,10 @@ /** * Represents something that can be designated by a unique name. + * + * @param The nameable type. */ -public interface Nameable +public interface Nameable> extends Comparable { /** * Get the name. @@ -27,4 +29,10 @@ public interface Nameable * @return The name value. */ String getName(); + + @Override + default int compareTo(T nameable) + { + return getName().compareTo(nameable.getName()); + } } diff --git a/lionengine-game/src/main/java/com/b3dgs/lionengine/game/feature/collidable/Collision.java b/lionengine-game/src/main/java/com/b3dgs/lionengine/game/feature/collidable/Collision.java index d4c10dc8e..b392aad0a 100644 --- a/lionengine-game/src/main/java/com/b3dgs/lionengine/game/feature/collidable/Collision.java +++ b/lionengine-game/src/main/java/com/b3dgs/lionengine/game/feature/collidable/Collision.java @@ -33,7 +33,7 @@ * @see ComponentCollision */ public record Collision(String name, int offsetX, int offsetY, int width, int height, boolean mirror) - implements Nameable + implements Nameable { /** Compute automatically collision by using the owner size. */ diff --git a/lionengine-game/src/main/java/com/b3dgs/lionengine/game/feature/tile/TileGroup.java b/lionengine-game/src/main/java/com/b3dgs/lionengine/game/feature/tile/TileGroup.java index ba30db779..ad4fa441f 100644 --- a/lionengine-game/src/main/java/com/b3dgs/lionengine/game/feature/tile/TileGroup.java +++ b/lionengine-game/src/main/java/com/b3dgs/lionengine/game/feature/tile/TileGroup.java @@ -45,7 +45,7 @@ * * @see com.b3dgs.lionengine.game.feature.tile.TileGroupsConfig */ -public record TileGroup(String name, TileGroupType type, Set tiles) implements Nameable +public record TileGroup(String name, TileGroupType type, Set tiles) implements Nameable { /** * Create group. diff --git a/lionengine-game/src/main/java/com/b3dgs/lionengine/game/feature/tile/map/collision/CollisionCategory.java b/lionengine-game/src/main/java/com/b3dgs/lionengine/game/feature/tile/map/collision/CollisionCategory.java index 704360310..71b6373b5 100644 --- a/lionengine-game/src/main/java/com/b3dgs/lionengine/game/feature/tile/map/collision/CollisionCategory.java +++ b/lionengine-game/src/main/java/com/b3dgs/lionengine/game/feature/tile/map/collision/CollisionCategory.java @@ -61,7 +61,7 @@ * @see CollisionFormula */ public record CollisionCategory(String name, Axis axis, int x, int y, boolean glue, List groups) - implements Nameable + implements Nameable { /** * Create category. diff --git a/lionengine-game/src/main/java/com/b3dgs/lionengine/game/feature/tile/map/collision/CollisionFormula.java b/lionengine-game/src/main/java/com/b3dgs/lionengine/game/feature/tile/map/collision/CollisionFormula.java index c4ffc75cf..4953050e8 100644 --- a/lionengine-game/src/main/java/com/b3dgs/lionengine/game/feature/tile/map/collision/CollisionFormula.java +++ b/lionengine-game/src/main/java/com/b3dgs/lionengine/game/feature/tile/map/collision/CollisionFormula.java @@ -67,7 +67,7 @@ public record CollisionFormula(String name, CollisionRange range, CollisionFunction function, CollisionConstraint constraint) - implements Nameable + implements Nameable { /** * Create formula. diff --git a/lionengine-game/src/main/java/com/b3dgs/lionengine/game/feature/tile/map/collision/CollisionGroup.java b/lionengine-game/src/main/java/com/b3dgs/lionengine/game/feature/tile/map/collision/CollisionGroup.java index 14bd4d830..588d81b7c 100644 --- a/lionengine-game/src/main/java/com/b3dgs/lionengine/game/feature/tile/map/collision/CollisionGroup.java +++ b/lionengine-game/src/main/java/com/b3dgs/lionengine/game/feature/tile/map/collision/CollisionGroup.java @@ -44,7 +44,7 @@ * @see CollisionGroupConfig * @see CollisionFormula */ -public record CollisionGroup(String name, Collection formulas) implements Nameable +public record CollisionGroup(String name, Collection formulas) implements Nameable { /** * Check if tiles groups are same. diff --git a/lionengine-game/src/main/java/com/b3dgs/lionengine/game/feature/tile/map/pathfinding/MovementTile.java b/lionengine-game/src/main/java/com/b3dgs/lionengine/game/feature/tile/map/pathfinding/MovementTile.java index 6833effeb..d883c8b85 100644 --- a/lionengine-game/src/main/java/com/b3dgs/lionengine/game/feature/tile/map/pathfinding/MovementTile.java +++ b/lionengine-game/src/main/java/com/b3dgs/lionengine/game/feature/tile/map/pathfinding/MovementTile.java @@ -22,7 +22,7 @@ /** * Represents the possible movement from a tile. */ -public enum MovementTile implements Nameable +public enum MovementTile implements Nameable { /** Up movement. */ UP(0, 1), diff --git a/lionengine-game/src/main/java/com/b3dgs/lionengine/game/feature/tile/map/pathfinding/PathCategory.java b/lionengine-game/src/main/java/com/b3dgs/lionengine/game/feature/tile/map/pathfinding/PathCategory.java index 072b0d0fd..09a04223a 100644 --- a/lionengine-game/src/main/java/com/b3dgs/lionengine/game/feature/tile/map/pathfinding/PathCategory.java +++ b/lionengine-game/src/main/java/com/b3dgs/lionengine/game/feature/tile/map/pathfinding/PathCategory.java @@ -28,7 +28,7 @@ * @param name The category name. * @param groups The associated groups. */ -public record PathCategory(String name, Collection groups) implements Nameable +public record PathCategory(String name, Collection groups) implements Nameable { /** * Create category. diff --git a/lionengine-game/src/main/java/com/b3dgs/lionengine/game/feature/tile/map/pathfinding/PathData.java b/lionengine-game/src/main/java/com/b3dgs/lionengine/game/feature/tile/map/pathfinding/PathData.java index 54f5c4a9c..f45760291 100644 --- a/lionengine-game/src/main/java/com/b3dgs/lionengine/game/feature/tile/map/pathfinding/PathData.java +++ b/lionengine-game/src/main/java/com/b3dgs/lionengine/game/feature/tile/map/pathfinding/PathData.java @@ -33,7 +33,7 @@ * @param movements The allowed movements. */ public record PathData(String category, double cost, boolean blocking, Collection movements) - implements Nameable + implements Nameable { /** * Create a path data.