public static TreeNode getTreeNodeWithAutoWiredObject(ICirData cirData, string targetFunction, SpringMvcParameter springMvcParameter, int parameterIndex)
        {
            try
            {

                if (cirData != null && cirData.dFunctions_bySignature.ContainsKey(targetFunction))
                {
                    var cirFunction = cirData.dFunctions_bySignature[targetFunction];
                    if (cirFunction.FunctionParameters.Count <= parameterIndex)
                    {
                        var filteredSignature = new FilteredSignature(targetFunction);
                        if (filteredSignature.lsParameters_Parsed.Count > parameterIndex)
                            springMvcParameter.className = filteredSignature.lsParameters_Parsed[parameterIndex];
                        else
                            DI.log.error("in getTreeNodeWithAutoWiredObject, requested parameter index not found in function: {0}", targetFunction);
                    }
                    else
                    {
                        var functionParameter = cirFunction.FunctionParameters[parameterIndex];
                        springMvcParameter.className = functionParameter.ParameterType.Replace("&", "");
                    }
                    if (springMvcParameter.className != "")
                    {

                        // Hack to handle int Java mappings 
                        if (springMvcParameter.className == "int")
                            springMvcParameter.className = "java.lang.Integer";
                        if (cirData.dClasses_bySignature.ContainsKey(springMvcParameter.className))
                        {
                            var childNodeText = string.Format("{0} - {1} - {2}", springMvcParameter.autoWiredMethodUsed, springMvcParameter.name, springMvcParameter.className);
                            return O2Forms.newTreeNode(childNodeText, childNodeText, 0, cirData.dClasses_bySignature[springMvcParameter.className]);
                        }

                        DI.log.error("in getTreeNodeWithAutoWiredObject, parameter type not found in cirData class list:{0}", springMvcParameter.className);
                    }
                }
                else
                    DI.log.error("in getTreeNodeWithAutoWiredObject, loaded cirData did not contained signature :{0}", targetFunction);
            }
            catch (Exception ex)
            {
                DI.log.error("in getTreeNodeWithAutoWiredObject:", ex.Message);
            }
            return new TreeNode();
        }
예제 #2
0
 private static List<SpringMvcParameter> getAutoWiredJavaObjects(method methodToMap)
 {
     var springMvcParamters = new List<SpringMvcParameter>();
     if (methodToMap.parameterAnnotation != null)
         foreach (var parameterAnnotation in methodToMap.parameterAnnotation)
         {
             var springMvcParameter = new SpringMvcParameter();
             switch (parameterAnnotation.typeName)
             { 
                 case "org.springframework.web.bind.annotation.RequestParam":
                 case "org.springframework.web.bind.annotation.ModelAttribute":
                 case "org.springframework.web.bind.annotation.PathVariable":
                     springMvcParameter.autoWiredMethodUsed = parameterAnnotation.typeName.Replace("org.springframework.web.bind.annotation.", "");
                     if (parameterAnnotation.member != null)
                         springMvcParameter.name = decodeString(parameterAnnotation.member.memberValue).Replace("\"","");
                     break;
                 
                 default:
                     if (parameterAnnotation.typeName !=null)
                         springMvcParameter.autoWiredMethodUsed = parameterAnnotation.typeName;
                     break;
             }
             springMvcParamters.Add(springMvcParameter);             
         }
     return springMvcParamters;
 }