public static TreeNode add_EnclosingMethod(this TreeNode treeNode, Method_CallMapping callMapping, JavaMetadata_XRefs xRefs, bool showStubTreeNode)
        {
            if (xRefs.Classes_by_EnclosingMethod.hasKey(callMapping.Signature))
            {
                var enclosedMethodNode = (showStubTreeNode)
                                                                                        ? treeNode.add_Node("_EnclosedClass (i.e. class by EnclosedMethod)")
                                                                                        : treeNode;
                foreach (var _class in xRefs.Classes_by_EnclosingMethod[callMapping.Signature])
                {
                    enclosedMethodNode.add_Node(_class.Signature, _class)
                    .add_Nodes(_class.Methods,
                               (method) => method.Signature,
                               (method) => xRefs.CallMappings[method.Signature],
                               (method) => true,                                                                   //callMappings.hasMapping_ImplementedBy(implementedBy.Signature),
                               (method) => method.Signature.treeNodeColor(xRefs.Methods_by_Signature));
                }
            }

            if (xRefs.Method_by_EnclosingMethod.hasKey(callMapping.Signature))
            {
                var enclosedMethodNode = (showStubTreeNode)
                                                                                        ? treeNode.add_Node("_EnclosedMethod").color(Color.Gray)
                                                                                        : treeNode;
                var enclosedMethod = xRefs.Method_by_EnclosingMethod[callMapping.Signature];

                enclosedMethodNode.add_Node(enclosedMethod,
                                            xRefs.CallMappings[enclosedMethod],
                                            true)
                .color(enclosedMethod.treeNodeColor(xRefs.Methods_by_Signature));
            }

            //enclosedMethodNode.add_Nodes(xRefs.Classes_by_EnclosingMethod[callMapping.Signature].OrderBy((enclosedMethod)=>enclosedMethod.Signature));

            /*EnclosedMethodNode.add_Nodes(xRefs.Classes_by_EnclosingMethod[callMapping.Signature].OrderBy((enclosedMethod)=>enclosedMethod.Signature),
             *                                                      (enclosedMethod) => enclosedMethod.Signature,
             *                                                      (enclosedMethod) => xRefs.CallMappings[enclosedMethod.Signature],
             *                                                      (enclosedMethod) => true, //callMappings.hasMapping_ImplementedBy(implementedBy.Signature),
             *                                                      (enclosedMethod) => enclosedMethod.Signature.treeNodeColor(xRefs.Methods_by_Signature));
             */

            return(treeNode);
        }
        public static TreeNode add_Implements(this TreeNode treeNode, Method_CallMapping callMapping, Dictionary <string, Method_CallMapping> callMappings, Dictionary <string, Java_Method> methods_bySignature, bool showStubTreeNode)
        {
            if (callMapping.Implements.size() == 0)
            {
                return(treeNode);
            }
            var implementsNode = (showStubTreeNode)
                                                                                ? treeNode.add_Node("Implements").color(Color.Gray)
                                                                                : treeNode;

            implementsNode.add_Nodes(callMapping.Implements
                                     .OrderBy((implements) => implements.Signature)
                                     .Where((implements) => callMappings.hasKey(implements.Signature)),
                                     (implements) => implements.Signature,
                                     (implements) => callMappings[implements.Signature],
                                     (implements) => true,                                     //callMappings.hasMapping_ImplementedBy(implementedBy.Signature),
                                     (implements) => implements.Signature.treeNodeColor(methods_bySignature));

            return(treeNode);
        }
        public static TreeNode add_IsCalledBy(this TreeNode treeNode, Method_CallMapping callMapping, Dictionary <string, Method_CallMapping> callMappings, Dictionary <string, Java_Method> methods_bySignature, bool showStubTreeNode)
        {
            if (callMapping.IsCalledBy.size() == 0)
            {
                return(treeNode);
            }

            //var isCalledByLocations = treeNode.add_Node("_IsCalledBy_Locations");
            var locations = new List <MethodCall_Location>();

            foreach (var isCalledBy in callMapping.IsCalledBy)
            {
                foreach (var atLocation in isCalledBy.AtLocations)
                {
                    atLocation.Signature = isCalledBy.Signature;                                // did this so that we don't have to store/serialize the Signature here
                    locations.Add(atLocation);
                }
            }
            locations = locations.OrderBy((atLocation) => atLocation.Pc)
                        .OrderBy((atLocation) => atLocation.Signature).toList();

            //isCalledByLocations.add_Nodes(locations);

            var isCalledByToNode = (showStubTreeNode)
                                                                                ? treeNode.add_Node("IsCalledBy").color(Color.Gray)
                                                                                : treeNode;

            isCalledByToNode.add_Node("_IsCalledBy_Locations").color(Color.Gray)
            .add_Nodes(locations);

            isCalledByToNode.add_Nodes(callMapping.IsCalledBy
                                       .OrderBy((calledBy) => calledBy.Signature)
                                       .Where((calledBy) => callMappings.hasKey(calledBy.Signature)),
                                       (calledBy) => calledBy.Signature,
                                       (calledBy) => callMappings[calledBy.Signature],
                                       (calledBy) => true,                                     //callMappings.hasMapping_IsCalledBy(calledBy.Signature),
                                       (calledBy) => methods_bySignature.hasKey(calledBy.Signature)
                                                                                                                ? Color.DarkGreen
                                                                                                                : Color.DarkRed);
            return(treeNode);
        }
        public static TreeNode add_CallsTo(this TreeNode treeNode, Method_CallMapping callMapping, Dictionary <string, Method_CallMapping> callMappings, Dictionary <string, Java_Method> methods_bySignature, bool showStubTreeNode)
        {
            if (callMapping.CallsTo.size() == 0)
            {
                return(treeNode);
            }

            //var callToLocations = treeNode.add_Node("_CallTo_Locations");

            var locations = new List <MethodCall_Location>();

            foreach (var callTo in callMapping.CallsTo)
            {
                foreach (var atLocation in callTo.AtLocations)
                {
                    atLocation.Signature = callTo.Signature;                                    // did this so that we don't have to store/serialize the Signature here
                    locations.Add(atLocation);
                }
            }
            locations = locations.OrderBy((atLocation) => atLocation.Pc)
                        .OrderBy((atLocation) => atLocation.Signature).toList();

            //callToLocations.add_Nodes(locations);

            var callsToNode = (showStubTreeNode)
                                                                        ? treeNode.add_Node("CallsTo")
                                                                        : treeNode;

            callsToNode.add_Node("_CallTo_Locations")
            .add_Nodes(locations);

            callsToNode.add_Nodes(callMapping.CallsTo.OrderBy((callTo) => callTo.Signature),
                                  (callTo) => callTo.Signature,
                                  (callTo) => callMappings[callTo.Signature],
                                  (callTo) => true,                                  // callMappings.hasMapping_CallsTo(callTo.Signature),
                                  (callTo) => callTo.Signature.treeNodeColor(methods_bySignature));
            return(treeNode);
        }
