test_class.declarator: json
test_class.modifier: private
test_class.original_string: private JacksonTester<PortableDistance> json;
test_class.type: JacksonTester<PortableDistance>
test_class.var_name: json
test_class.file: optaweb-vehicle-routing-backend/src/test/java/org/optaweb/vehiclerouting/plugin/websocket/PortableDistanceTest.java
test_class.identifier: PortableDistanceTest
test_case.body: @Test
      void marshal_to_json() throws IOException {
          Distance distance = Distance.ofMillis(3_661_987);
          assertThat(json.write(PortableDistance.fromDistance(distance)).getJson()).isEqualTo("\"1h 1m 2s\"");
      }
test_case.class_method_signature: PortableDistanceTest.marshal_to_json()
test_case.full_signature: @Test void marshal_to_json()
test_case.identifier: marshal_to_json
test_case.invocations: ofMillis isEqualTo assertThat getJson write fromDistance
test_case.modifiers: @Test
test_case.parameters: ()
test_case.return: void
test_case.signature: void marshal_to_json()
focal_class.declarator: distance
focal_class.modifier: @JsonValue
      private final
focal_class.original_string: @JsonValue
      private final String distance;
focal_class.type: String
focal_class.var_name: distance
focal_class.file: optaweb-vehicle-routing-backend/src/main/java/org/optaweb/vehiclerouting/plugin/websocket/PortableDistance.java
focal_class.identifier: PortableDistance
focal_class.class_method_signature: PortableDistance.fromDistance(Distance distance)
focal_class.full_signature: static PortableDistance fromDistance(Distance distance)
focal_class.identifier: fromDistance
focal_class.modifiers: static
focal_class.parameters: (Distance distance)
focal_class.return: PortableDistance
focal_class.signature: PortableDistance fromDistance(Distance distance)
focal_class.class_method_signature: PortableDistance.PortableDistance(String distance)
focal_class.full_signature: private  PortableDistance(String distance)
focal_class.identifier: PortableDistance
focal_class.modifiers: private
focal_class.parameters: (String distance)
focal_class.signature:  PortableDistance(String distance)
focal_class.class_method_signature: PortableDistance.equals(Object o)
focal_class.full_signature: @Override public boolean equals(Object o)
focal_class.identifier: equals
focal_class.modifiers: @Override public
focal_class.parameters: (Object o)
focal_class.return: boolean
focal_class.signature: boolean equals(Object o)
focal_class.class_method_signature: PortableDistance.hashCode()
focal_class.full_signature: @Override public int hashCode()
focal_class.identifier: hashCode
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int hashCode()
focal_class.class_method_signature: PortableDistance.toString()
focal_class.full_signature: @Override public String toString()
focal_class.identifier: toString
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String toString()
focal_method.body: static PortableDistance fromDistance(Distance distance) {
          long seconds = (Objects.requireNonNull(distance).millis() + 500) / 1000;
          return new PortableDistance(String.format("%dh %dm %ds", seconds / 3600, seconds / 60 % 60, seconds % 60));
      }
focal_method.class_method_signature: PortableDistance.fromDistance(Distance distance)
focal_method.full_signature: static PortableDistance fromDistance(Distance distance)
focal_method.identifier: fromDistance
focal_method.invocations: millis requireNonNull format
focal_method.modifiers: static
focal_method.parameters: (Distance distance)
focal_method.return: PortableDistance
focal_method.signature: PortableDistance fromDistance(Distance distance)