question: private void populateSubDomainHierarchyLazy ( Space space , DimensionIndex root , Axis axis , ArrayList < DimensionIndex > result , IDomain type ) throws InterruptedException , ScopeException { Object adapter = type . getAdapter ( Domain . class ) ; if ( adapter != null && adapter instanceof Domain ) { Domain target = ( Domain ) adapter ; logger . info ( "creating subdomain for domain " + target . toString ( ) + " in " + space . toString ( ) ) ; Axis source = axis ; try { DimensionIndex self = new DimensionIndex ( null , source ) ; subdomains . add ( self ) ; } catch ( DimensionStoreException e ) { logger . error ( "failed to create subdomain for domain " + target . toString ( ) + " in " + space . toString ( ) ) ; } } else { logger . error ( "Unable to resolve the sub-domain" ) ; if ( ! dimensionIndexInList ( result , axis ) ) { result . add ( DimensionIndexCreationUtils . createInvalidIndex ( root , axis , "Unable to resolve the sub-domain" ) ) ; } } }
target:  do not actually populate the subDomains, just create a DimensionIndex for the sub-domain link, and delay the actual creation of the content for latter