Пример #5
0
		public static TreeNode add_EnclosingMethod(this TreeNode treeNode, Method_CallMapping callMapping,JavaMetadata_XRefs xRefs, bool showStubTreeNode)
		{
			if (xRefs.Classes_by_EnclosingMethod.hasKey(callMapping.Signature))
			{
				var enclosedMethodNode = (showStubTreeNode) 
											? treeNode.add_Node("_EnclosedClass (i.e. class by EnclosedMethod)")
											: treeNode;	
				foreach(var _class in xRefs.Classes_by_EnclosingMethod[callMapping.Signature])
				{
					enclosedMethodNode.add_Node(_class.Signature, _class)
									  .add_Nodes(_class.Methods,
									  			 (method)=> method.Signature,
									  			 (method) => xRefs.CallMappings[method.Signature],
											   	 (method) => true, //callMappings.hasMapping_ImplementedBy(implementedBy.Signature), 
											   	 (method) => method.Signature.treeNodeColor(xRefs.Methods_by_Signature));
				}
			}
			
			if (xRefs.Method_by_EnclosingMethod.hasKey(callMapping.Signature))
			{
				var enclosedMethodNode = (showStubTreeNode) 
											? treeNode.add_Node("_EnclosedMethod").color(Color.Gray)
											: treeNode;	
				var enclosedMethod = xRefs.Method_by_EnclosingMethod[callMapping.Signature];
				
				enclosedMethodNode.add_Node(enclosedMethod, 
											xRefs.CallMappings[enclosedMethod],
											true)
								  .color(enclosedMethod.treeNodeColor(xRefs.Methods_by_Signature));
			}
			
			//enclosedMethodNode.add_Nodes(xRefs.Classes_by_EnclosingMethod[callMapping.Signature].OrderBy((enclosedMethod)=>enclosedMethod.Signature));
			/*EnclosedMethodNode.add_Nodes(xRefs.Classes_by_EnclosingMethod[callMapping.Signature].OrderBy((enclosedMethod)=>enclosedMethod.Signature),
									   	(enclosedMethod) => enclosedMethod.Signature,
									   	(enclosedMethod) => xRefs.CallMappings[enclosedMethod.Signature],
									   	(enclosedMethod) => true, //callMappings.hasMapping_ImplementedBy(implementedBy.Signature), 
									   	(enclosedMethod) => enclosedMethod.Signature.treeNodeColor(xRefs.Methods_by_Signature));
			*/
			
			return treeNode;
		}
