Interface LinuxMachine

All Superinterfaces:
Comparable<Machine>, Machine

public interface LinuxMachine extends Machine
Models a machine that runs Linux specifically, adding the additional detail of which C library and distribution it uses. In future additional information may be added here if relevant to application compatibility.
  • Method Details

    • getCLibrary

      CLibrary getCLibrary()
      Which type of C Library (glibc or muslc) this machine uses.
    • getDistributionReverseDNSName

      String getDistributionReverseDNSName()
      The reversed domain name of the primary website used by this Linux distribution project, or null if unknown/irrelevant.

      Rather than try to define a custom namespace to identify Linux distributions, we simply defer to DNS and assume that all distributions published via a particular website domain are sufficiently similar to generalize over. Sub-versions are not considered here - versioning is currently not expressed by this set of types.

      Examples: `com.ubuntu`, `org.getfedora`, `org.debian` etc.

    • of

      static LinuxMachine of(CPUArchitecture cpu, CLibrary cLibrary, String distributionReverseDNSName)
      Returns an immutable object holding the given values.
      Parameters:
      cpu - The CPU architecture, must not be null.
      cLibrary - The C library, must not be null.
      distributionReverseDNSName - No default, may be null.
    • of

      static LinuxMachine of(CPUArchitecture cpu, CLibrary cLibrary)
      Returns an immutable object holding the given values or defaults and no distributiond domain.
      Parameters:
      cpu - The CPU architecture, must not be null.
      cLibrary - The C library, must not be null.
    • of

      static LinuxMachine of(CPUArchitecture cpu)
      Returns an immutable object of the given CPU architecture and defaulting to glibc / no distribution domain.
      Parameters:
      cpu - The CPU architecture, must not be null.