test_class.declarator: PROP_0 = "prop0"
test_class.modifier: public static final
test_class.original_string: public static final String PROP_0 = "prop0";
test_class.type: String
test_class.var_name: PROP_0
test_class.declarator: PROP_1 = "prop1"
test_class.modifier: public static final
test_class.original_string: public static final String PROP_1 = "prop1";
test_class.type: String
test_class.var_name: PROP_1
test_class.declarator: PROP_2 = "prop2"
test_class.modifier: public static final
test_class.original_string: public static final String PROP_2 = "prop2";
test_class.type: String
test_class.var_name: PROP_2
test_class.file: kafka/kafka-perf-tool/src/test/java/com/ameliant/tools/kafka/perftool/config/ConfigurableWithParentTest.java
test_class.identifier: ConfigurableWithParentTest
test_case.body: @Test
      public void testGetMergedConfig_noParent() {
          TestConfigurable child = new TestConfigurable();
          {
              Map<String, Object> config = new HashMap<>();
              config.put(PROP_1, 1);
              child.setConfig(config);
          }
          Map<String, Object> mergedConfig = child.getKafkaConfig();
          assertThat(mergedConfig.get(PROP_1), equalTo(1));
          assertThat(mergedConfig.get(PROP_2), nullValue());
      }
test_case.class_method_signature: ConfigurableWithParentTest.testGetMergedConfig_noParent()
test_case.full_signature: @Test public void testGetMergedConfig_noParent()
test_case.identifier: testGetMergedConfig_noParent
test_case.invocations: put setConfig getKafkaConfig assertThat get equalTo assertThat get nullValue
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testGetMergedConfig_noParent()
focal_class.declarator: parent
focal_class.modifier: private
focal_class.original_string: private Configurable parent;
focal_class.type: Configurable
focal_class.var_name: parent
focal_class.declarator: _mergedConfig
focal_class.modifier: @JsonIgnore
      private
focal_class.original_string: @JsonIgnore
      private Map<String, Object> _mergedConfig;
focal_class.type: Map<String, Object>
focal_class.var_name: _mergedConfig
focal_class.file: kafka/kafka-perf-tool/src/main/java/com/ameliant/tools/kafka/perftool/config/ConfigurableWithParent.java
focal_class.identifier: ConfigurableWithParent
focal_class.class_method_signature: ConfigurableWithParent.getParent()
focal_class.full_signature: public Configurable getParent()
focal_class.identifier: getParent
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Configurable
focal_class.signature: Configurable getParent()
focal_class.class_method_signature: ConfigurableWithParent.setParent(Configurable parent)
focal_class.full_signature: @JsonBackReference public void setParent(Configurable parent)
focal_class.identifier: setParent
focal_class.modifiers: @JsonBackReference public
focal_class.parameters: (Configurable parent)
focal_class.return: void
focal_class.signature: void setParent(Configurable parent)
focal_class.class_method_signature: ConfigurableWithParent.getKafkaConfig()
focal_class.full_signature: @Override public Map<String, Object> getKafkaConfig()
focal_class.identifier: getKafkaConfig
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: Map<String, Object>
focal_class.signature: Map<String, Object> getKafkaConfig()
focal_class.class_method_signature: ConfigurableWithParent.merge(Map<String, Object> parentConfig, Map<String, Object> childConfig)
focal_class.full_signature: private Map<String, Object> merge(Map<String, Object> parentConfig, Map<String, Object> childConfig)
focal_class.identifier: merge
focal_class.modifiers: private
focal_class.parameters: (Map<String, Object> parentConfig, Map<String, Object> childConfig)
focal_class.return: Map<String, Object>
focal_class.signature: Map<String, Object> merge(Map<String, Object> parentConfig, Map<String, Object> childConfig)
focal_class.class_method_signature: ConfigurableWithParent.getTopic()
focal_class.full_signature: @Override public String getTopic()
focal_class.identifier: getTopic
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String getTopic()
focal_class.superclass: extends Configurable
focal_method.body: @Override
      public Map<String, Object> getKafkaConfig() {
          Map<String, Object> config = getConfig();
          if (parent == null) {
              return config;
          }
  
          if (_mergedConfig == null) { // lazy init
              _mergedConfig = merge(parent.getKafkaConfig(), config);
          }
          return _mergedConfig;
      }
focal_method.class_method_signature: ConfigurableWithParent.getKafkaConfig()
focal_method.full_signature: @Override public Map<String, Object> getKafkaConfig()
focal_method.identifier: getKafkaConfig
focal_method.invocations: getConfig merge getKafkaConfig
focal_method.modifiers: @Override public
focal_method.parameters: ()
focal_method.return: Map<String, Object>
focal_method.signature: Map<String, Object> getKafkaConfig()