package nbtool.util; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.LinkedList; import java.util.Map; import java.util.Set; public class Robots { public static class Robot { public final String name; public final String wifiName; public final String ethrName; public final String wifiAddr; public final String ethrAddr; protected Robot(String n, String wa) { this.name = n; this.wifiName = n; this.ethrName = n + ".local"; this.wifiAddr = wa; String[] parts = wifiAddr.split("\\."); assert(parts.length == 4); this.ethrAddr = "169.254.75." + parts[3]; } } public static Robot[] ROBOTS = { new Robot("wash" , "139.140.192.9" ), new Robot("river" , "139.140.192.10"), new Robot("jayne" , "139.140.192.11"), new Robot("simon" , "139.140.192.12"), new Robot("inara" , "139.140.192.13"), new Robot("kaylee" , "139.140.192.14"), new Robot("vera" , "139.140.192.15"), new Robot("mal" , "139.140.192.16"), new Robot("zoe" , "139.140.192.17"), new Robot("blt" , "139.140.192.18"), new Robot("elektra", "139.140.192.19"), new Robot("wasp", "139.140.192.20"), new Robot("buzz" , "139.140.192.21"), new Robot("batman" , "139.140.192.22"), new Robot("shehulk" , "139.140.192.23"), }; public static final Set<String> ROBOT_HOSTNAMES = new HashSet<>(); public static final Map<String, Robot> NAME_TO_ROBOT = new HashMap<>(); public static final Map<String, Robot> HOSTNAME_TO_ROBOT = new HashMap<>(); public static final Map<String, Robot> IP_TO_ROBOT = new HashMap<>(); static { for (Robot r : ROBOTS) { NAME_TO_ROBOT.put(r.name, r); HOSTNAME_TO_ROBOT.put(r.ethrName, r); HOSTNAME_TO_ROBOT.put(r.wifiName, r); ROBOT_HOSTNAMES.add(r.ethrName); ROBOT_HOSTNAMES.add(r.wifiName); IP_TO_ROBOT.put(r.wifiAddr, r); IP_TO_ROBOT.put(r.ethrAddr, r); } } public static String[] sortedHostNames() { LinkedList<String> names = new LinkedList<String>(ROBOT_HOSTNAMES); Collections.sort(names); return names.toArray(new String[0]); } public static String[] sortedWifiNames() { LinkedList<String> names = new LinkedList<String>(); for (Robot r : ROBOTS) { names.add(r.name); } Collections.sort(names); return names.toArray(new String[0]); } public static void main(String[] args) { // for (String s : sortedHostNames()) { // Debug.print("%s", s); // } Debug.plain("#nbites robot addresses"); Debug.plain("#re-create using nbtool.util.Robots"); for (Robot r : ROBOTS) { Debug.plain("%s %s", r.ethrAddr, r.ethrName ); } } }