test_class.declarator: PNAME = "SPREADSHEET"
test_class.modifier: static final
test_class.original_string: static final String PNAME = "SPREADSHEET", VERSION = "20111209",
              K1 = "file", V1 = "c:\\data.txt",
              K2 = "locale", V2 = "fr_BE",
              K3 = "datePattern", V3 = "yyyy-MM-dd";
test_class.type: String
test_class.var_name: PNAME
test_class.declarator: P0 = ImmutableSortedMap.of()
test_class.modifier: static final
test_class.original_string: static final ImmutableSortedMap<String, String> P0 = ImmutableSortedMap.of();
test_class.type: ImmutableSortedMap<String, String>
test_class.var_name: P0
test_class.declarator: P1 = ImmutableSortedMap.of(K1, V1)
test_class.modifier: static final
test_class.original_string: static final ImmutableSortedMap<String, String> P1 = ImmutableSortedMap.of(K1, V1);
test_class.type: ImmutableSortedMap<String, String>
test_class.var_name: P1
test_class.declarator: P3 = ImmutableSortedMap.of(K1, V1, K2, V2, K3, V3)
test_class.modifier: static final
test_class.original_string: static final ImmutableSortedMap<String, String> P3 = ImmutableSortedMap.of(K1, V1, K2, V2, K3, V3);
test_class.type: ImmutableSortedMap<String, String>
test_class.var_name: P3
test_class.declarator: ZERO = new DataSource(PNAME, VERSION, P0)
test_class.modifier: static final
test_class.original_string: static final DataSource ZERO = new DataSource(PNAME, VERSION, P0);
test_class.type: DataSource
test_class.var_name: ZERO
test_class.declarator: ONE = new DataSource(PNAME, VERSION, P1)
test_class.modifier: static final
test_class.original_string: static final DataSource ONE = new DataSource(PNAME, VERSION, P1);
test_class.type: DataSource
test_class.var_name: ONE
test_class.file: jtss/src/test/java/ec/tss/tsproviders/DataSourceTest.java
test_class.identifier: DataSourceTest
test_case.body: @Test
      public void testBuilder() {
          assertThat(ZERO.toBuilder().build()).isEqualTo(ZERO);
          assertThat(ONE.toBuilder().build()).isEqualTo(ONE);
  
          DataSource.Builder builder = newSample().toBuilder();
          assertThat(builder.build())
                  .isEqualTo(newSample())
                  .isNotSameAs(newSample())
                  .isEqualTo(builder.build())
                  .isNotSameAs(builder.build());
          assertThat(builder.put(K1, "hello").build().get(K1)).isEqualTo("hello");
          assertThat(builder.put(K1, true).build().get(K1)).isEqualTo("true");
          assertThat(builder.put(K1, 123).build().get(K1)).isEqualTo("123");
          assertThat(builder.clear().build().getParams()).isEmpty();
      }
test_case.class_method_signature: DataSourceTest.testBuilder()
test_case.full_signature: @Test public void testBuilder()
test_case.identifier: testBuilder
test_case.invocations: isEqualTo assertThat build toBuilder isEqualTo assertThat build toBuilder toBuilder newSample isNotSameAs isEqualTo isNotSameAs isEqualTo assertThat build newSample newSample build build isEqualTo assertThat get build put isEqualTo assertThat get build put isEqualTo assertThat get build put isEmpty assertThat getParams build clear
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testBuilder()
focal_class.declarator: providerName
focal_class.modifier: private final
focal_class.original_string: private final String providerName;
focal_class.type: String
focal_class.var_name: providerName
focal_class.declarator: version
focal_class.modifier: private final
focal_class.original_string: private final String version;
focal_class.type: String
focal_class.var_name: version
focal_class.declarator: params
focal_class.modifier: private final
focal_class.original_string: private final ImmutableSortedMap<String, String> params;
focal_class.type: ImmutableSortedMap<String, String>
focal_class.var_name: params
focal_class.declarator: XML = ThreadLocal.withInitial(Xml::new)
focal_class.modifier: private static final
focal_class.original_string: private static final ThreadLocal<Xml> XML = ThreadLocal.withInitial(Xml::new);
focal_class.type: ThreadLocal<Xml>
focal_class.var_name: XML
focal_class.declarator: SCHEME = "demetra"
focal_class.modifier: private static final
focal_class.original_string: private static final String SCHEME = "demetra";
focal_class.type: String
focal_class.var_name: SCHEME
focal_class.declarator: HOST = "tsprovider"
focal_class.modifier: private static final
focal_class.original_string: private static final String HOST = "tsprovider";
focal_class.type: String
focal_class.var_name: HOST
focal_class.declarator: URI_PARSER = new FailSafeParser<DataSource>() {
          @Override
          protected DataSource doParse(CharSequence input) throws Exception {
              URI uri = new URI(input.toString());
              if (!SCHEME.equals(uri.getScheme()) || !HOST.equals(uri.getHost())) {
                  return null;
              }
              String[] path = UriBuilder.getPathArray(uri, 2);
              if (path == null) {
                  return null;
              }
              Map<String, String> query = UriBuilder.getQueryMap(uri);
              if (query == null) {
                  return null;
              }
              return new DataSource(path[0], path[1], Util.toImmutable(query));
          }
      }