Пример #6
0
		public static TreeNode add_Implements(this TreeNode treeNode, Method_CallMapping callMapping, Dictionary<string, Method_CallMapping> callMappings , Dictionary<string, Java_Method> methods_bySignature , bool showStubTreeNode)		
		{			
			if (callMapping.Implements.size()==0)
				return treeNode;
			var implementsNode = (showStubTreeNode) 
										? treeNode.add_Node("Implements").color(Color.Gray)
										: treeNode;	
			
			implementsNode.add_Nodes(callMapping.Implements
											 	.OrderBy((implements)=>implements.Signature)
											 	.Where((implements)=>callMappings.hasKey(implements.Signature)),
									 (implements) => implements.Signature,
									 (implements) => callMappings[implements.Signature],
									 (implements) => true, //callMappings.hasMapping_ImplementedBy(implementedBy.Signature), 
									 (implements) => implements.Signature.treeNodeColor(methods_bySignature));
										   						
			return treeNode;
		}
Пример #7
0
		public static TreeNode add_IsCalledBy(this TreeNode treeNode, Method_CallMapping callMapping, Dictionary<string, Method_CallMapping> callMappings , Dictionary<string, Java_Method> methods_bySignature , bool showStubTreeNode)		
		{			
			if (callMapping.IsCalledBy.size()==0)
				return treeNode;

			//var isCalledByLocations = treeNode.add_Node("_IsCalledBy_Locations");																		
			var locations = new List<MethodCall_Location>();
			foreach(var isCalledBy in callMapping.IsCalledBy)
				foreach(var atLocation in isCalledBy.AtLocations)				
				{
					atLocation.Signature = isCalledBy.Signature;		// did this so that we don't have to store/serialize the Signature here
					locations.Add(atLocation);					
				}
			locations = locations.OrderBy((atLocation)=>atLocation.Pc)
								 .OrderBy((atLocation)=>atLocation.Signature).toList();	
			
			//isCalledByLocations.add_Nodes(locations);
		
			var isCalledByToNode = (showStubTreeNode) 
										? treeNode.add_Node("IsCalledBy").color(Color.Gray)
										: treeNode;
			
			isCalledByToNode.add_Node("_IsCalledBy_Locations").color(Color.Gray)
							.add_Nodes(locations);
			
			isCalledByToNode.add_Nodes(callMapping.IsCalledBy
												  .OrderBy((calledBy)=>calledBy.Signature)
												  .Where((calledBy)=>callMappings.hasKey(calledBy.Signature)),
									   (calledBy) => calledBy.Signature,
									   (calledBy) => callMappings[calledBy.Signature],
									   (calledBy) => true, //callMappings.hasMapping_IsCalledBy(calledBy.Signature), 
									   (calledBy) => methods_bySignature.hasKey(calledBy.Signature) 
										   				? Color.DarkGreen
										   				: Color.DarkRed);
			return treeNode;
		}
Пример #8
0
		public static TreeNode add_CallsTo(this TreeNode treeNode, Method_CallMapping callMapping, Dictionary<string, Method_CallMapping> callMappings , Dictionary<string, Java_Method> methods_bySignature , bool showStubTreeNode)
		{	
			if (callMapping.CallsTo.size()==0)
				return treeNode;
				
			//var callToLocations = treeNode.add_Node("_CallTo_Locations");														
			
			var locations = new List<MethodCall_Location>();
			foreach(var callTo in callMapping.CallsTo)
				foreach(var atLocation in callTo.AtLocations)				
				{
					atLocation.Signature = callTo.Signature;		// did this so that we don't have to store/serialize the Signature here
					locations.Add(atLocation);					
				}
			locations = locations.OrderBy((atLocation)=>atLocation.Pc)
								 .OrderBy((atLocation)=>atLocation.Signature).toList();	
			
			//callToLocations.add_Nodes(locations);
											
			var callsToNode = (showStubTreeNode) 
									? treeNode.add_Node("CallsTo") 
									: treeNode;
			
			callsToNode.add_Node("_CallTo_Locations")
						.add_Nodes(locations);												
			
			callsToNode.add_Nodes( callMapping.CallsTo.OrderBy((callTo)=>callTo.Signature),
								   (callTo) => callTo.Signature,
								   (callTo) => callMappings[callTo.Signature], 								   
								   (callTo) => true, // callMappings.hasMapping_CallsTo(callTo.Signature), 
								   (callTo) => callTo.Signature.treeNodeColor(methods_bySignature));								   						
			return treeNode;
		}