Class WXMClientConfiguration

java.lang.Object
com.io7m.waxmill.client.api.WXMClientConfiguration
All Implemented Interfaces:
WXMClientConfigurationType

public final class WXMClientConfiguration
extends java.lang.Object
implements WXMClientConfigurationType
Configuration values passed to the client.
  • Method Details

    • virtualMachineConfigurationDirectory

      public java.nio.file.Path virtualMachineConfigurationDirectory()
      A directory that contains virtual machine configurations.
      Specified by:
      virtualMachineConfigurationDirectory in interface WXMClientConfigurationType
      Returns:
      The virtual machine configuration directory
    • virtualMachineRuntimeDirectory

      public java.nio.file.Path virtualMachineRuntimeDirectory()
      A directory that contains virtual machines. This directory will contain one ZFS filesystem per virtual machine.
      Specified by:
      virtualMachineRuntimeDirectory in interface WXMClientConfigurationType
      Returns:
      The ZFS directory containing virtual machines
    • bhyveExecutable

      public java.nio.file.Path bhyveExecutable()
      Specified by:
      bhyveExecutable in interface WXMClientConfigurationType
      Returns:
      The "bhyve" executable path, such as /usr/sbin/bhyve
    • grubBhyveExecutable

      public java.nio.file.Path grubBhyveExecutable()
      Specified by:
      grubBhyveExecutable in interface WXMClientConfigurationType
      Returns:
      The "grub-bhyve" executable path, such as /usr/local/sbin/grub-bhyve
    • zfsExecutable

      public java.nio.file.Path zfsExecutable()
      Specified by:
      zfsExecutable in interface WXMClientConfigurationType
      Returns:
      The "zfs" executable path, such as /sbin/zfs
    • cuExecutable

      public java.nio.file.Path cuExecutable()
      Specified by:
      cuExecutable in interface WXMClientConfigurationType
      Returns:
      The "cu" executable path, such as /usr/bin/cu
    • withVirtualMachineConfigurationDirectory

      public final WXMClientConfiguration withVirtualMachineConfigurationDirectory​(java.nio.file.Path value)
      Copy the current immutable object by setting a value for the virtualMachineConfigurationDirectory attribute. A shallow reference equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for virtualMachineConfigurationDirectory
      Returns:
      A modified copy of the this object
    • withVirtualMachineRuntimeDirectory

      public final WXMClientConfiguration withVirtualMachineRuntimeDirectory​(java.nio.file.Path value)
      Copy the current immutable object by setting a value for the virtualMachineRuntimeDirectory attribute. A shallow reference equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for virtualMachineRuntimeDirectory
      Returns:
      A modified copy of the this object
    • withBhyveExecutable

      public final WXMClientConfiguration withBhyveExecutable​(java.nio.file.Path value)
      Copy the current immutable object by setting a value for the bhyveExecutable attribute. A shallow reference equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for bhyveExecutable
      Returns:
      A modified copy of the this object
    • withGrubBhyveExecutable

      public final WXMClientConfiguration withGrubBhyveExecutable​(java.nio.file.Path value)
      Copy the current immutable object by setting a value for the grubBhyveExecutable attribute. A shallow reference equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for grubBhyveExecutable
      Returns:
      A modified copy of the this object
    • withZfsExecutable

      public final WXMClientConfiguration withZfsExecutable​(java.nio.file.Path value)
      Copy the current immutable object by setting a value for the zfsExecutable attribute. A shallow reference equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for zfsExecutable
      Returns:
      A modified copy of the this object
    • withCuExecutable

      public final WXMClientConfiguration withCuExecutable​(java.nio.file.Path value)
      Copy the current immutable object by setting a value for the cuExecutable attribute. A shallow reference equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for cuExecutable
      Returns:
      A modified copy of the this object
    • equals

      public boolean equals​(java.lang.Object another)
      This instance is equal to all instances of WXMClientConfiguration that have equal attribute values.
      Overrides:
      equals in class java.lang.Object
      Returns:
      true if this is equal to another instance
    • hashCode

      public int hashCode()
      Computes a hash code from attributes: virtualMachineConfigurationDirectory, virtualMachineRuntimeDirectory, bhyveExecutable, grubBhyveExecutable, zfsExecutable, cuExecutable.
      Overrides:
      hashCode in class java.lang.Object
      Returns:
      hashCode value
    • toString

      public java.lang.String toString()
      Prints the immutable value WXMClientConfiguration with attribute values.
      Overrides:
      toString in class java.lang.Object
      Returns:
      A string representation of the value
    • copyOf

      public static WXMClientConfiguration copyOf​(WXMClientConfigurationType instance)
      Creates an immutable copy of a WXMClientConfigurationType value. Uses accessors to get values to initialize the new immutable instance. If an instance is already immutable, it is returned as is.
      Parameters:
      instance - The instance to copy
      Returns:
      A copied immutable WXMClientConfiguration instance
    • builder

      public static WXMClientConfiguration.Builder builder()
      Creates a builder for WXMClientConfiguration.
       WXMClientConfiguration.builder()
          .setVirtualMachineConfigurationDirectory(java.nio.file.Path) // required virtualMachineConfigurationDirectory
          .setVirtualMachineRuntimeDirectory(java.nio.file.Path) // required virtualMachineRuntimeDirectory
          .setBhyveExecutable(java.nio.file.Path) // optional bhyveExecutable
          .setGrubBhyveExecutable(java.nio.file.Path) // optional grubBhyveExecutable
          .setZfsExecutable(java.nio.file.Path) // optional zfsExecutable
          .setCuExecutable(java.nio.file.Path) // optional cuExecutable
          .build();
       
      Returns:
      A new WXMClientConfiguration builder