Ejemplo n.º 1
0
        public void ExtractInnerAndOuterMethodInvocations()
        {
            ForeignDataAccessInvocations.Clear();
            InnerDataAccessInvocations.Clear();

            //Note: call this after the class has been fully parsed to avoid missing inner invocations.
            foreach (var invocation in MethodInvocations)
            {
                if (ParentClass != null && ParentClass.Methods.Any(x => x.Name.Equals(invocation.Content)))
                {
                    InnerMethodInvocations.Add(invocation);
                }
                else
                {
                    OuterMethodInvocations.Add(invocation);
                }
            }

            ForeignDataAccessInvocations.AddRange(OuterMethodInvocations.Where(x => !string.IsNullOrEmpty(x.AccessedField)).ToList());
            InnerDataAccessInvocations.AddRange(InnerMethodInvocations.Where(x => !string.IsNullOrEmpty(x.AccessedField)).ToList());


            DataAccessInvocations.AddRange(ForeignDataAccessInvocations);
            DataAccessInvocations.AddRange(InnerDataAccessInvocations);
        }
Ejemplo n.º 2
0
 public void FindRelatedClassForOutboundInvocation(List <Class> totalClassOverView)
 {
     OuterMethodInvocations.ToList().ForEach(x => x.DeclaredClass = (
                                                 totalClassOverView.FirstOrDefault(y => y.Methods.Any(z => z.Name == x.Content))?.Name
                                                 ));
 }