private List <Issue> ApplyRule(CaDETMember m) { List <Issue> issues = _rules.Select(r => r.Validate(m.Name, m.Metrics)).ToList(); issues.AddRange(_dynamicRules.Select(r => r.Validate(m.Name, m.Metrics)).ToList()); return(issues); }
internal CSharpCaDETMemberBuilder(MemberDeclarationSyntax cSharpMember, SemanticModel semanticModel) { _member = CreateMemberBasedOnType(cSharpMember); _cSharpMember = cSharpMember; _semanticModel = semanticModel; _metricCalculator = new CaDETMemberMetricCalculator(); }
private int CountOwnFieldAndAccessorAccessed(CaDETClass parsedClass, CaDETMember method) { int counter = method.AccessedFields.Count(field => Enumerable.Contains(parsedClass.Fields, field)); counter += method.AccessedAccessors.Count(accessor => Enumerable.Contains(parsedClass.Members, accessor)); return(counter); }
private List <string> GetMemberNames(CaDETMember member) { var memberNames = new List <string> { member.Name }; memberNames.AddRange(member.Variables.Select(v => v.Name)); memberNames.AddRange(member.Params.Select(p => p.Name)); return(memberNames); }
private List <CaDETVariable> LinkMethodVariables(List <CaDETClass> classes, CaDETMember member) { List <CaDETVariable> linkedVariables = new List <CaDETVariable>(); foreach (var variable in member.Variables) { var variableTypes = GetTypes(classes, variable.Type); if (variableTypes != null) { variable.Type.LinkedTypes = variableTypes; } linkedVariables.Add(variable); } return(linkedVariables); }
public Dictionary <CaDETMetric, double> GetMetricsForCodeSnippet(string snippetId) { CaDETClass classInstance = Classes.FirstOrDefault(c => c.FullName.Equals(snippetId)); if (classInstance != null) { return(classInstance.Metrics); } CaDETMember memberInstance = null; foreach (var cl in Classes) { memberInstance = cl.Members.FirstOrDefault(m => m.ToString().Equals(snippetId)); if (memberInstance != null) { break; } } return(memberInstance.Metrics); }
internal Dictionary <CaDETMetric, double> CalculateMemberMetrics(MemberDeclarationSyntax member, CaDETMember method) { return(new Dictionary <CaDETMetric, double> { [CaDETMetric.CYCLO] = CalculateCyclomaticComplexity(member), [CaDETMetric.MLOC] = CountLinesOfText(member.ToString()), [CaDETMetric.MELOC] = GetEffectiveLinesOfCode(member), [CaDETMetric.NOP] = GetNumberOfParameters(method), [CaDETMetric.NOLV] = GetNumberOfLocalVariables(member), [CaDETMetric.NOTC] = CountTryCatchBlocks(member), [CaDETMetric.MNOL] = CountLoops(member), [CaDETMetric.MNOR] = CountReturnStatements(member), [CaDETMetric.MNOC] = CountComparisonOperators(member), [CaDETMetric.MNOA] = CountNumberOfAssignments(member), [CaDETMetric.NONL] = CountNumberOfNumericLiterals(member), [CaDETMetric.NOSL] = CountNumberOfStringLiterals(member), [CaDETMetric.NOMO] = CountNumberOfMathOperations(member), [CaDETMetric.NOPE] = CountNumberOfParenthesizedExpressions(member), [CaDETMetric.NOLE] = CountNumberOfLambdaExpressions(member), [CaDETMetric.MMNB] = CountMaxNestedBlocks(member), [CaDETMetric.NOUW] = CountNumberOfUniqueWords(member) }); }
/// <summary> /// DOI: 10.1002/smr.2255 /// </summary> private int GetNumberOfParameters(CaDETMember method) { return(method.Params.Count); }