string GetPageBaseNameForIndexer(Property property, DataType dataType, bool addDataTypeName) { if (property.Parameters.Length < 1) { throw new ArgumentException("Expected indexer to have at least one parameter", nameof(property)); } var type = new EntityNaming().GetIndexTitle(property.Parameters[0].Type); return(addDataTypeName ? dataType.Name + "[" + type + "]" : "[" + type + "]"); }
protected string BuildAttributes(NewObject[] attributes, Namescope context) { var result = new List <string>(); foreach (var attribute in attributes) { var sb = new StringBuilder("["); var attributeName = new EntityNaming().GetFullIndexTitle(attribute.ReturnType); if (attributeName.EndsWith("Attribute")) { attributeName = attributeName.Substring(0, attributeName.Length - "Attribute".Length); } sb.Append(attributeName); if (attribute.Arguments.Length > 0) { sb.Append("("); for (var i = 0; i < attribute.Arguments.Length; i++) { var arg = (Constant)attribute.Arguments[i]; var param = attribute.Constructor.Parameters[i]; if (i > 0) { sb.Append(", "); } sb.Append(param.Name); sb.Append(" = "); if (arg.Value is string) { sb.Append("\"" + arg.Value + "\""); } else { sb.Append(arg.Value); } } sb.Append(")"); } sb.AppendLine("]"); result.Add(sb.ToString()); } return(result.Any() ? string.Join("\n", result) : null); }
string GetPageBaseNameForOperator(Operator op) { if (op.Parameters.Length < 1) { throw new ArgumentException("Expected operator " + op.FullName + " to have at least one parameter", nameof(op)); } if (!OperatorSymbolMap.ContainsKey(op.Name)) { throw new ArgumentException("Unknown operator type " + op.Name, nameof(op)); } var leftSide = new EntityNaming().GetIndexTitle(op.Parameters[0].Type); var rightSide = op.Parameters.Length > 1 ? new EntityNaming().GetIndexTitle(op.Parameters[1].Type) : null; var operatorName = OperatorSymbolMap[op.Name]; return(rightSide == null ? operatorName + " " + leftSide : leftSide + " " + operatorName + " " + rightSide); }
string BuildExplicitImplementationPrefix(Member member) { var propertyMember = member as Property; var methodMember = member as Method; var eventMember = member as Event; if (propertyMember?.ImplementedProperty != null) { return(EntityNaming.GetFullIndexTitle(propertyMember.ImplementedProperty.DeclaringType) + "."); } if (methodMember?.ImplementedMethod != null) { return(EntityNaming.GetFullIndexTitle(methodMember.ImplementedMethod.DeclaringType) + "."); } if (eventMember?.ImplementedEvent != null) { return(EntityNaming.GetFullIndexTitle(eventMember.ImplementedEvent.DeclaringType) + "."); } return(null); }
string GetPageBaseNameForCast(Cast cast, bool shortVersion) { if (cast.Parameters.Length < 1) { throw new ArgumentException("Expected cast " + cast.FullName + " to have at least one parameter", nameof(cast)); } if (cast.ReturnType == null) { throw new ArgumentException("Expected cast " + cast.FullName + " to have a return type", nameof(cast)); } var implicitSuffix = shortVersion ? "(implicit)" : "Implicit"; var explicitSuffix = shortVersion ? "(explicit)" : "Explicit"; var from = new EntityNaming().GetIndexTitle(cast.Parameters[0].Type); var to = new EntityNaming().GetIndexTitle(cast.ReturnType); var explicitOrImplicit = cast.Name == "op_Implicit" ? implicitSuffix : explicitSuffix; return(shortVersion ? to + " " + explicitOrImplicit : from + " to " + to + " " + explicitOrImplicit); }