test_class.file: server/src/test/java/io/spine/server/tuple/PairTest.java
test_class.identifier: PairTest
test_case.body: @Test
      @DisplayName("support equality")
      void supportEquality() {
          StringValue v1 = TestValues.newUuidValue();
          StringValue v2 = TestValues.newUuidValue();
  
          Pair<StringValue, StringValue> p1 = Pair.of(v1, v2);
          Pair<StringValue, StringValue> p1a = Pair.of(v1, v2);
          Pair<StringValue, StringValue> p2 = Pair.of(v2, v1);
  
          new EqualsTester().addEqualityGroup(p1, p1a)
                            .addEqualityGroup(p2)
                            .testEquals();
      }
test_case.class_method_signature: PairTest.supportEquality()
test_case.full_signature: @Test @DisplayName("support equality") void supportEquality()
test_case.identifier: supportEquality
test_case.invocations: newUuidValue newUuidValue of of of testEquals addEqualityGroup addEqualityGroup
test_case.modifiers: @Test @DisplayName("support equality")
test_case.parameters: ()
test_case.return: void
test_case.signature: void supportEquality()
focal_class.declarator: serialVersionUID = 0L
focal_class.modifier: private static final
focal_class.original_string: private static final long serialVersionUID = 0L;
focal_class.type: long
focal_class.var_name: serialVersionUID
focal_class.file: server/src/main/java/io/spine/server/tuple/Pair.java
focal_class.identifier: Pair
focal_class.interfaces: implements AValue<A>, BValue<B>
focal_class.class_method_signature: Pair.Pair(A a, B b)
focal_class.full_signature: private  Pair(A a, B b)
focal_class.identifier: Pair
focal_class.modifiers: private
focal_class.parameters: (A a, B b)
focal_class.signature:  Pair(A a, B b)
focal_class.class_method_signature: Pair.of(A a, B b)
focal_class.full_signature: public static Pair<A, B> of(A a, B b)
focal_class.identifier: of
focal_class.modifiers: public static
focal_class.parameters: (A a, B b)
focal_class.return: Pair<A, B>
focal_class.signature: Pair<A, B> of(A a, B b)
focal_class.class_method_signature: Pair.withNullable(A a, @Nullable B b)
focal_class.full_signature: public static Pair<A, Optional<B>> withNullable(A a, @Nullable B b)
focal_class.identifier: withNullable
focal_class.modifiers: public static
focal_class.parameters: (A a, @Nullable B b)
focal_class.return: Pair<A, Optional<B>>
focal_class.signature: Pair<A, Optional<B>> withNullable(A a, @Nullable B b)
focal_class.class_method_signature: Pair.withOptional(
              A a,
              @SuppressWarnings("OptionalUsedAsFieldOrParameterType") /* see @apiNote */ Optional<B> b
      )
focal_class.full_signature: public static Pair<A, Optional<B>> withOptional(
              A a,
              @SuppressWarnings("OptionalUsedAsFieldOrParameterType") /* see @apiNote */ Optional<B> b
      )
focal_class.identifier: withOptional
focal_class.modifiers: public static
focal_class.parameters: (
              A a,
              @SuppressWarnings("OptionalUsedAsFieldOrParameterType") /* see @apiNote */ Optional<B> b
      )
focal_class.return: Pair<A, Optional<B>>
focal_class.signature: Pair<A, Optional<B>> withOptional(
              A a,
              @SuppressWarnings("OptionalUsedAsFieldOrParameterType") /* see @apiNote */ Optional<B> b
      )
focal_class.class_method_signature: Pair.withEither(A a, B b)
focal_class.full_signature: public static Pair<A, B> withEither(A a, B b)
focal_class.identifier: withEither
focal_class.modifiers: public static
focal_class.parameters: (A a, B b)
focal_class.return: Pair<A, B>
focal_class.signature: Pair<A, B> withEither(A a, B b)
focal_class.class_method_signature: Pair.getA()
focal_class.full_signature: @Override public A getA()
focal_class.identifier: getA
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: A
focal_class.signature: A getA()
focal_class.class_method_signature: Pair.getB()
focal_class.full_signature: @Override public B getB()
focal_class.identifier: getB
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: B
focal_class.signature: B getB()
focal_class.class_method_signature: Pair.checkNotNullOrEmpty(M value)
focal_class.full_signature: @CanIgnoreReturnValue private static M checkNotNullOrEmpty(M value)
focal_class.identifier: checkNotNullOrEmpty
focal_class.modifiers: @CanIgnoreReturnValue private static
focal_class.parameters: (M value)
focal_class.return: M
focal_class.signature: M checkNotNullOrEmpty(M value)
focal_class.class_method_signature: Pair.checkNotEmpty(@Nullable M value)
focal_class.full_signature: @CanIgnoreReturnValue private static M checkNotEmpty(@Nullable M value)
focal_class.identifier: checkNotEmpty
focal_class.modifiers: @CanIgnoreReturnValue private static
focal_class.parameters: (@Nullable M value)
focal_class.return: M
focal_class.signature: M checkNotEmpty(@Nullable M value)
focal_class.superclass: extends Tuple
focal_method.body: public static <A extends Message, B extends Message> Pair<A, B> of(A a, B b) {
          A safeA = checkNotNullOrEmpty(a);
          B safeB = checkNotNullOrEmpty(b);
          Pair<A, B> result = new Pair<>(safeA, safeB);
          return result;
      }
focal_method.class_method_signature: Pair.of(A a, B b)
focal_method.full_signature: public static Pair<A, B> of(A a, B b)
focal_method.identifier: of
focal_method.invocations: checkNotNullOrEmpty checkNotNullOrEmpty
focal_method.modifiers: public static
focal_method.parameters: (A a, B b)
focal_method.return: Pair<A, B>
focal_method.signature: Pair<A, B> of(A a, B b)