public ChainDataImpl getExternalChainData ( ) { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) { Tr . entry ( this , tc , "getExternalChainData" ) ; } // Create the list of the parents of the child data objects. ChannelData [ ] parents = new ChannelData [ this . channelDataArray . length ] ; for ( int i = 0 ; i < parents . length ; i ++ ) { parents [ i ] = ( ( ChildChannelDataImpl ) this . channelDataArray [ i ] ) . getParent ( ) ; } ChainDataImpl externalChainData = null ; try { externalChainData = new ChainDataImpl ( getName ( ) , getType ( ) , parents , null ) ; } catch ( IncoherentChainException e ) { // No FFDC Needed // This should never happen if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isDebugEnabled ( ) ) { Tr . debug ( this , tc , "Unable to build external version of chain data, " + getName ( ) ) ; } } if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) { Tr . exit ( this , tc , "getExternalChainData" ) ; } return externalChainData ; }
Create a cloned representation of this chain data which only includes references to parent channel data objects . It hides the children and their names .