package net.sf.colossus.game; /** * The entry side for a battle. */ public enum EntrySide // NO_UCD { TOP_DEFENSE("Top defense"), RIGHT("Right"), RIGHT_DEFENSE("Right defense"), BOTTOM( "Bottom"), LEFT_DEFENSE("Left defense"), LEFT("Left"), NOT_SET( "Not set"); private final String label; private EntrySide(String label) { this.label = label; } public String getLabel() { return label; } public boolean isAttackerSide() { return ordinal() % 2 == 1; } public EntrySide getOpposingSide() { return values()[(ordinal() + 3) % 6]; } public static EntrySide fromLabel(String label) { for (EntrySide entrySide : values()) { if (entrySide.getLabel().equals(label)) { return entrySide; } } throw new IllegalArgumentException( "No attacker entry side with label '" + label + "'"); } }