public InvCatalogImpl generateProxyDsResolverCatalog ( ProxyDatasetHandler pdh ) { if ( state != 2 ) throw new IllegalStateException ( "Scan has not been performed." ) ; if ( ! proxyDsHandlers . containsValue ( pdh ) ) throw new IllegalArgumentException ( "Unknown ProxyDatasetHandler." ) ; // Create a skeleton catalog. InvCatalogImpl catalog = createSkeletonCatalog ( currentLevel ) ; InvDatasetImpl topDs = ( InvDatasetImpl ) catalog . getDatasets ( ) . get ( 0 ) ; // Find actual dataset in the list of atomic dataset InvCrawlablePairs. InvCrawlablePair actualDsInfo = pdh . getActualDataset ( atomicDsInfo ) ; if ( actualDsInfo == null ) return catalog ; // TODO Test this case in TestDataRootHandler. InvDatasetImpl actualInvDs = ( InvDatasetImpl ) actualDsInfo . getInvDataset ( ) ; actualInvDs . setName ( pdh . getActualDatasetName ( actualDsInfo , topDs . getName ( ) ) ) ; // Add current InvDataset to top dataset. catalog . removeDataset ( topDs ) ; catalog . addDataset ( actualInvDs ) ; // topDs.addDataset( actualInvDs ); // Finish catalog. catalog . finish ( ) ; // Add any top-level metadata. this . addTopLevelMetadata ( catalog , false ) ; return catalog ; }
Generate the catalog for a resolver request of the given ProxyDatasetHandler .