Методы перечисления Java

Я хотел бы объявить enum Direction, у которого есть метод, который возвращает противоположное направление (следующее синтаксически не корректно, то есть перечисления не могут быть созданы, но это иллюстрирует мою точку зрения). Это возможно в Java?

Вот код:

public enum Direction {

     NORTH(1),
     SOUTH(-1),
     EAST(-2),
     WEST(2);

     Direction(int code){
          this.code=code;
     }
     protected int code;
     public int getCode() {
           return this.code;
     }
     static Direction getOppositeDirection(Direction d){
           return new Direction(d.getCode() * -1);
     }
}

Ответы на вопрос(6)

Ваш ответ на вопрос