private boolean mark ( DatasetFilter filter , InvDatasetImpl ds ) { if ( ds instanceof InvCatalogRef ) { InvCatalogRef catRef = ( InvCatalogRef ) ds ; if ( ! catRef . isRead ( ) ) return false ; } // recurse into nested datasets first boolean allMarked = true ; for ( InvDataset nested : ds . getDatasets ( ) ) { allMarked &= mark ( filter , ( InvDatasetImpl ) nested ) ; } if ( ! allMarked ) return false ; if ( filter . accept ( ds ) >= 0 ) return false ; // mark for deletion ds . setMark ( true ) ; if ( debugFilter ) System . out . println ( " mark " + ds . getName ( ) ) ; return true ; }
unread CatalogRefs are always kept .