private void RegisterRelation(TypeReference providerType, TypeReference consumerType, string type, string context) { if ((providerType != null) && (consumerType != null)) { string consumerName = consumerType.GetElementType().ToString(); string providerName = providerType.GetElementType().ToString(); if (!providerType.ContainsGenericParameter && !Ignore(providerName)) { _model.AddRelation(consumerName, providerName, type, 1, context); UpdateRelationProgress(false); } GenericInstanceType providerGenericType = providerType as GenericInstanceType; if (providerGenericType != null) { foreach (TypeReference providerGenericArgumentType in providerGenericType.GenericArguments) { RegisterRelation(providerGenericArgumentType, consumerType, type, context); } } } }
private void RegisterRelation(IDsiElement consumer, IDsiElement provider) { if (consumer != null && provider != null) { string type = "transitive"; _model.AddRelation(consumer.Name, provider.Name, type, 1, "transformer"); string description = "consumer=" + consumer.Name + " provider=" + provider.Name; AnalyzerLogger.LogTransformation(ActionName, description); } }
private void RegisterRelation(string includedFile, string consumerName) { string providerName = ExtractSourceFileUniqueName(includedFile); _model.AddRelation(consumerName, providerName, "include", 1, "analyze relations"); }
private void RegisterDirectIncludeRelations() { foreach (ProjectFile visualStudioProject in _solutionFile.Projects) { foreach (SourceFile sourceFile in visualStudioProject.SourceFiles) { foreach (string includedFile in sourceFile.Includes) { Logger.LogInfo("Include relation registered: " + sourceFile.Name + " -> " + includedFile); string consumerName = null; switch (_analyzerSettings.ViewMode) { case ViewMode.LogicalView: consumerName = GetLogicalName(_solutionFile, visualStudioProject, sourceFile); break; case ViewMode.PhysicalView: consumerName = GetPhysicalName(sourceFile); break; default: Logger.LogError("Unknown view mode"); break; } if (consumerName != null) { if (IsSystemInclude(includedFile)) { // System includes are ignored } else if (IsInterfaceInclude(includedFile)) { // Interface includes must be clones of includes files in other visual studio projects string resolvedIncludedFile = ResolveClonedFile(includedFile, sourceFile); if (resolvedIncludedFile != null) { RegisterIncludeRelation(consumerName, resolvedIncludedFile); } else { _model.SkipRelation(consumerName, includedFile, "include", "interface include file not be resolved"); } } else if (IsExternalInclude(includedFile)) { // External includes can be clones of includes files in other visual studio projects or // reference external software string resolvedIncludedFile = ResolveClonedFile(includedFile, sourceFile); if (resolvedIncludedFile != null) { RegisterIncludeRelation(consumerName, resolvedIncludedFile); } else { SourceFile includedSourceFile = new SourceFile(includedFile); string providerName = GetExternalName(includedSourceFile.SourceFileInfo); string type = includedSourceFile.FileType; _model.AddElement(providerName, type, includedFile); _model.AddRelation(consumerName, providerName, "include", 1, "include file is an external include"); } } else { RegisterIncludeRelation(consumerName, includedFile); } } } } } }
private void RegisterRelation(string consumerName, string providerName) { _model.AddElement(consumerName, "", null); _model.AddElement(providerName, "", null); _model.AddRelation(consumerName, providerName, "dependency", 1, "dot file"); }
private void RegisterRelation(EA.Connector connector, string consumerName, string providerName) { _model.AddRelation(consumerName, providerName, connector.Type, 1, "model"); _relationCount++; UpdateRelationProgress(false); }