public class Message {
    private int id;
    private int alcance; // hop count / distance traveled
    private boolean isIn; // true = inbound (coming back), false = outbound (going out)
    private Direction direction; // which direction the message is traveling

    public enum Direction {
        RIGHT, LEFT
    }

    public Message(int id, int alcance, boolean isIn, Direction direction) {
        this.id = id;
        this.alcance = alcance;
        this.isIn = isIn;
        this.direction = direction;
    }

    public int getId() {
        return id;
    }

    public int getAlcance() {
        return alcance;
    }

    public boolean isIn() {
        return isIn;
    }

    public Direction getDirection() {
        return direction;
    }

    public void setAlcance(int alcance) {
        this.alcance = alcance;
    }

    public void setId(int id) {
        this.id = id;
    }

    public void setIn(boolean isIn) {
        this.isIn = isIn;
    }

    public void setDirection(Direction direction) {
        this.direction = direction;
    }

    @Override
    public String toString() {
        return "Message[id=" + id + ", alcance=" + alcance + ", isIn=" + isIn + ", direction=" + direction + "]";
    }
}
