diff options
author | csharptest <roger@csharptest.net> | 2010-11-09 20:49:12 -0600 |
---|---|---|
committer | csharptest <roger@csharptest.net> | 2010-11-09 20:49:12 -0600 |
commit | 272cb8aee775de65e08b4ab17c485cd678d08266 (patch) | |
tree | 3489244ff5bd901592b535ea5ad9352096d1521f /src/ProtocolBuffers/TextFormat.cs | |
parent | e49547735834485dd22842e1a82bc5ae4139b8a8 (diff) | |
download | protobuf-272cb8aee775de65e08b4ab17c485cd678d08266.tar.gz protobuf-272cb8aee775de65e08b4ab17c485cd678d08266.tar.bz2 protobuf-272cb8aee775de65e08b4ab17c485cd678d08266.zip |
Lite feature complete.
Diffstat (limited to 'src/ProtocolBuffers/TextFormat.cs')
-rw-r--r-- | src/ProtocolBuffers/TextFormat.cs | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/ProtocolBuffers/TextFormat.cs b/src/ProtocolBuffers/TextFormat.cs index 81033087..81b3447c 100644 --- a/src/ProtocolBuffers/TextFormat.cs +++ b/src/ProtocolBuffers/TextFormat.cs @@ -170,17 +170,19 @@ namespace Google.ProtocolBuffers { } case FieldType.Enum: { - generator.Print(((EnumValueDescriptor) value).Name); + if (value is IEnumLite && !(value is EnumValueDescriptor)) { + throw new NotSupportedException("Lite enumerations are not supported."); + } + generator.Print(((EnumValueDescriptor)value).Name); break; } case FieldType.Message: case FieldType.Group: - if (value is IMessage) { - Print((IMessage)value, generator); - } else { -#warning ToDo - What do we print for IMessageLite? + if (value is IMessageLite && !(value is IMessage)) { + throw new NotSupportedException("Lite messages are not supported."); } + Print((IMessage)value, generator); break; } } @@ -580,7 +582,9 @@ namespace Google.ProtocolBuffers { if (extension == null) { subBuilder = builder.CreateBuilderForField(field); } else { - subBuilder = extension.DefaultInstance.WeakCreateBuilderForType(); + subBuilder = extension.DefaultInstance.WeakCreateBuilderForType() as IBuilder; + if (subBuilder == null) + throw new NotSupportedException("Lite messages are not supported."); } while (!tokenizer.TryConsume(endToken)) { |