Beispiel #1
0
        /// <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);
                }
            }
        }
Beispiel #2
0
        /// <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>());
                    }
                }
            }
        }