private void wakeupConfig(Machine host) {
   try {
     EthernetAddress ethernetAddress = new EthernetAddress(host.getEthernetAddress());
     InetAddress hostAddress = InetAddress.getByName(host.getHost());
     WakeUpUtil.wakeup(ethernetAddress, hostAddress, host.getPort());
   } catch (IOException e) {
     System.err.println(
         Messages.ERROR_MESSAGES.getFormattedString(
             "wakeup.io", host.getHost(), String.valueOf(host.getPort())));
   } catch (IllegalEthernetAddressException e) {
     // should not happen
     System.err.println(
         Messages.ERROR_MESSAGES.getFormattedString(
             "wakeup.invalidEthernetAddress", host.getHost(), String.valueOf(host.getPort())));
   }
 }
 private void wakeupEthernetAddresses(String address, InetAddress host, int port)
     throws IllegalEthernetAddressException {
   try {
     EthernetAddress ethernetAddress = new EthernetAddress(address);
     WakeUpUtil.wakeup(ethernetAddress, host, port);
   } catch (IOException e) {
     System.err.println(
         Messages.ERROR_MESSAGES.getFormattedString(
             "wakeup.io", host.toString(), String.valueOf(port)));
   }
 }
  private void wakeup(String[] names, Configuration config, InetAddress host, int port) {
    Machine[] hosts = config.getMachines();
    HashMap hostMap = new HashMap(hosts.length);

    for (int i = 0; i < hosts.length; i++) {
      Machine hostConfig = hosts[i];
      hostMap.put(hostConfig.getName().toLowerCase(), hostConfig);
    }

    for (int i = 0; i < names.length; i++) {
      String name = names[i];
      Machine hostConfig = (Machine) hostMap.get(name.toLowerCase());
      if (null != hostConfig) {
        wakeupConfig(hostConfig);
      } else {
        try {
          wakeupEthernetAddresses(name, host, port);
        } catch (IllegalEthernetAddressException e) {
          LOG.warning(
              Messages.ERROR_MESSAGES.getFormattedString("wakeup.notAHostOrEthernetAddress", name));
        }
      }
    }
  }