Exemplo n.º 1
0
 void IDiffActions.ActivityOnlyInSecond(ClassRecord a)
 {
     Console.WriteLine(FORMAT_A2, a.Name);
     foreach (var p in a.Properties)
     {
         PrintProperty2(p);
     }
     AddActivityAdded(a);
 }
Exemplo n.º 2
0
 void IDiffActions.ActivityOnlyInFirst(ClassRecord a)
 {
     Console.WriteLine(FORMAT_A1, a.Name);
     foreach (var p in a.Properties)
     {
         PrintProperty1(p);
     }
     AddActivityDeleted(a);
 }
Exemplo n.º 3
0
 public void ReadFromAssembly(string filename, Action <Exception, string, string> action)
 {
     try
     {
         using (var ad = Mono.Cecil.AssemblyDefinition.ReadAssembly(filename))
         {
             foreach (Mono.Cecil.ModuleDefinition md in ad.Modules)
             {
                 if (Program.debug)
                 {
                     Console.WriteLine("# MODULE={0}", md.Name);
                 }
                 foreach (Mono.Cecil.TypeDefinition td in md.GetTypes())
                 {
                     if (td.IsClass)
                     {
                         if (Program.debug)
                         {
                             Console.WriteLine("# TYPE={0} IsClass=T", td.Name);
                         }
                         var key = ClassRecord.GetSimpleName(td);
                         if (!dict.TryGetValue(key, out ClassRecord a))
                         {
                             a = new ClassRecord(td, md, this);
                             dict.Add(key, a);
                             if (!packages.Contains(md.Name))
                             {
                                 packages.Add(md.Name);
                             }
                             if (Program.debug)
                             {
                                 Console.WriteLine("#   Super={0} IsPublic={1}", a.SuperClassName, a.IsPublic);
                             }
                         }
                         else if (Program.debug)
                         {
                             Console.WriteLine("# {0}: Duplicate.", key);
                             Console.WriteLine("#     {0}", a.PackageName);
                             Console.WriteLine("#     {0}", md.Name);
                         }
                     }
                     else if (Program.debug)
                     {
                         Console.WriteLine("# TYPE={0} IsClass=F", td.Name);
                     }
                 }
             }
         }
     }
     catch (Exception ex)
     {
         action(ex, filename, currentPackageFileName);
     }
 }
Exemplo n.º 4
0
 private string DecoratePropertyName(Mono.Cecil.PropertyDefinition pd, ClassRecord cr)
 {
     if (cr.Name.StartsWith(Namespace))
     {
         return(cr.Name.Substring(Namespace.Length) + "::" + pd.Name);
     }
     else
     {
         return(cr.Name + "::" + pd.Name);
     }
 }
Exemplo n.º 5
0
 private string FormatSuperClassName(string format, ClassRecord cr)
 {
     if (verboseLevel > 1)
     {
         var sb = new StringBuilder();
         sb.Append(TypeString.Symplify(cr.SuperClassFullName));
         bool found;
         do
         {
             found = false;
             foreach (var packageName in db.PackageNames)
             {
                 try
                 {
                     var cr2 = db.SelectByPackageName(packageName).Single((cr1) => cr1.FullName == cr.SuperClassFullName);
                     if (cr2 != null)
                     {
                         cr = cr2;
                         sb.Append(" : ");
                         sb.Append(TypeString.Symplify(cr.SuperClassFullName));
                         found = true;
                         break;
                     }
                 }
                 catch (Exception)
                 {
                 }
             }
         }while (found);
         return(string.Format(format, sb.ToString()));
     }
     else if (verboseLevel == 1)
     {
         return(string.Format(format, TypeString.Symplify(cr.SuperClassFullName)));
     }
     else
     {
         return(string.Empty);
     }
 }
Exemplo n.º 6
0
 private void AddActivityAdded(ClassRecord a)
 {
     _activitiesAdded.Add(a);
     _currentActivityName = null;
     _modified            = false;
 }
Exemplo n.º 7
0
 public bool FindClass(string name, out ClassRecord cr)
 {
     return(dict.TryGetValue(name, out cr));
 }