Created creature hierarchy.
This commit is contained in:
parent
283388b7b9
commit
bb28276937
@ -0,0 +1,41 @@
|
|||||||
|
package com.iluwatar;
|
||||||
|
|
||||||
|
public abstract class AbstractCreature implements Creature {
|
||||||
|
|
||||||
|
private String name;
|
||||||
|
private Size size;
|
||||||
|
private Movement movement;
|
||||||
|
private Color color;
|
||||||
|
|
||||||
|
public AbstractCreature(String name, Size size, Movement movement, Color color) {
|
||||||
|
this.name = name;
|
||||||
|
this.size = size;
|
||||||
|
this.movement = movement;
|
||||||
|
this.color = color;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return String.format("%s [size=%s, movement=%s, color=%s]", name, size, movement, color);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Size getSize() {
|
||||||
|
return size;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Movement getMovement() {
|
||||||
|
return movement;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Color getColor() {
|
||||||
|
return color;
|
||||||
|
}
|
||||||
|
}
|
17
specification/src/main/java/com/iluwatar/Color.java
Normal file
17
specification/src/main/java/com/iluwatar/Color.java
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
package com.iluwatar;
|
||||||
|
|
||||||
|
public enum Color {
|
||||||
|
|
||||||
|
DARK("dark"), LIGHT("light"), GREEN("green"), RED("red");
|
||||||
|
|
||||||
|
private String title;
|
||||||
|
|
||||||
|
Color(String title) {
|
||||||
|
this.title = title;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return title;
|
||||||
|
}
|
||||||
|
}
|
12
specification/src/main/java/com/iluwatar/Creature.java
Normal file
12
specification/src/main/java/com/iluwatar/Creature.java
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
package com.iluwatar;
|
||||||
|
|
||||||
|
public interface Creature {
|
||||||
|
|
||||||
|
String getName();
|
||||||
|
|
||||||
|
Size getSize();
|
||||||
|
|
||||||
|
Movement getMovement();
|
||||||
|
|
||||||
|
Color getColor();
|
||||||
|
}
|
8
specification/src/main/java/com/iluwatar/Dragon.java
Normal file
8
specification/src/main/java/com/iluwatar/Dragon.java
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
package com.iluwatar;
|
||||||
|
|
||||||
|
public class Dragon extends AbstractCreature {
|
||||||
|
|
||||||
|
public Dragon() {
|
||||||
|
super("Dragon", Size.LARGE, Movement.FLYING, Color.RED);
|
||||||
|
}
|
||||||
|
}
|
8
specification/src/main/java/com/iluwatar/Goblin.java
Normal file
8
specification/src/main/java/com/iluwatar/Goblin.java
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
package com.iluwatar;
|
||||||
|
|
||||||
|
public class Goblin extends AbstractCreature {
|
||||||
|
|
||||||
|
public Goblin() {
|
||||||
|
super("Goblin", Size.SMALL, Movement.WALKING, Color.GREEN);
|
||||||
|
}
|
||||||
|
}
|
17
specification/src/main/java/com/iluwatar/Movement.java
Normal file
17
specification/src/main/java/com/iluwatar/Movement.java
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
package com.iluwatar;
|
||||||
|
|
||||||
|
public enum Movement {
|
||||||
|
|
||||||
|
WALKING("walking"), SWIMMING("swimming"), FLYING("flying");
|
||||||
|
|
||||||
|
private String title;
|
||||||
|
|
||||||
|
Movement(String title) {
|
||||||
|
this.title = title;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return title;
|
||||||
|
}
|
||||||
|
}
|
8
specification/src/main/java/com/iluwatar/Octopus.java
Normal file
8
specification/src/main/java/com/iluwatar/Octopus.java
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
package com.iluwatar;
|
||||||
|
|
||||||
|
public class Octopus extends AbstractCreature {
|
||||||
|
|
||||||
|
public Octopus() {
|
||||||
|
super("Octopus", Size.NORMAL, Movement.SWIMMING, Color.DARK);
|
||||||
|
}
|
||||||
|
}
|
22
specification/src/main/java/com/iluwatar/Size.java
Normal file
22
specification/src/main/java/com/iluwatar/Size.java
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
package com.iluwatar;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* Enumeration for creature size.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public enum Size {
|
||||||
|
|
||||||
|
SMALL("small"), NORMAL("normal"), LARGE("large");
|
||||||
|
|
||||||
|
private String title;
|
||||||
|
|
||||||
|
Size(String title) {
|
||||||
|
this.title = title;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return title;
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user