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 |