예제 #1
0
 public IAbiType[] GetParentClasses(ReferenceCollector refs)
 {
     return(this.unprojectedType.GetInterfaces().Where(
                tinterface => AbiTypeRuntimeClass.IsValidType(tinterface)
                ).Select(
                tinterface => new AbiTypeRuntimeClass(tinterface)
                ).ToArray());
 }
예제 #2
0
        public string GetShortName(ReferenceCollector refs)
        {
            Type type = unprojectedType;

            refs.AddReference(type);
            string name = GetAbiTypeShortName(type);

            if (type.GenericTypeArguments.Count() > 0)
            {
                name += "<" + String.Join(", ", type.GenericTypeArguments.Where(
                                              typeArg => AbiTypeRuntimeClass.IsValidType(typeArg)
                                              ).Select(typeArgument =>
                                                       (new AbiTypeRuntimeClass(typeArgument)).GetShortName(refs)
                                                       )) + ">";
            }

            return(name);
        }
예제 #3
0
        public string GetParameters(ReferenceCollector refs, bool commentOutParamNames = false, bool shortNames = true)
        {
            List <string> parameters = this.methodInfo.GetParameters().Where(
                parameter => AbiTypeRuntimeClass.IsValidType(parameter.ParameterType)
                ).Select(parameter => {
                string paramName = parameter.Name;
                if (commentOutParamNames)
                {
                    paramName = "/* " + paramName + " */";
                }
                IAbiType paramType   = (new AbiTypeRuntimeClass(parameter.ParameterType)).DefaultInterface;
                string paramTypeName = "";
                if (parameter.IsIn)
                {
                    paramTypeName = shortNames ? paramType.GetShortNameAsInParam(refs) : paramType.GetFullNameAsInParam(refs);
                }
                else
                {
                    paramTypeName = shortNames ? paramType.GetShortNameAsOutParam(refs) : paramType.GetFullNameAsOutParam(refs);
                }
                return(paramTypeName + " " + paramName);
            }).ToList();

            if (methodInfo.ReturnType != null && methodInfo.ReturnType.Name != "Void")
            {
                string paramName = "value";
                if (commentOutParamNames)
                {
                    paramName = "/* " + paramName + " */";
                }

                var    defaultInterface = (new AbiTypeRuntimeClass(methodInfo.ReturnType)).DefaultInterface;
                string paramType        = shortNames ? defaultInterface.GetShortNameAsOutParam(refs) : defaultInterface.GetFullNameAsOutParam(refs);
                parameters.Add(paramType + " " + paramName);
            }

            return(String.Join(", ", parameters));
        }