/// <inheritdoc /> public void AfterFindComponents() { foreach (Component component in _componentsFound) { foreach (SupportingTypesStrategy strategy in _supportingTypesStrategies) { foreach (string type in strategy.FindSupportingTypes(component)) { if (ComponentFinder.Container.GetComponentOfType(type) == null) { component.AddSupportingType(type); } } } foreach (CodeElement codeElement in component.CodeElements) { codeElement.Visibility = _typeRepository.FindVisibility(codeElement.Type); codeElement.Category = _typeRepository.FindCategory(codeElement.Type); FindUsesComponentAnnotations(component, codeElement.Type); FindUsesContainerAnnotations(component, codeElement.Type); FindUsesSoftwareSystemAnnotations(component, codeElement.Type); FindUsedByPersonAnnotations(component, codeElement.Type); FindUsedByContainerAnnotations(component, codeElement.Type); FindUsedBySoftwareSystemAnnotations(component, codeElement.Type); } } }
/// <inheritdoc /> public void AfterFindComponents() { // before finding dependencies, let's find the types that are used to implement each component foreach (Component component in _componentsFound) { foreach (CodeElement codeElement in component.CodeElements) { codeElement.Visibility = _typeRepository.FindVisibility(codeElement.Type); codeElement.Category = _typeRepository.FindCategory(codeElement.Type); } foreach (SupportingTypesStrategy strategy in _supportingTypesStrategies) { foreach (string type in strategy.FindSupportingTypes(component)) { if (ComponentFinder.Container.GetComponentOfType(type) == null) { CodeElement codeElement = component.AddSupportingType(type); codeElement.Visibility = _typeRepository.FindVisibility(type); codeElement.Category = _typeRepository.FindCategory(type); } } } } foreach (Component component in ComponentFinder.Container.Components) { if (component.Type != null) { AddEfferentDependencies(component, component.Type, new HashSet <string>()); // and repeat for the supporting types foreach (CodeElement codeElement in component.CodeElements) { AddEfferentDependencies(component, codeElement.Type, new HashSet <string>()); } } } }