/// <param name="name">Property name.</param> /// <param name="description">Description for current property.</param> /// <param name="get">Value type for getting.</param> /// <param name="set">Value type for setting.</param> public PropertyAttribute(string name, string description, CValType get = CValType.Void, CValType set = CValType.Void) { Name = name; Description = description; Get = get; Set = set; }
/// <param name="name">Method name.</param> /// <param name="description">Description for current method.</param> /// <param name="ret">Return value.</param> /// <param name="args">Arguments of method.</param> public MethodAttribute(string name, string description, CValType ret = CValType.Void, params CValType[] args) { Name = name; Description = description; Return = ret; Arguments = args.Select(arg => new TArgument(arg)).ToArray(); }
/// <summary> /// Builds the technical description of the method. /// </summary> /// <param name="ret">Return value.</param> /// <param name="args">Arguments of method.</param> /// <returns></returns> private string AboutMethod(CValType ret, TArgument[] args) { string retString = _t(ret); if (args == null || args.Length < 1) { return(string.Format("{0} {1}({2})\n", retString, Name, _t(CValType.Void))); } if (args[0].name == null) { return(string.Format("{0} {1}({2})", retString, Name, string.Join(", ", args.Select(p => _t(p.type))))); } string argsString = string.Join(", ", args.Select(p => string.Format("{0} {1}", _t(p.type), p.name))); string argsDescription = string.Join("\n* ", args.Select(p => string.Format("{0} - {1}", p.name, p.description))); return(string.Format("{0} {1}({2})\n* {3}", retString, Name, argsString, argsDescription)); }
public TArgument(CValType type, string name = "", string description = "") { this.type = type; this.name = name; this.description = description; }
/// <param name="name">Property name.</param> /// <param name="parent">Name of the parent specification (property/method/etc.) if exists or null.</param> /// <param name="method">Actual/real method name of the parent specification if exists or null.</param> /// <param name="get">Value type for getting.</param> /// <param name="set">Value type for setting.</param> public PropertyAttribute(string name, string parent, string method, CValType get = CValType.Void, CValType set = CValType.Void) : this(name, string.Empty, parent, method, get, set) { }
/// <param name="name">Property name.</param> /// <param name="description">Description for current property.</param> /// <param name="parent">Name of the parent specification (property/method/etc.) if exists or null.</param> /// <param name="method">Actual/real method name of the parent specification if exists or null.</param> /// <param name="get">Value type for getting.</param> /// <param name="set">Value type for setting.</param> public PropertyAttribute(string name, string description, string parent, string method, CValType get = CValType.Void, CValType set = CValType.Void) : this(name, description, get, set) { Parent = parent; Method = method; }
/// <param name="name">Property name.</param> /// <param name="get">Value type for getting.</param> /// <param name="set">Value type for setting.</param> public PropertyAttribute(string name, CValType get = CValType.Void, CValType set = CValType.Void) : this(name, string.Empty, get, set) { }
/// <param name="name">Method name.</param> /// <param name="parent">Name of the parent specification (property/method/etc.) if exists or null.</param> /// <param name="method">Actual/real method name of the parent specification if exists or null.</param> /// <param name="argsName">Arguments of method by name.</param> /// <param name="argsDesc">Description for arguments.</param> /// <param name="ret">Return value.</param> /// <param name="args">Arguments of method.</param> public MethodAttribute(string name, string parent, string method, string[] argsName, string[] argsDesc, CValType ret, params CValType[] args) : this(name, string.Empty, parent, method, argsName, argsDesc, ret, args) { }
/// <param name="name">Method name.</param> /// <param name="description">Description for current method.</param> /// <param name="parent">Name of the parent specification (property/method/etc.) if exists or null.</param> /// <param name="method">Actual/real method name of the parent specification if exists or null.</param> /// <param name="argsName">Arguments of method by name.</param> /// <param name="argsDesc">Description for arguments.</param> /// <param name="ret">Return value.</param> /// <param name="args">Arguments of method.</param> public MethodAttribute(string name, string description, string parent, string method, string[] argsName, string[] argsDesc, CValType ret, params CValType[] args) : this(name, description, argsName, argsDesc, ret, args) { Parent = parent; Method = method; }
/// <param name="name">Method name.</param> /// <param name="description">Description for current method.</param> /// <param name="argsName">Arguments of method by name.</param> /// <param name="argsDesc">Description for arguments.</param> /// <param name="ret">Return value.</param> /// <param name="args">Arguments of method.</param> public MethodAttribute(string name, string description, string[] argsName, string[] argsDesc, CValType ret, params CValType[] args) : this(name, description, ret, args) { if (argsName == null || argsDesc == null) { throw new ArgumentException($"null value is not valid for {nameof(argsName)}/{nameof(argsDesc)}"); } if (args.Length != argsName.Length || args.Length != argsDesc.Length) { throw new MismatchException($"CValueType[] is not equal by count with argsName/argsDesc :: {name}"); } Arguments = args.Select((arg, i) => new TArgument(arg, argsName[i], argsDesc[i])).ToArray(); }
/// <param name="name">Method name.</param> /// <param name="parent">Name of the parent specification (property/method/etc.) if exists or null.</param> /// <param name="method">Actual/real method name of the parent specification if exists or null.</param> /// <param name="ret">Return value.</param> /// <param name="args">Arguments of method.</param> public MethodAttribute(string name, string parent, string method, CValType ret = CValType.Void, params CValType[] args) : this(name, string.Empty, parent, method, ret, args) { }
/// <summary> /// Formatting of the type. /// </summary> /// <param name="type"></param> /// <returns></returns> private string _t(CValType type) => type.ToString().ToLower();
/// <summary> /// Formatting of the method. /// </summary> /// <param name="ret">Return value.</param> /// <param name="args">Arguments of method.</param> /// <returns></returns> private string DisplayMethod(CValType ret, TArgument[] args) { string aStr = (args != null && args.Length > 0)? string.Join(", ", args.Select(p => p.name)) : _t(CValType.Void); return($"{Name}({aStr})"); }
/// <summary> /// Formatting of the property. /// </summary> /// <param name="get">Value type for getting.</param> /// <param name="set">Value type for setting.</param> /// <returns></returns> private string DisplayProperty(CValType get, CValType set) { return(Name); }
/// <summary> /// Builds the technical description of the property. /// </summary> /// <param name="get">Value type for getting.</param> /// <param name="set">Value type for setting.</param> /// <returns></returns> private string AboutProperty(CValType get, CValType set) => $"Get: {_t(get)}\nSet: {_t(set)}";