Class UniqueId

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable


    @API(status=STABLE,
         since="1.0")
    public class UniqueId
    extends java.lang.Object
    implements java.lang.Cloneable, java.io.Serializable
    UniqueId encapsulates the creation, parsing, and display of unique IDs for TestDescriptors.

    Instances of this class have value semantics and are immutable.

    Since:
    1.0
    See Also:
    Serialized Form
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  UniqueId.Segment
      A segment of a UniqueId comprises a type and a value.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      UniqueId append​(java.lang.String segmentType, java.lang.String value)
      Construct a new UniqueId by appending a new UniqueId.Segment, based on the supplied segmentType and value, to the end of this UniqueId.
      UniqueId append​(UniqueId.Segment segment)
      Construct a new UniqueId by appending a new UniqueId.Segment to the end of this UniqueId.
      protected java.lang.Object clone​()  
      boolean equals​(java.lang.Object o)  
      static UniqueId forEngine​(java.lang.String engineId)
      Create an engine's unique ID from its engineId using the default format.
      java.util.Optional<java.lang.String> getEngineId​()
      Get the engine ID stored in this UniqueId, if available.
      java.util.List<UniqueId.Segment> getSegments​()
      Get the immutable list of segments that make up this UniqueId.
      int hashCode​()  
      boolean hasPrefix​(UniqueId potentialPrefix)
      Determine if the supplied UniqueId is a prefix for this UniqueId.
      static UniqueId parse​(java.lang.String uniqueId)
      Parse a UniqueId from the supplied string representation using the default format.
      static UniqueId root​(java.lang.String segmentType, java.lang.String value)
      Create a root unique ID from the supplied segmentType and value using the default format.
      java.lang.String toString​()
      Generate the unique, formatted string representation of this UniqueId using the configured UniqueIdFormat.
      • Methods inherited from class java.lang.Object

        finalize, getClass, notify, notifyAll, wait, wait, wait
    • Method Detail

      • parse

        public static UniqueId parse​(java.lang.String uniqueId)
                              throws JUnitException
        Parse a UniqueId from the supplied string representation using the default format.
        Parameters:
        uniqueId - the string representation to parse; never null or blank
        Returns:
        a properly constructed UniqueId
        Throws:
        JUnitException - if the string cannot be parsed
      • forEngine

        public static UniqueId forEngine​(java.lang.String engineId)
        Create an engine's unique ID from its engineId using the default format.

        The engine ID will be stored in a UniqueId.Segment with type "engine".

        Parameters:
        engineId - the engine ID; never null or blank
        See Also:
        root(String, String)
      • root

        public static UniqueId root​(java.lang.String segmentType,
                                    java.lang.String value)
        Create a root unique ID from the supplied segmentType and value using the default format.
        Parameters:
        segmentType - the segment type; never null or blank
        value - the value; never null or blank
        See Also:
        forEngine(String)
      • getEngineId

        public final java.util.Optional<java.lang.String> getEngineId​()
        Get the engine ID stored in this UniqueId, if available.
        See Also:
        forEngine(String)
      • getSegments

        public final java.util.List<UniqueId.Segment> getSegments​()
        Get the immutable list of segments that make up this UniqueId.
      • append

        public final UniqueId append​(java.lang.String segmentType,
                                     java.lang.String value)
        Construct a new UniqueId by appending a new UniqueId.Segment, based on the supplied segmentType and value, to the end of this UniqueId.

        This UniqueId will not be modified.

        Neither the segmentType nor the value may contain any of the special characters used for constructing the string representation of this UniqueId.

        Parameters:
        segmentType - the type of the segment; never null or blank
        value - the value of the segment; never null or blank
      • hasPrefix

        @API(status=STABLE,
             since="1.1")
        public boolean hasPrefix​(UniqueId potentialPrefix)
        Determine if the supplied UniqueId is a prefix for this UniqueId.
        Parameters:
        potentialPrefix - the UniqueId to be checked; never null
        Since:
        1.1
      • clone

        protected java.lang.Object clone​()
                                  throws java.lang.CloneNotSupportedException
        Overrides:
        clone in class java.lang.Object
        Throws:
        java.lang.CloneNotSupportedException
      • equals

        public boolean equals​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode​()
        Overrides:
        hashCode in class java.lang.Object
      • toString

        public java.lang.String toString​()
        Generate the unique, formatted string representation of this UniqueId using the configured UniqueIdFormat.
        Overrides:
        toString in class java.lang.Object