001    // Copyright 2006 by Basil Vandegriend.  All rights reserved.
002    
003    package com.basilv.examples.enums;
004    
005    public class TerrainUsage
006    {
007      public static Terrain getFromString(String terrainId) {
008        return Terrain.valueOf(terrainId);
009      }
010    
011      public static void main(String[] args) {
012    
013        // Iterate through all terrain values
014        for (Terrain terrain : Terrain.values()) {
015          System.out
016            .println("Terrain: '" + terrain.getDisplayName() + "'"
017              + (terrain.blocksLineOfSight() ? " blocks line of sight"
018                : "")
019              + (terrain.preventsMovement() ? " prevents movement"
020                : "") 
021              + " Ordinal: " + terrain.ordinal() 
022              + " Identifier: " + terrain.name()
023              + ".");
024        }
025    
026        // Iterate through all terrain values
027        for (Terrain terrain : Terrain.values()) {
028          System.out.println(
029              "Terrain ordinal=" + terrain.ordinal() 
030              + " Identifier=" + terrain.name());
031        }
032    
033        // Given identifier, find corresponding terrain instance.
034        String terrainIdentifier = "WALL";
035        Terrain terrain = Terrain.valueOf(terrainIdentifier);
036        System.out.println("\nTerrain identifier '"
037          + terrainIdentifier + "' produces terrain "
038          + terrain.getDisplayName());
039      }
040    }