Class Os


  • public class Os
    extends java.lang.Object

    Condition that tests the OS type.

    This class got copied over from Apache ANT. Even the version from plexus-utils was only an ANT fork!
    The last time it got copied was on 2011-08-12

    When merging changes please take care of the special OS_FAMILY handling in this version of Os.java!

    Version:
    $Revision$
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private static java.lang.String DARWIN
      OpenJDK is reported to call MacOS X "Darwin"
      private java.lang.String family
      OS family to look for
      static java.lang.String FAMILY_DOS
      OS family that can be tested for.
      static java.lang.String FAMILY_MAC
      OS family that can be tested for.
      static java.lang.String FAMILY_NETWARE
      OS family that can be tested for.
      static java.lang.String FAMILY_NT
      OS family that can be tested for.
      static java.lang.String FAMILY_OPENVMS
      OS family that can be tested for.
      static java.lang.String FAMILY_OS2
      OS family that can be tested for.
      static java.lang.String FAMILY_OS400
      OS family that can be tested for.
      static java.lang.String FAMILY_TANDEM
      OS family that can be tested for.
      static java.lang.String FAMILY_UNIX
      OS family that can be tested for.
      static java.lang.String FAMILY_WIN9X
      OS family that can be tested for.
      static java.lang.String FAMILY_WINDOWS
      OS family that can be tested for.
      static java.lang.String FAMILY_ZOS
      OS family that can be tested for.
      static java.lang.String LINE_SEP
      system line separator , e.g.
      static java.lang.String OS_ARCH
      The OA architecture.
      static java.lang.String OS_FAMILY
      OS Family
      static java.lang.String OS_NAME
      The OS Name.
      static java.lang.String OS_VERSION
      The OS version.
      static java.lang.String PATH_SEP
      The path separator.
      private static java.util.Set<java.lang.String> VALID_FAMILIES  
    • Constructor Summary

      Constructors 
      Constructor Description
      Os()
      Default constructor
      Os​(java.lang.String family)
      Constructor that sets the family attribute
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      (package private) boolean eval()
      Determines if the OS on which Ant is executing matches the type of that set in setFamily.
      private static java.lang.String getOsFamily()
      Helper method to determine the current OS family.
      static java.util.Set<java.lang.String> getValidFamilies()
      The set of valid families.
      static boolean isArch​(java.lang.String arch)
      Determines if the OS on which Ant is executing matches the given OS architecture.
      static boolean isFamily​(java.lang.String family)
      Determines if the OS on which Ant is executing matches the given OS family.
      static boolean isName​(java.lang.String name)
      Determines if the OS on which Ant is executing matches the given OS name.
      private static boolean isOs​(java.lang.String family, java.lang.String name, java.lang.String arch, java.lang.String version)
      Determines if the OS on which Ant is executing matches the given OS family, name, architecture and version
      static boolean isValidFamily​(java.lang.String family)
      Test if the given family String represents a valid Family
      static boolean isVersion​(java.lang.String version)
      Determines if the OS on which Ant is executing matches the given OS version.
      private void setFamily​(java.lang.String f)
      Sets the desired OS family type
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • OS_NAME

        public static final java.lang.String OS_NAME
        The OS Name.
      • OS_ARCH

        public static final java.lang.String OS_ARCH
        The OA architecture.
      • OS_VERSION

        public static final java.lang.String OS_VERSION
        The OS version.
      • PATH_SEP

        public static final java.lang.String PATH_SEP
        The path separator.
      • LINE_SEP

        public static final java.lang.String LINE_SEP
        system line separator , e.g. "\n" on unixoid systems and "\r\n" on Windows
      • OS_FAMILY

        public static final java.lang.String OS_FAMILY
        OS Family
      • VALID_FAMILIES

        private static final java.util.Set<java.lang.String> VALID_FAMILIES
      • family

        private java.lang.String family
        OS family to look for
      • FAMILY_WINDOWS

        public static final java.lang.String FAMILY_WINDOWS
        OS family that can be tested for. "windows"
        See Also:
        Constant Field Values
      • FAMILY_WIN9X

        public static final java.lang.String FAMILY_WIN9X
        OS family that can be tested for. "win9x"
        See Also:
        Constant Field Values
      • FAMILY_NT

        public static final java.lang.String FAMILY_NT
        OS family that can be tested for. "winnt"
        See Also:
        Constant Field Values
      • FAMILY_OS2

        public static final java.lang.String FAMILY_OS2
        OS family that can be tested for. "os/2"
        See Also:
        Constant Field Values
      • FAMILY_NETWARE

        public static final java.lang.String FAMILY_NETWARE
        OS family that can be tested for. "netware"
        See Also:
        Constant Field Values
      • FAMILY_DOS

        public static final java.lang.String FAMILY_DOS
        OS family that can be tested for. "dos"
        See Also:
        Constant Field Values
      • FAMILY_MAC

        public static final java.lang.String FAMILY_MAC
        OS family that can be tested for. "mac"
        See Also:
        Constant Field Values
      • FAMILY_TANDEM

        public static final java.lang.String FAMILY_TANDEM
        OS family that can be tested for. "tandem"
        See Also:
        Constant Field Values
      • FAMILY_UNIX

        public static final java.lang.String FAMILY_UNIX
        OS family that can be tested for. "unix"
        See Also:
        Constant Field Values
      • FAMILY_OPENVMS

        public static final java.lang.String FAMILY_OPENVMS
        OS family that can be tested for. "openvms"
        See Also:
        Constant Field Values
      • FAMILY_ZOS

        public static final java.lang.String FAMILY_ZOS
        OS family that can be tested for. "z/os"
        See Also:
        Constant Field Values
      • FAMILY_OS400

        public static final java.lang.String FAMILY_OS400
        OS family that can be tested for. "os/400"
        See Also:
        Constant Field Values
    • Constructor Detail

      • Os

        public Os()
        Default constructor
      • Os

        public Os​(java.lang.String family)
        Constructor that sets the family attribute
        Parameters:
        family - a String value
    • Method Detail

      • getValidFamilies

        public static java.util.Set<java.lang.String> getValidFamilies()
        The set of valid families. This methods initializes the set until VALID_FAMILIES constant is set.
        Returns:
        The set of families.
      • setFamily

        private void setFamily​(java.lang.String f)
        Sets the desired OS family type
        Parameters:
        f - The OS family type desired
        Possible values:
        • dos
        • mac
        • netware
        • os/2
        • tandem
        • unix
        • windows
        • win9x
        • z/os
        • os/400
      • eval

        boolean eval()
        Determines if the OS on which Ant is executing matches the type of that set in setFamily.
        Returns:
        true if the os matches.
        See Also:
        setFamily(String)
      • isFamily

        public static boolean isFamily​(java.lang.String family)
        Determines if the OS on which Ant is executing matches the given OS family.
        Parameters:
        family - the family to check for
        Returns:
        true if the OS matches
      • isName

        public static boolean isName​(java.lang.String name)
        Determines if the OS on which Ant is executing matches the given OS name.
        Parameters:
        name - the OS name to check for
        Returns:
        true if the OS matches
      • isArch

        public static boolean isArch​(java.lang.String arch)
        Determines if the OS on which Ant is executing matches the given OS architecture.
        Parameters:
        arch - the OS architecture to check for
        Returns:
        true if the OS matches
      • isVersion

        public static boolean isVersion​(java.lang.String version)
        Determines if the OS on which Ant is executing matches the given OS version.
        Parameters:
        version - the OS version to check for
        Returns:
        true if the OS matches
      • isOs

        private static boolean isOs​(java.lang.String family,
                                    java.lang.String name,
                                    java.lang.String arch,
                                    java.lang.String version)
        Determines if the OS on which Ant is executing matches the given OS family, name, architecture and version
        Parameters:
        family - The OS family
        name - The OS name
        arch - The OS architecture
        version - The OS version
        Returns:
        true if the OS matches
      • getOsFamily

        private static java.lang.String getOsFamily()
        Helper method to determine the current OS family.
        Returns:
        name of current OS family.
      • isValidFamily

        public static boolean isValidFamily​(java.lang.String family)
        Test if the given family String represents a valid Family
        Parameters:
        family - the os family
        Returns:
        true if 'family' represents a valid OS-Family, false otherwise.