private void collectFeatureInfos(Map<String, ProductInfo> productInfos,
                                     Map<String, FeatureInfo> featuresBySymbolicName) {
        ManifestFileProcessor manifestFileProcessor = new ManifestFileProcessor();
        for (Map.Entry<String, Map<String, ProvisioningFeatureDefinition>> productEntry : manifestFileProcessor.getFeatureDefinitionsByProduct().entrySet()) {
            String productName = productEntry.getKey();
            Map<String, ProvisioningFeatureDefinition> features = productEntry.getValue();

            ContentBasedLocalBundleRepository repository;
            if (productName.equals(ManifestFileProcessor.CORE_PRODUCT_NAME)) {
                repository = BundleRepositoryRegistry.getInstallBundleRepository();
            } else if (productName.equals(ManifestFileProcessor.USR_PRODUCT_EXT_NAME)) {
                repository = BundleRepositoryRegistry.getUsrInstallBundleRepository();
            } else {
                repository = manifestFileProcessor.getBundleRepository(productName, null);
            }

            ProductInfo productInfo = new ProductInfo(repository);
            productInfos.put(productName, productInfo);

            for (Map.Entry<String, ProvisioningFeatureDefinition> featureEntry : features.entrySet()) {
                String featureSymbolicName = featureEntry.getKey();
                ProvisioningFeatureDefinition feature = featureEntry.getValue();

                FeatureInfo featureInfo = new FeatureInfo(productInfo, feature);
                featuresBySymbolicName.put(featureSymbolicName, featureInfo);

                String shortName = feature.getIbmShortName();
                if (shortName != null) {
                    productInfo.featuresByShortName.put(shortName, featureInfo);
                }
            }
        }
    }
private void collectFeatureInfos ( Map < String , ProductInfo > productInfos , Map < String , FeatureInfo > featuresBySymbolicName ) { ManifestFileProcessor manifestFileProcessor = new ManifestFileProcessor ( ) ; for ( Map . Entry < String , Map < String , ProvisioningFeatureDefinition > > productEntry : manifestFileProcessor . getFeatureDefinitionsByProduct ( ) . entrySet ( ) ) { String productName = productEntry . getKey ( ) ; Map < String , ProvisioningFeatureDefinition > features = productEntry . getValue ( ) ; ContentBasedLocalBundleRepository repository ; if ( productName . equals ( ManifestFileProcessor . CORE_PRODUCT_NAME ) ) { repository = BundleRepositoryRegistry . getInstallBundleRepository ( ) ; } else if ( productName . equals ( ManifestFileProcessor . USR_PRODUCT_EXT_NAME ) ) { repository = BundleRepositoryRegistry . getUsrInstallBundleRepository ( ) ; } else { repository = manifestFileProcessor . getBundleRepository ( productName , null ) ; } ProductInfo productInfo = new ProductInfo ( repository ) ; productInfos . put ( productName , productInfo ) ; for ( Map . Entry < String , ProvisioningFeatureDefinition > featureEntry : features . entrySet ( ) ) { String featureSymbolicName = featureEntry . getKey ( ) ; ProvisioningFeatureDefinition feature = featureEntry . getValue ( ) ; FeatureInfo featureInfo = new FeatureInfo ( productInfo , feature ) ; featuresBySymbolicName . put ( featureSymbolicName , featureInfo ) ; String shortName = feature . getIbmShortName ( ) ; if ( shortName != null ) { productInfo . featuresByShortName . put ( shortName , featureInfo ) ; } } } }
Collect information about all installed products and their features.

@param productInfos result parameter of product name (prefix) to info
@param featuresBySymbolicName result parameter of symbolic name to info