| OLD | NEW |
| (Empty) | |
| 1 using System; |
| 2 |
| 3 namespace Google.Protobuf.Reflection |
| 4 { |
| 5 /// <summary> |
| 6 /// Extra information provided by generated code when initializing a message
or file descriptor. |
| 7 /// These are constructed as required, and are not long-lived. Hand-written
code should |
| 8 /// never need to use this type. |
| 9 /// </summary> |
| 10 public sealed class GeneratedCodeInfo |
| 11 { |
| 12 private static readonly string[] EmptyNames = new string[0]; |
| 13 private static readonly GeneratedCodeInfo[] EmptyCodeInfo = new Generate
dCodeInfo[0]; |
| 14 |
| 15 /// <summary> |
| 16 /// Irrelevant for file descriptors; the CLR type for the message for me
ssage descriptors. |
| 17 /// </summary> |
| 18 public Type ClrType { get; private set; } |
| 19 |
| 20 /// <summary> |
| 21 /// Irrelevant for file descriptors; the CLR property names (in message
descriptor field order) |
| 22 /// for fields in the message for message descriptors. |
| 23 /// </summary> |
| 24 public string[] PropertyNames { get; private set; } |
| 25 |
| 26 /// <summary> |
| 27 /// Irrelevant for file descriptors; the CLR property "base" names (in m
essage descriptor oneof order) |
| 28 /// for oneofs in the message for message descriptors. It is expected th
at for a oneof name of "Foo", |
| 29 /// there will be a "FooCase" property and a "ClearFoo" method. |
| 30 /// </summary> |
| 31 public string[] OneofNames { get; private set; } |
| 32 |
| 33 /// <summary> |
| 34 /// The reflection information for types within this file/message descri
ptor. Elements may be null |
| 35 /// if there is no corresponding generated type, e.g. for map entry type
s. |
| 36 /// </summary> |
| 37 public GeneratedCodeInfo[] NestedTypes { get; private set; } |
| 38 |
| 39 /// <summary> |
| 40 /// The CLR types for enums within this file/message descriptor. |
| 41 /// </summary> |
| 42 public Type[] NestedEnums { get; private set; } |
| 43 |
| 44 /// <summary> |
| 45 /// Creates a GeneratedCodeInfo for a message descriptor, with nested ty
pes, nested enums, the CLR type, property names and oneof names. |
| 46 /// Each array parameter may be null, to indicate a lack of values. |
| 47 /// The parameter order is designed to make it feasible to format the ge
nerated code readably. |
| 48 /// </summary> |
| 49 public GeneratedCodeInfo(Type clrType, string[] propertyNames, string[]
oneofNames, Type[] nestedEnums, GeneratedCodeInfo[] nestedTypes) |
| 50 { |
| 51 NestedTypes = nestedTypes ?? EmptyCodeInfo; |
| 52 NestedEnums = nestedEnums ?? ReflectionUtil.EmptyTypes; |
| 53 ClrType = clrType; |
| 54 PropertyNames = propertyNames ?? EmptyNames; |
| 55 OneofNames = oneofNames ?? EmptyNames; |
| 56 } |
| 57 |
| 58 /// <summary> |
| 59 /// Creates a GeneratedCodeInfo for a file descriptor, with only types a
nd enums. |
| 60 /// </summary> |
| 61 public GeneratedCodeInfo(Type[] nestedEnums, GeneratedCodeInfo[] nestedT
ypes) |
| 62 : this(null, null, null, nestedEnums, nestedTypes) |
| 63 { |
| 64 } |
| 65 } |
| 66 } |
| OLD | NEW |