Exemplo n.º 1
0
        public Class(string name, string text)
        {
            Name                = name;
            Content             = LineEndingConverter.ConvertToCRLF(text);
            Methods             = new List <Method>();
            Classes             = new List <Class>();
            MemberDeclarartions = new List <string>();
            InstanceVariables   = new List <string>();

            Metrics = new List <IMetric>();
            Metrics.Add(new LinesOfCode(Content));
            Metrics.Add(new NumberOfMembers(MemberDeclarartions));
            Metrics.Add(new TCC(Methods));
            Metrics.Add(new WMC(Methods));
            Metrics.Add(new ATFD(Methods));

            CodeSmells = new List <ICodeSmell>();
            CodeSmells.Add(new LargeClass(Metrics[2], Metrics[3], Metrics[4], Metrics[0])); //TODO: REFACTOR THIS TEMP SOLUTION

            var p = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

            _additionalCasesDir  = p + "\\TrainingsData\\";
            _additionalCasesFile = "AdditionalData.csv";


            foreach (var codesmell in CodeSmells)
            {
                codesmell.Updated += OnCodeSmellUpdated;
            }
        }
Exemplo n.º 2
0
        public Method(Class parent, string name, string text)
        {
            Name                         = name;
            Content                      = LineEndingConverter.ConvertToCRLF(text);
            MethodInvocations            = new List <MethodInvocation>();
            InnerMethodInvocations       = new List <MethodInvocation>();
            OuterMethodInvocations       = new List <MethodInvocation>();
            DataAccessInvocations        = new List <MethodInvocation>();
            ForeignDataAccessInvocations = new List <MethodInvocation>();
            InnerDataAccessInvocations   = new List <MethodInvocation>();


            Parameters  = new List <string>();
            LocalFields = new List <string>();

            Metrics = new List <IMetric>();
            Metrics.Add(new LinesOfCode(Content));
            Metrics.Add(new CyclometicComplexity(Content));
            Metrics.Add(new NumberOfParameters(Parameters));
            Metrics.Add(new NumberOfInnerMethodInvocations(InnerMethodInvocations));
            Metrics.Add(new NumberOfOuterMethodInvocations(OuterMethodInvocations));
            Metrics.Add(new ATFD(ForeignDataAccessInvocations));
            Metrics.Add(new FDP(ForeignDataAccessInvocations));
            Metrics.Add(new LAA(parent, DataAccessInvocations));
            Metrics.Add(new MAXNESTING(Content));
            Metrics.Add(new NOAV(parent, Parameters, LocalFields, DataAccessInvocations, Content));

            CodeSmells = new List <ICodeSmell>();
            CodeSmells.Add(new FeatureEnvy(Metrics[5], Metrics[7], Metrics[6]));
            CodeSmells.Add(new LongMethod(Metrics[0], Metrics[1], Metrics[8], Metrics[9]));

            _filename = "MethodTrainingSet" + System.DateTime.Now.ToString("_Hmm_ddMMyyyy") + ".csv";

            var p = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

            _additionalCasesDir  = p + "\\TrainingsData\\";
            _additionalCasesFile = "AdditionalData.csv";

            ParentClass = parent;

            foreach (var codesmell in CodeSmells)
            {
                codesmell.Updated += OnCodeSmellUpdated;
            }
        }
Exemplo n.º 3
0
 public MethodInvocation(string text)
 {
     Content       = LineEndingConverter.ConvertToCRLF(text);
     AccessedField = getAccessedField(text);
 }