private string BuildName(string className, string ownName, bool useNew, bool isShort) { if (className == null) { className = string.Empty; } else { className = className + "."; } string result; if (resultType == null) { result = "void"; } else { EntityName resultName = useNew ? resultType.NameNew : resultType.NameOld; result = SystemTypeProcessor.SimplifyType(resultName, !isShort); } if (entityType == EntityType.Method) { return(string.Format("{0} {1}{2}({3})", result, className, ownName, MethodParamList(isShort, useNew))); } if (resultType != null) { return(string.Format("{0} {1}{2}", result, className, ownName)); } return(string.Format("{0}{1}", className, ownName)); }
public RenamedClass SearchForNewName(EntityName target) { if (name.NameNew != null) { if (target.Compare(NameNew)) { return(this); } if (target.Compare(NameNewFull)) { return(this); } } foreach (RenamedBase item in items) { if (item.EntityType != EntityType.Class) { continue; } RenamedClass c = (RenamedClass)item; c = c.SearchForNewName(target); if (c != null) { return(c); } } return(null); }
public Renamed(string nameOld, string nameNew = null) { if (string.IsNullOrEmpty(nameOld)) { throw new ArgumentNullException(nameof(nameOld)); } this.nameOld = new EntityName(nameOld); this.nameNew = string.IsNullOrEmpty(nameNew) ? (EntityName)this.nameOld.Clone() : new EntityName(nameNew); }
public Renamed(EntityName nameOld, EntityName nameNew) { if (nameOld == null) { throw new ArgumentNullException(nameof(nameOld)); } this.nameOld = nameOld; this.nameNew = nameNew; if (this.nameNew == null) { this.nameNew = (EntityName)nameOld.Clone(); } }
public Entity(string s) { methodParams = BuildParams(ref s); s = s.TrimEnd(' '); int i = s.IndexOf(' '); if (i == -1) { name = new EntityName(s); } else { string res = s.Substring(0, i); if (res != "void") { result = new EntityName(res); } name = new EntityName(s.Substring(i).TrimStart(' ')); } }
public bool Compare(string name) { int i = name.IndexOf('('); EntityName ename = new EntityName(name.Substring(0, i)); if (!ename.Compare(this.name.NameNew, false)) { return(false); } int j = name.IndexOf(')', i); string p = name.Substring(i + 1, j - i - 1); string[] strings = p.Split(new string[] { ", ", "," }, StringSplitOptions.RemoveEmptyEntries); if (strings.Length != methodParams.Count) { return(false); } for (int k = 0; k < strings.Length; k++) { string s = strings[k].Trim(' '); if (s == "*") { continue; } EntityName e = new EntityName(s); if (!e.Compare(methodParams[k].NameNew, true)) { return(false); } } return(true); }
public RenamedItem(IMappingEntity reader, RenamedClass owner) { this.owner = owner; try { this.owner = owner; entityType = reader.Type; string str = reader.Name; int i; if ((i = str.IndexOf(' ')) != -1) { string s = str.Substring(0, i); int k = s.IndexOf('/'); if (k != -1) { resultType = new RenamedParam(s.Substring(0, k) + "." + s.Substring(k + 1)); } else { resultType = new RenamedParam(s); } str = str.Substring(i + 1); } if ((i = str.IndexOf("::")) != -1) { str = str.Substring(i + 2); } if ((i = str.IndexOf('(')) != -1) { methodParams = new List <RenamedParam>(); foreach (string s in EntityName.ParseList(str, i + 1, ')')) { int k = s.IndexOf('/'); if (k != -1) { methodParams.Add(new RenamedParam(s.Substring(0, k) + "." + s.Substring(k + 1))); } else { methodParams.Add(new RenamedParam(s)); } } str = str.Substring(0, i); i = str.IndexOf('['); if (i != -1 && str[i + 2] == ']') { str = str.Substring(0, i); } } string strNew = reader.NewName; if (strNew != "dropped") { name = new Renamed(str, strNew); } else { name = new Renamed(str); } skipReason = reader.SkipReason; if (name.NameOld.Name == "ctor") { entityType = EntityType.Constructor; } } catch (Exception e) { throw new ObfuscarParserException("Failed to process item element", e, reader.Path); } }
public Entity(Entity entity, RenamedBase item, IList <EntityName> methodParams) { this.methodParams = new List <EntityName>(methodParams); result = entity.result; name = new EntityName(item.NameOldFull + "." + entity.name.Name); }
public Renamed(Renamed nameOld, EntityName nameNew) { this.nameNew = nameNew; this.nameOld = nameOld.nameOld; }