public DependencyHandler(ConfigurationLoader _loader, DisplayExecutive _executive, ClientUIHanlder _uiHandler) { loader = _loader; table = new RelationshipTable(); executive = _executive; uiHandler = _uiHandler; uiHandler.subscribe += MessageSent; }
/* Generate a message which is sent to the client with the dep anal results */ public static Message GetDependecyAnanlyzeClientResult(RelationshipTable table, string currentRequestUrl, string localServiceUrl) { Message msg = new Message(); msg.cmd = Message.Command.Depanal; msg.src = localServiceUrl; msg.dst = currentRequestUrl; msg.body = table.ToXMLString(); return(msg); }
public void Merge(RelationshipTable _results) { foreach (TypeElement child in _results.relationshipTable.Keys) { List <TypeElement> parents = _results.relationshipTable[child]; foreach (TypeElement parent in parents) { add(child, parent); } } }
/* Analyze the projects with the type table provided */ private void Analyze(TypeTable typeTable, string src) { GetTypeTableOfAllProjects getAllTypes = new GetTypeTableOfAllProjects(loader.rootPath); getAllTypes.Analyzer(); TypeTable allTypes = getAllTypes.Results; GetRelationshipTable getDependencies = new GetRelationshipTable(loader.rootPath, typeTable, allTypes); getDependencies.Analyzer(); RelationshipTable results = getDependencies.relationshipResults(); Message result = MessageGenerator.GetDependecyAnanlyzeClientResult(results, src, loader.localServiceUrl); SendTheResultToClient(result); }
static void Main(string[] args) { RelationshipTable table = new RelationshipTable(); TypeElement parent = new TypeElement(); parent.FileName = "Test.cs"; parent.TypeName = "Test"; parent.Type = "class"; TypeElement child = new TypeElement(); child.FileName = "Test.cs"; child.TypeName = "Test"; child.Type = "class"; table.add(parent, child); Console.WriteLine(table.PackageDependencyXMLRepresentation()); Console.WriteLine(table.ToXMLString()); }
/* Get Relationship table from the xml string */ public static RelationshipTable loadFromXML(string xml) { RelationshipTable table = new RelationshipTable(); XDocument doc = XDocument.Parse(xml); XElement root = doc.Element("RelationshipInfo"); foreach (XElement dependency in root.Elements("Dependency")) { XElement childElement = dependency.Element("child"); TypeElement child = GetTypeElementFromXElement(childElement); foreach (XElement relationshipElement in childElement.Elements("Relationship")) { XElement parentElement = relationshipElement.Element("parent"); TypeElement parent = GetTypeElementFromXElement(parentElement); table.add(child, parent); } } return(table); }
public override void ShowRelationshipTable(RelationshipTable table) { displayWindow.SetRelaletionshipTab(table); }
public abstract void ShowRelationshipTable(RelationshipTable table);
/* Invoked when Analyze result is received */ public void OnAnalyzeResultReceived(Message msg) { RelationshipTable _table = RelationshipTable.loadFromXML(msg.body); OnRelationshipsReceived(_table); }
/* Invoked when a relationship table is received */ public void OnRelationshipsReceived(RelationshipTable _table) { table.Merge(_table); executive.ShowRelationshipTable(table); }