test_class.declarator: empty = new LinearId()
test_class.modifier: private final
test_class.original_string: private final LinearId empty = new LinearId();
test_class.type: LinearId
test_class.var_name: empty
test_class.declarator: single = new LinearId("single")
test_class.modifier: private final
test_class.original_string: private final LinearId single = new LinearId("single");
test_class.type: LinearId
test_class.var_name: single
test_class.declarator: dual = new LinearId("hello", "world")
test_class.modifier: private final
test_class.original_string: private final LinearId dual = new LinearId("hello", "world");
test_class.type: LinearId
test_class.var_name: dual
test_class.file: utilities/src/test/java/ec/tstoolkit/utilities/LinearIdTest.java
test_class.identifier: LinearIdTest
test_case.body: @Test
      @SuppressWarnings("null")
      public void testOf() {
          assertThatThrownBy(() -> LinearId.of(null)).isInstanceOf(NullPointerException.class);
          assertThat(LinearId.of(empty)).isSameAs(empty);
          assertThat(LinearId.of(new LinearId())).isEqualTo(empty);
          assertThat(LinearId.of(new LinearId("hello", "world"))).isEqualTo(dual);
      }
test_case.class_method_signature: LinearIdTest.testOf()
test_case.full_signature: @Test @SuppressWarnings("null") public void testOf()
test_case.identifier: testOf
test_case.invocations: isInstanceOf assertThatThrownBy of isSameAs assertThat of isEqualTo assertThat of isEqualTo assertThat of
test_case.modifiers: @Test @SuppressWarnings("null") public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testOf()
focal_class.declarator: DEFAULT_AGGREGATOR = new DefaultIdAggregator()
focal_class.modifier: private static final
focal_class.original_string: private static final IdAggregator DEFAULT_AGGREGATOR = new DefaultIdAggregator();
focal_class.type: IdAggregator
focal_class.var_name: DEFAULT_AGGREGATOR
focal_class.declarator: data_
focal_class.modifier: private final
focal_class.original_string: private final String[] data_;
focal_class.type: String[]
focal_class.var_name: data_
focal_class.declarator: aggregator_
focal_class.modifier: private final
focal_class.original_string: private final IdAggregator aggregator_;
focal_class.type: IdAggregator
focal_class.var_name: aggregator_
focal_class.file: utilities/src/main/java/ec/tstoolkit/utilities/LinearId.java
focal_class.identifier: LinearId
focal_class.interfaces: implements Id
focal_class.class_method_signature: LinearId.of(@NonNull Id id)
focal_class.full_signature: @NonNull public static LinearId of(@NonNull Id id)
focal_class.identifier: of
focal_class.modifiers: @NonNull public static
focal_class.parameters: (@NonNull Id id)
focal_class.return: LinearId
focal_class.signature: LinearId of(@NonNull Id id)
focal_class.class_method_signature: LinearId.LinearId()
focal_class.full_signature: public  LinearId()
focal_class.identifier: LinearId
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.signature:  LinearId()
focal_class.class_method_signature: LinearId.LinearId(String id)
focal_class.full_signature: public  LinearId(String id)
focal_class.identifier: LinearId
focal_class.modifiers: public
focal_class.parameters: (String id)
focal_class.signature:  LinearId(String id)
focal_class.class_method_signature: LinearId.LinearId(String parent, String tail)
focal_class.full_signature: public  LinearId(String parent, String tail)
focal_class.identifier: LinearId
focal_class.modifiers: public
focal_class.parameters: (String parent, String tail)
focal_class.signature:  LinearId(String parent, String tail)
focal_class.class_method_signature: LinearId.LinearId(String... id)
focal_class.full_signature: public  LinearId(String... id)
focal_class.identifier: LinearId
focal_class.modifiers: public
focal_class.parameters: (String... id)
focal_class.signature:  LinearId(String... id)
focal_class.class_method_signature: LinearId.LinearId(String[] ids, IdAggregator aggregator)
focal_class.full_signature: public  LinearId(String[] ids, IdAggregator aggregator)
focal_class.identifier: LinearId
focal_class.modifiers: public
focal_class.parameters: (String[] ids, IdAggregator aggregator)
focal_class.signature:  LinearId(String[] ids, IdAggregator aggregator)
focal_class.class_method_signature: LinearId.LinearId(String[] ids, IdAggregator aggregator, Void private_constructor)
focal_class.full_signature: private  LinearId(String[] ids, IdAggregator aggregator, Void private_constructor)
focal_class.identifier: LinearId
focal_class.modifiers: private
focal_class.parameters: (String[] ids, IdAggregator aggregator, Void private_constructor)
focal_class.signature:  LinearId(String[] ids, IdAggregator aggregator, Void private_constructor)
focal_class.class_method_signature: LinearId.get(int index)
focal_class.full_signature: @Override public String get(int index)
focal_class.identifier: get
focal_class.modifiers: @Override public
focal_class.parameters: (int index)
focal_class.return: String
focal_class.signature: String get(int index)
focal_class.class_method_signature: LinearId.extend(String tail)
focal_class.full_signature: @Override public LinearId extend(String tail)
focal_class.identifier: extend
focal_class.modifiers: @Override public
focal_class.parameters: (String tail)
focal_class.return: LinearId
focal_class.signature: LinearId extend(String tail)
focal_class.class_method_signature: LinearId.parent()
focal_class.full_signature: @Override public LinearId parent()
focal_class.identifier: parent
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: LinearId
focal_class.signature: LinearId parent()
focal_class.class_method_signature: LinearId.getCount()
focal_class.full_signature: @Override public int getCount()
focal_class.identifier: getCount
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int getCount()
focal_class.class_method_signature: LinearId.equals(Object obj)
focal_class.full_signature: @Override public boolean equals(Object obj)
focal_class.identifier: equals
focal_class.modifiers: @Override public
focal_class.parameters: (Object obj)
focal_class.return: boolean
focal_class.signature: boolean equals(Object obj)
focal_class.class_method_signature: LinearId.equals(LinearId other)
focal_class.full_signature: private boolean equals(LinearId other)
focal_class.identifier: equals
focal_class.modifiers: private
focal_class.parameters: (LinearId other)
focal_class.return: boolean
focal_class.signature: boolean equals(LinearId other)
focal_class.class_method_signature: LinearId.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: LinearId.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_class.class_method_signature: LinearId.toArray()
focal_class.full_signature: @Override public String[] toArray()
focal_class.identifier: toArray
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: String[]
focal_class.signature: String[] toArray()
focal_method.body: @NonNull
      public static LinearId of(@NonNull Id id) {
          if (id instanceof LinearId) {
              return (LinearId) id;
          }
          if (id.getCount() == 0) {
              return new LinearId(null, DEFAULT_AGGREGATOR, null);
          }
          return new LinearId(id.toArray(), DEFAULT_AGGREGATOR, null);
      }
focal_method.class_method_signature: LinearId.of(@NonNull Id id)
focal_method.full_signature: @NonNull public static LinearId of(@NonNull Id id)
focal_method.identifier: of
focal_method.invocations: getCount toArray
focal_method.modifiers: @NonNull public static
focal_method.parameters: (@NonNull Id id)
focal_method.return: LinearId
focal_method.signature: LinearId of(@NonNull Id id)