001 // Copyright 2002 by Basil Vandegriend. All rights reserved.
002
003 package com.basilv.examples.enums;
004
005 /**
006 * Example of an enum with abstract methods and properties.
007 */
008 public enum Terrain {
009
010 NONE(""),
011
012 WALL("Wall") {
013 @Override public boolean preventsMovement() {
014 return true;
015 }
016
017 @Override public boolean blocksLineOfSight() {
018 return true;
019 }
020 },
021
022 PIT("Pit") {
023 @Override public boolean preventsMovement() {
024 return true;
025 }
026 },
027
028 GLASS_WALL("Glass Wall") {
029 @Override public boolean preventsMovement() {
030 return WALL.preventsMovement();
031 }
032 },
033
034 FOG("Fog") {
035 @Override public boolean blocksLineOfSight() {
036 return true;
037 }
038 };
039
040 private String displayName;
041
042 private Terrain(String displayName) {
043 this.displayName = displayName;
044 }
045
046 public String getDisplayName() {
047 return displayName;
048 }
049
050 public boolean preventsMovement() {
051 return false;
052 }
053
054 public boolean blocksLineOfSight() {
055 return false;
056 }
057
058 }