public void transferMetadata ( DatasetNode from , boolean parentsAlso ) { if ( parentsAlso ) { ThreddsMetadata inherit = getInheritableMetadata ( ) ; // make sure exists inheritMetadata ( from , inherit . getFlds ( ) ) ; } // local metadata for ( Map . Entry < String , Object > entry : from . getFldIterator ( ) ) { if ( parentsAlso && entry . getKey ( ) . equals ( Dataset . ThreddsMetadataInheritable ) ) continue ; // already did this if ( Dataset . listFlds . contains ( entry . getKey ( ) ) ) addToNewList ( flds , entry . getKey ( ) , entry . getValue ( ) ) ; else flds . put ( entry . getKey ( ) , entry . getValue ( ) ) ; } // tmi must be mutable, transfer if not ThreddsMetadata tmiOld = ( ThreddsMetadata ) get ( Dataset . ThreddsMetadataInheritable ) ; if ( tmiOld != null && tmiOld . isImmutable ( ) ) { ThreddsMetadata tmiNew = new ThreddsMetadata ( tmiOld ) ; flds . put ( Dataset . ThreddsMetadataInheritable , tmiNew ) ; } }
transfer all metadata optionally also inheritable metadata from parents