/** * Initializes a new description repository from the given file. * * @param fileName * The name of the file to use. * @param projectContext * The project context to use. * @return The initialized description repository * * @throws IOException * If an I/O error occurs */ public static DescriptionRepository createFromFile(final String fileName, final IProjectContext projectContext) throws IOException { final Configuration configuration = new Configuration(); configuration.setProperty(CONFIG_PROPERTY_NAME_DESCRIPTION_FILE_NAME, fileName); return new DescriptionRepository(configuration, DescriptionRepository.readDataFromFile(fileName), projectContext); }
private void initialize() { final DescriptionRepository repository = (DescriptionRepository) this.getRepository(DESCRIPTION_REPOSITORY_PORT_NAME); this.decorationsMap = repository.getDescriptionMap(); }
private static DescriptionRepositoryData readDataFromFile(final String fileName) throws IOException { BufferedReader reader = null; try { reader = new BufferedReader(new InputStreamReader(new FileInputStream(fileName), ENCODING)); final ConcurrentMap<String, String> descriptionMap = new ConcurrentHashMap<String, String>(); while (true) { final String currentLine = reader.readLine(); if (currentLine == null) { break; } final String[] parts = DescriptionRepository.splitLine(currentLine); if (parts == null) { continue; } final String key = parts[0]; final String description = parts[1]; descriptionMap.put(key, description); } return new DescriptionRepositoryData(descriptionMap); } finally { if (reader != null) { reader.close(); } } }
private static DescriptionRepository prepareDescriptionRepository(final AnalysisController analysisController) { final ConcurrentMap<String, String> descriptions = new ConcurrentHashMap<String, String>(); descriptions.put(EXPECTED_ALLOCATION_COMPONENT_NAME_1, DESCRIPTION_1); descriptions.put(EXPECTED_ALLOCATION_COMPONENT_NAME_2, DESCRIPTION_2); final DescriptionRepositoryData repositoryData = new DescriptionRepositoryData(descriptions); return new DescriptionRepository(new Configuration(), repositoryData, analysisController); }
/** * Creates a new description repository using the given configuration. * * @param configuration * The configuration to use * @param projectContext * The project context for this plugin. * * @throws IOException * If an I/O error occurs during initialization */ public DescriptionRepository(final Configuration configuration, final IProjectContext projectContext) throws IOException { this(configuration, DescriptionRepository.readDataFromFile(configuration.getStringProperty(CONFIG_PROPERTY_NAME_DESCRIPTION_FILE_NAME)), projectContext); }
/** * * @param predecessor * @param descriptionsFileName * @param controller * @return * @throws IOException * @throws IllegalStateException * @throws AnalysisConfigurationException */ private static <P extends AbstractPlugin & IGraphOutputtingFilter<?>> DescriptionDecoratorFilter<?, ?, ?> createDescriptionDecoratorFilter( final P predecessor, final String descriptionsFileName, final AnalysisController controller) throws IOException, IllegalStateException, AnalysisConfigurationException { final DescriptionRepository descriptionRepository = DescriptionRepository.createFromFile(descriptionsFileName, controller); @SuppressWarnings("rawtypes") final DescriptionDecoratorFilter<?, ?, ?> descriptionFilter = new DescriptionDecoratorFilter( new Configuration(), controller); PerformAnalysis.connectGraphFilters(predecessor, descriptionFilter, controller); controller.connect(descriptionFilter, DescriptionDecoratorFilter.DESCRIPTION_REPOSITORY_PORT_NAME, descriptionRepository); return descriptionFilter; }