public static List <TK> select <T, TK>(this List <T> list, Func <T, TK> query)
 {
     if (list.isNull() || query.isNull())
     {
         return(new List <TK>());
     }
     return(list.Select(query).toList());
 }
Ejemplo n.º 2
0
 public static T ifNull <T>(this T obj, Func <T, T> predicate)
 {
     if (predicate.isNull())
     {
         return(predicate(obj));
     }
     return(obj);
 }
Ejemplo n.º 3
0
        public static TreeView add_TreeView_For_CommandClasses_Visualization(this Control control, JavaMetadata_XRefs xRefs, Action <string> onClassSelected, Func <string, string, string> resolveGetterReturnType)
        {
            var treeView = control.add_TreeView();

            var showHttpName = false;
            var configPanel  = control.insert_Below(30);

            configPanel.add_CheckBox("Show Http Variable Name", 0, 0, (value) => showHttpName = value)
            .autoSize();

            Func <Java_Method, string> getMethodNodeText =
                (method) => {
                if (showHttpName)
                {
                    return(method.Name
                           .subString(3)
                           .lowerCaseFirstLetter());
                }

                return("{0}   {1}".format(method.Name, method.returnType()));
                //.GenericSignature.isNull()
                //											? method.ParametersAndReturnType
                //											: method.GenericSignature.returnType());
            };
            Func <string, string, string> localResolveGetterReturnType =
                (methodName, returnType) => {
                if (resolveGetterReturnType.isNull())
                {
                    return(returnType);
                }
                return(resolveGetterReturnType(methodName, returnType));
            };

            Action <TreeNode, string> add_Getters =
                (treeNode, className) => {
                if (xRefs.Classes_by_Signature.hasKey(className))
                {
                    var _class  = xRefs.Classes_by_Signature[className];
                    var getters = _class.java_Methods_Getters_Public().with_Primitive_ReturnType(false);

                    treeNode.add_Nodes(getters.Where((method) => method.returnType() != "java.lang.String"),
                                       (method) => getMethodNodeText(method),
                                       //(method)=> method.str(),
                                       (method) => localResolveGetterReturnType(method.Name, method.returnType()),
                                       (method) => true,
                                       (method) => Color.DarkBlue);
                }
                else
                {
                    treeNode.add_Node("[Getters] ... class not found: {0}".format(className))
                    .color(Color.DarkRed);
                }
            };

            Action <TreeNode, string> add_Setters =
                (treeNode, className) => {
                if (xRefs.Classes_by_Signature.hasKey(className))
                {
                    var _class  = xRefs.Classes_by_Signature[className];
                    var setters = _class.java_Methods_Setters_Public().with_Primitive_Parameter(true);

                    treeNode.add_Nodes(setters,
                                       //(method)=> "{0}   {1}".format(method.Name, method.ParametersAndReturnType),
                                       (method) => getMethodNodeText(method),
                                       (method) => method,
                                       (method) => false,
                                       (method) => Color.DarkGreen);
                }
                else
                {
                    treeNode.add_Node("[Setters] ... class not found: {0}".format(className))
                    .color(Color.DarkRed);
                }
            };


            treeView.beforeExpand <string>(
                (treeNode, returnType) => {
                var className = (returnType.starts("L"))
                                                                                                                                ? returnType.removeFirstChar().removeLastChar()
                                                                                                                                : returnType;
                add_Getters(treeNode, className);
                add_Setters(treeNode, className);
                //if (xRefs.Classes_by_Signature.hasKey(className))
                //	treeNode.add_Node("FOUND Class!!!");
                //else
                //	treeNode.add_Node(returnType);
            });

            treeView.afterSelect <string>(
                (@class) => {
                if (onClassSelected.notNull())
                {
                    onClassSelected(@class);
                }
            });

            return(treeView);
        }
Ejemplo n.º 4
0
		public static TreeView add_TreeView_For_CommandClasses_Visualization(this Control control, JavaMetadata_XRefs xRefs, Action<string> onClassSelected, Func<string,string,string> resolveGetterReturnType	)
		{
			var treeView = control.add_TreeView();   

			var showHttpName = false; 
			var configPanel = control.insert_Below(30);
			configPanel.add_CheckBox("Show Http Variable Name",0,0,(value)=> showHttpName = value)
					   .autoSize(); 
			
			Func<Java_Method,string> getMethodNodeText =
				(method) => {
								if (showHttpName)
									return method.Name
												 .subString(3)
												 .lowerCaseFirstLetter();
									
								return "{0}   {1}".format(method.Name, method.returnType());
								//.GenericSignature.isNull()
								//											? method.ParametersAndReturnType
								//											: method.GenericSignature.returnType());
							};
			Func<string,string,string> localResolveGetterReturnType =
				(methodName, returnType) => {
												if (resolveGetterReturnType.isNull())
													return returnType;
												return resolveGetterReturnType(methodName, returnType);									
											};
			
			Action<TreeNode, string> add_Getters =  
				(treeNode, className)=> {
											if (xRefs.Classes_by_Signature.hasKey(className))
											{									
												var _class = xRefs.Classes_by_Signature[className];  
												var getters = _class.java_Methods_Getters_Public().with_Primitive_ReturnType(false); 
												
												treeNode.add_Nodes( getters.Where((method)=>method.returnType()!="java.lang.String"),   
																	(method)=> getMethodNodeText(method),
																	//(method)=> method.str(),
								 									(method)=> localResolveGetterReturnType(method.Name,method.returnType()), 
																	(method)=> true, 
																	(method)=> Color.DarkBlue);
			
											}
											else											
												treeNode.add_Node("[Getters] ... class not found: {0}".format(className))
														.color(Color.DarkRed);
										}; 
			  
			Action<TreeNode, string> add_Setters =  
				(treeNode, className)=> { 
											if (xRefs.Classes_by_Signature.hasKey(className))
											{									 
												var _class = xRefs.Classes_by_Signature[className];     
												var setters = _class.java_Methods_Setters_Public().with_Primitive_Parameter(true);  
												
												treeNode.add_Nodes( setters, 
																	//(method)=> "{0}   {1}".format(method.Name, method.ParametersAndReturnType), 
																	(method)=> getMethodNodeText(method),
																	(method)=> method ,
																	(method)=> false,
																	(method)=> Color.DarkGreen);
			
											}
											else
												treeNode.add_Node("[Setters] ... class not found: {0}".format(className))
														.color(Color.DarkRed);
										};
										
			
			treeView.beforeExpand<string>(
				(treeNode, returnType)=>{	
											var className = (returnType.starts("L"))
																? returnType.removeFirstChar().removeLastChar()
																: returnType;
											add_Getters(treeNode, className);
											add_Setters(treeNode, className);								
											//if (xRefs.Classes_by_Signature.hasKey(className))
											//	treeNode.add_Node("FOUND Class!!!");
											//else
											//	treeNode.add_Node(returnType);					
							  			});
			
			treeView.afterSelect<string>(
				(@class)=>{
							if (onClassSelected.notNull())
								onClassSelected(@class);
						  });
						  
			return treeView;							  			
		}