focal_class.modifier: private static final
focal_class.original_string: private static final Parsers.Parser<DataSource> URI_PARSER = new FailSafeParser<DataSource>() {
          @Override
          protected DataSource doParse(CharSequence input) throws Exception {
              URI uri = new URI(input.toString());
              if (!SCHEME.equals(uri.getScheme()) || !HOST.equals(uri.getHost())) {
                  return null;
              }
              String[] path = UriBuilder.getPathArray(uri, 2);
              if (path == null) {
                  return null;
              }
              Map<String, String> query = UriBuilder.getQueryMap(uri);
              if (query == null) {
                  return null;
              }
              return new DataSource(path[0], path[1], Util.toImmutable(query));
          }
      };
focal_class.type: Parsers.Parser<DataSource>
focal_class.var_name: URI_PARSER
focal_class.declarator: URI_FORMATTER = Formatters.wrap(DataSource::formatAsUri)
focal_class.modifier: private static final
focal_class.original_string: private static final Formatters.Formatter<DataSource> URI_FORMATTER = Formatters.wrap(DataSource::formatAsUri);
focal_class.type: Formatters.Formatter<DataSource>
focal_class.var_name: URI_FORMATTER
focal_class.file: jtss/src/main/java/ec/tss/tsproviders/DataSource.java
focal_class.identifier: DataSource
focal_class.interfaces: implements IConfig, Serializable
focal_class.class_method_signature: DataSource.DataSource(@NonNull String providerName, @NonNull String version, @NonNull ImmutableSortedMap<String, String> params)
focal_class.full_signature: @VisibleForTesting  DataSource(@NonNull String providerName, @NonNull String version, @NonNull ImmutableSortedMap<String, String> params)
focal_class.identifier: DataSource
focal_class.modifiers: @VisibleForTesting
focal_class.parameters: (@NonNull String providerName, @NonNull String version, @NonNull ImmutableSortedMap<String, String> params)
focal_class.signature:  DataSource(@NonNull String providerName, @NonNull String version, @NonNull ImmutableSortedMap<String, String> params)
focal_class.class_method_signature: DataSource.getProviderName()
focal_class.full_signature: @NonNull public String getProviderName()
focal_class.identifier: getProviderName
focal_class.modifiers: @NonNull public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String getProviderName()
focal_class.class_method_signature: DataSource.getVersion()
focal_class.full_signature: @NonNull public String getVersion()
focal_class.identifier: getVersion
focal_class.modifiers: @NonNull public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String getVersion()
focal_class.class_method_signature: DataSource.getParams()
focal_class.full_signature: @Override public SortedMap<String, String> getParams()
focal_class.identifier: getParams
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: SortedMap<String, String>
focal_class.signature: SortedMap<String, String> getParams()
focal_class.class_method_signature: DataSource.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: DataSource.equals(DataSource that)
focal_class.full_signature: private boolean equals(DataSource that)
focal_class.identifier: equals
focal_class.modifiers: private
focal_class.parameters: (DataSource that)
focal_class.return: boolean
focal_class.signature: boolean equals(DataSource that)
focal_class.class_method_signature: DataSource.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: DataSource.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: DataSource.toBuilder()
focal_class.full_signature: @NonNull public Builder toBuilder()
focal_class.identifier: toBuilder
focal_class.modifiers: @NonNull public
focal_class.parameters: ()
focal_class.return: Builder
focal_class.signature: Builder toBuilder()
focal_class.class_method_signature: DataSource.toBean()
focal_class.full_signature: @VisibleForTesting DataSourceBean toBean()
focal_class.identifier: toBean
focal_class.modifiers: @VisibleForTesting
focal_class.parameters: ()
focal_class.return: DataSourceBean
focal_class.signature: DataSourceBean toBean()
focal_class.class_method_signature: DataSource.of(@NonNull String providerName, @NonNull String version)
focal_class.full_signature: @NonNull public static DataSource of(@NonNull String providerName, @NonNull String version)
focal_class.identifier: of
focal_class.modifiers: @NonNull public static
focal_class.parameters: (@NonNull String providerName, @NonNull String version)
focal_class.return: DataSource
focal_class.signature: DataSource of(@NonNull String providerName, @NonNull String version)
focal_class.class_method_signature: DataSource.of(@NonNull String providerName, @NonNull String version, @NonNull String key, @NonNull String value)
focal_class.full_signature: @NonNull public static DataSource of(@NonNull String providerName, @NonNull String version, @NonNull String key, @NonNull String value)
focal_class.identifier: of
focal_class.modifiers: @NonNull public static
focal_class.parameters: (@NonNull String providerName, @NonNull String version, @NonNull String key, @NonNull String value)
focal_class.return: DataSource
focal_class.signature: DataSource of(@NonNull String providerName, @NonNull String version, @NonNull String key, @NonNull String value)
focal_class.class_method_signature: DataSource.deepCopyOf(@NonNull String providerName, @NonNull String version, @NonNull Map<String, String> params)
focal_class.full_signature: @NonNull public static DataSource deepCopyOf(@NonNull String providerName, @NonNull String version, @NonNull Map<String, String> params)
focal_class.identifier: deepCopyOf
focal_class.modifiers: @NonNull public static
focal_class.parameters: (@NonNull String providerName, @NonNull String version, @NonNull Map<String, String> params)
focal_class.return: DataSource
focal_class.signature: DataSource deepCopyOf(@NonNull String providerName, @NonNull String version, @NonNull Map<String, String> params)
focal_class.class_method_signature: DataSource.builder(@NonNull String providerName, @NonNull String version)
focal_class.full_signature: @NonNull public static Builder builder(@NonNull String providerName, @NonNull String version)
focal_class.identifier: builder
focal_class.modifiers: @NonNull public static
focal_class.parameters: (@NonNull String providerName, @NonNull String version)
focal_class.return: Builder
focal_class.signature: Builder builder(@NonNull String providerName, @NonNull String version)
focal_class.class_method_signature: DataSource.builder(@NonNull DataSource dataSource)
focal_class.full_signature: @Deprecated @NonNull public static Builder builder(@NonNull DataSource dataSource)
focal_class.identifier: builder
focal_class.modifiers: @Deprecated @NonNull public static
focal_class.parameters: (@NonNull DataSource dataSource)
focal_class.return: Builder
focal_class.signature: Builder builder(@NonNull DataSource dataSource)
focal_class.class_method_signature: DataSource.xmlFormatter(boolean formattedOutput)
focal_class.full_signature: public static Formatters.@NonNull Formatter<DataSource> xmlFormatter(boolean formattedOutput)
focal_class.identifier: xmlFormatter
focal_class.modifiers: public static
focal_class.parameters: (boolean formattedOutput)
focal_class.return: Formatters.@NonNull Formatter<DataSource>
focal_class.signature: Formatters.@NonNull Formatter<DataSource> xmlFormatter(boolean formattedOutput)
focal_class.class_method_signature: DataSource.xmlParser()
focal_class.full_signature: public static Parsers.@NonNull Parser<DataSource> xmlParser()
focal_class.identifier: xmlParser
focal_class.modifiers: public static
focal_class.parameters: ()
focal_class.return: Parsers.@NonNull Parser<DataSource>
focal_class.signature: Parsers.@NonNull Parser<DataSource> xmlParser()
focal_class.class_method_signature: DataSource.uriFormatter()
focal_class.full_signature: public static Formatters.@NonNull Formatter<DataSource> uriFormatter()
focal_class.identifier: uriFormatter
focal_class.modifiers: public static
focal_class.parameters: ()
focal_class.return: Formatters.@NonNull Formatter<DataSource>
focal_class.signature: Formatters.@NonNull Formatter<DataSource> uriFormatter()
focal_class.class_method_signature: DataSource.uriParser()
focal_class.full_signature: public static Parsers.@NonNull Parser<DataSource> uriParser()
focal_class.identifier: uriParser
focal_class.modifiers: public static
focal_class.parameters: ()
focal_class.return: Parsers.@NonNull Parser<DataSource>
focal_class.signature: Parsers.@NonNull Parser<DataSource> uriParser()
focal_class.class_method_signature: DataSource.formatAsUri(DataSource value)
focal_class.full_signature: private static CharSequence formatAsUri(DataSource value)
focal_class.identifier: formatAsUri
focal_class.modifiers: private static
focal_class.parameters: (DataSource value)
focal_class.return: CharSequence
focal_class.signature: CharSequence formatAsUri(DataSource value)
focal_method.body: @NonNull
      public static Builder builder(@NonNull String providerName, @NonNull String version) {
          Objects.requireNonNull(providerName, "providerName");
          Objects.requireNonNull(version, "version");
          return new Builder(providerName, version);
      }
focal_method.class_method_signature: DataSource.builder(@NonNull String providerName, @NonNull String version)
focal_method.full_signature: @NonNull public static Builder builder(@NonNull String providerName, @NonNull String version)
focal_method.identifier: builder
focal_method.invocations: requireNonNull requireNonNull
focal_method.modifiers: @NonNull public static
focal_method.parameters: (@NonNull String providerName, @NonNull String version)
focal_method.return: Builder
focal_method.signature: Builder builder(@NonNull String providerName, @NonNull String version)