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 .