package org.sculptor.dddsample.location.domain; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * A few locations for easy testing. */ public class SampleLocations { public static final Location HONGKONG = new Location("Hongkong", new UnLocode("CNHKG")); public static final Location MELBOURNE = new Location("Melbourne", new UnLocode("AUMEL")); public static final Location STOCKHOLM = new Location("Stockholm", new UnLocode("SESTO")); public static final Location HELSINKI = new Location("Helsinki", new UnLocode("FIHEL")); public static final Location CHICAGO = new Location("Chicago", new UnLocode("USCHI")); public static final Location TOKYO = new Location("Tokyo", new UnLocode("JNTKO")); public static final Location HAMBURG = new Location("Hamburg", new UnLocode("DEHAM")); public static final Location SHANGHAI = new Location("Shanghai", new UnLocode("CNSHA")); public static final Location ROTTERDAM = new Location("Rotterdam", new UnLocode("NLRTM")); public static final Location GOTHENBURG = new Location("Göteborg", new UnLocode("SEGOT")); public static final Location HANGZOU = new Location("Hangzhou", new UnLocode("CNHGH")); public static final Location NEWYORK = new Location("New York", new UnLocode("USNYC")); public static final Map<UnLocode, Location> ALL = new HashMap<UnLocode, Location>(); static { for (Field field : SampleLocations.class.getDeclaredFields()) { if (field.getType().equals(Location.class)) { try { Location location = (Location) field.get(null); ALL.put(location.getUnLocode(), location); } catch (IllegalAccessException e) { throw new RuntimeException(e); } } } } public static List<Location> getAll() { return new ArrayList<Location>(ALL.values()); } public static Location lookup(UnLocode unLocode) { return ALL.get(unLocode); } }