code: public List<VCProject> getParsedProjects( String platform, String configuration ) 
              throws IOException, ParserConfigurationException, ParseException, SAXException
      {
          String key = platform + "-" + configuration;
          List<VCProject> vcProjects = parsedVCProjects.get( key );
          
          if ( vcProjects == null )
          {
              if ( isSolution ) 
              {
                  vcProjects = parseVCSolution( inputFile, platform, configuration );
              }
              else 
              {
                  vcProjects = Arrays.asList( parseStandaloneVCProject( inputFile, platform, configuration ) );
              }
              
              parsedVCProjects.put( key, vcProjects );
          }
  
          return vcProjects;
      }
docs: Return a {@link List} of {@link VCProject} beans for a given platform/configuration pair. Each {@link VCProject}
  bean holds properties for a parsed Visual C++ project.
  @param platform the platform to use for parsing (for example, {@code Win32}, {@code x64})
  @param configuration the configuration to use for parsing (for example,{@code Release}, {@code Debug})
  @return a {@link List} of {@link VCProject}s that hold properties for parsed Visual C++ projects
  @throws IOException if the input file does not exists or cannot be accessed, see
  {@link VCProjectHolder#VCProjectHolder(inputFile, isSolution)}
  @throws ParserConfigurationException  if a parser cannot be created which satisfies the requested configuration
  @throws ParseException if an error occurs during parsing
  @throws SAXException if a SAX parsing error occurs