/// <summary> /// Gets a Dictionary of <see cref="IIdentifiableMutableObject"/> alongside any cross references they declare that could not be found in the set of /// <paramref name="beans"/> /// provided, and the <paramref name="retrievalManager"/> (if given). /// <p/> /// <b>NOTE :</b>An empty Map is returned if all cross references are present. /// </summary> /// <param name="beans"> /// - the objects to return the Map of missing references for /// </param> /// <param name="numberLevelsDeep"> /// references, an argument of 0 (zero) implies there is no limit, and the resolver engine will continue re-cursing until it has found every directly and indirectly referenced /// </param> /// <param name="retrievalManager"> /// - Used to resolve the structure references. Can be null, if supplied this is used to resolve any references that do not exist in the supplied beans /// </param> /// <returns> /// Map of IIdentifiableMutableObject with a Set of CrossReferences that could not be resolved for the IIdentifiableMutableObject - an empty Map is returned if all cross references are present /// </returns> public MaintainableReferenceDictionary GetMissingCrossReferences( IMutableObjects beans, int numberLevelsDeep, Func <IStructureReference, IMaintainableMutableObject> retrievalManager) { var missingReferences = new MaintainableReferenceDictionary(); this.ResolveReferencesInternal(beans, numberLevelsDeep, retrievalManager, missingReferences); return(missingReferences); }
/// <summary> /// Gets a Dictionary of <see cref="IIdentifiableMutableObject"/> alongside any cross references they declare that could not be found in the set of /// <paramref name="beans"/> /// provided, and the <paramref name="retrievalManager"/> (if given). /// <p/> /// <b>NOTE :</b>An empty Map is returned if all cross references are present. /// </summary> /// <param name="beans"> /// - the objects to return the Map of missing references for /// </param> /// <param name="numberLevelsDeep"> /// references, an argument of 0 (zero) implies there is no limit, and the resolver engine will continue re-cursing until it has found every directly and indirectly referenced /// </param> /// <param name="retrievalManager"> /// - Used to resolve the structure references. Can be null, if supplied this is used to resolve any references that do not exist in the supplied beans /// </param> /// <returns> /// Map of IIdentifiableMutableObject with a Set of CrossReferences that could not be resolved for the IIdentifiableMutableObject - an empty Map is returned if all cross references are present /// </returns> public MaintainableReferenceDictionary GetMissingCrossReferences( IMutableObjects beans, int numberLevelsDeep, Func<IStructureReference, IMaintainableMutableObject> retrievalManager) { var missingReferences = new MaintainableReferenceDictionary(); this.ResolveReferencesInternal(beans, numberLevelsDeep, retrievalManager, missingReferences); return missingReferences; }