test_class.declarator: parser
test_class.modifier: private
test_class.original_string: private BuildPropertiesParserImpl parser;
test_class.type: BuildPropertiesParserImpl
test_class.var_name: parser
test_class.declarator: legacySupport
test_class.modifier: private
test_class.original_string: private LegacySupport legacySupport;
test_class.type: LegacySupport
test_class.var_name: legacySupport
test_class.declarator: mavenSession
test_class.modifier: private
test_class.original_string: private MavenSession mavenSession;
test_class.type: MavenSession
test_class.var_name: mavenSession
test_class.declarator: project1
test_class.modifier: private
test_class.original_string: private MavenProject project1;
test_class.type: MavenProject
test_class.var_name: project1
test_class.declarator: project2
test_class.modifier: private
test_class.original_string: private MavenProject project2;
test_class.type: MavenProject
test_class.var_name: project2
test_class.declarator: logger
test_class.modifier: private
test_class.original_string: private Logger logger;
test_class.type: Logger
test_class.var_name: logger
test_class.file: tycho-core/src/test/java/org/eclipse/tycho/core/osgitools/BuildPropertiesParserImplTest.java
test_class.identifier: BuildPropertiesParserImplTest
test_case.body: @Test
      public void testInterpolateWithABaseDirThatsNotPartOfTheSessionsProjects() {
          Properties props = new Properties();
          props.put("key", "value");
          parser.interpolate(props, new File("/bathToSomeProjectThatsNotPartOfTheSessionProjects"));
          verify(logger, times(1)).warn(anyString());
      }
test_case.class_method_signature: BuildPropertiesParserImplTest.testInterpolateWithABaseDirThatsNotPartOfTheSessionsProjects()
test_case.full_signature: @Test public void testInterpolateWithABaseDirThatsNotPartOfTheSessionsProjects()
test_case.identifier: testInterpolateWithABaseDirThatsNotPartOfTheSessionsProjects
test_case.invocations: put interpolate warn verify times anyString
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testInterpolateWithABaseDirThatsNotPartOfTheSessionsProjects()
focal_class.declarator: legacySupport
focal_class.modifier: @Requirement
      private
focal_class.original_string: @Requirement
      private LegacySupport legacySupport;
focal_class.type: LegacySupport
focal_class.var_name: legacySupport
focal_class.declarator: logger
focal_class.modifier: @Requirement
      private
focal_class.original_string: @Requirement
      private Logger logger;
focal_class.type: Logger
focal_class.var_name: logger
focal_class.declarator: cache = new HashMap<>()
focal_class.modifier: private final
focal_class.original_string: private final Map<String, BuildPropertiesImpl> cache = new HashMap<>();
focal_class.type: Map<String, BuildPropertiesImpl>
focal_class.var_name: cache
focal_class.file: tycho-core/src/main/java/org/eclipse/tycho/core/osgitools/BuildPropertiesParserImpl.java
focal_class.identifier: BuildPropertiesParserImpl
focal_class.interfaces: implements BuildPropertiesParser, Disposable
focal_class.class_method_signature: BuildPropertiesParserImpl.BuildPropertiesParserImpl()
focal_class.full_signature: public  BuildPropertiesParserImpl()
focal_class.identifier: BuildPropertiesParserImpl
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.signature:  BuildPropertiesParserImpl()
focal_class.class_method_signature: BuildPropertiesParserImpl.BuildPropertiesParserImpl(LegacySupport legacySupport, Logger logger)
focal_class.full_signature: protected  BuildPropertiesParserImpl(LegacySupport legacySupport, Logger logger)
focal_class.identifier: BuildPropertiesParserImpl
focal_class.modifiers: protected
focal_class.parameters: (LegacySupport legacySupport, Logger logger)
focal_class.signature:  BuildPropertiesParserImpl(LegacySupport legacySupport, Logger logger)
focal_class.class_method_signature: BuildPropertiesParserImpl.parse(File baseDir)
focal_class.full_signature: @Override public BuildProperties parse(File baseDir)
focal_class.identifier: parse
focal_class.modifiers: @Override public
focal_class.parameters: (File baseDir)
focal_class.return: BuildProperties
focal_class.signature: BuildProperties parse(File baseDir)
focal_class.class_method_signature: BuildPropertiesParserImpl.dispose()
focal_class.full_signature: @Override public void dispose()
focal_class.identifier: dispose
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void dispose()
focal_class.class_method_signature: BuildPropertiesParserImpl.readProperties(File propsFile)
focal_class.full_signature: protected static Properties readProperties(File propsFile)
focal_class.identifier: readProperties
focal_class.modifiers: protected static
focal_class.parameters: (File propsFile)
focal_class.return: Properties
focal_class.signature: Properties readProperties(File propsFile)
focal_class.class_method_signature: BuildPropertiesParserImpl.interpolate(Properties properties, File baseDir)
focal_class.full_signature: protected void interpolate(Properties properties, File baseDir)
focal_class.identifier: interpolate
focal_class.modifiers: protected
focal_class.parameters: (Properties properties, File baseDir)
focal_class.return: void
focal_class.signature: void interpolate(Properties properties, File baseDir)
focal_method.body: protected void interpolate(Properties properties, File baseDir) {
          if (properties.isEmpty()) {
              return;
          }
          MavenSession mavenSession = legacySupport.getSession();
          if (mavenSession == null) {
              logger.warn("No maven session available, values in the build.properties will not be interpolated!");
              return;
          }
          // find the maven project for the currently used basedir, so that the correct maven project is used by the interpolator.
          // if no project could be found, it does not make sense to interpolate the properties
          MavenProject mavenProject = MavenSessionUtils.getMavenProject(mavenSession, baseDir);
          if (mavenProject == null) {
              logger.warn("No maven project found for baseDir '" + baseDir.getAbsolutePath()
                      + "', values in the build.properties will not be interpolated!");
              return;
          }
          TychoInterpolator interpolator = new TychoInterpolator(mavenSession, mavenProject);
  
          for (Entry<Object, Object> entry : properties.entrySet()) {
              entry.setValue(interpolator.interpolate((String) entry.getValue()));
          }
      }
focal_method.class_method_signature: BuildPropertiesParserImpl.interpolate(Properties properties, File baseDir)
focal_method.full_signature: protected void interpolate(Properties properties, File baseDir)
focal_method.identifier: interpolate
focal_method.invocations: isEmpty getSession warn getMavenProject warn getAbsolutePath entrySet setValue interpolate getValue
focal_method.modifiers: protected
focal_method.parameters: (Properties properties, File baseDir)
focal_method.return: void
focal_method.signature: void interpolate(Properties properties, File baseDir)