Fix bugs in sizing TableLayoutPanel (Xamarin bug 18638)
[mono.git] / mcs / class / System.ComponentModel.Composition / src / ComponentModel / System / ComponentModel / Composition / Hosting / CompositionBatch.SingleExportComposablePart.cs
1 // -----------------------------------------------------------------------\r
2 // Copyright (c) Microsoft Corporation.  All rights reserved.\r
3 // -----------------------------------------------------------------------\r
4 using System;\r
5 using System.Collections.Generic;\r
6 using System.ComponentModel.Composition.Primitives;\r
7 using System.Linq;\r
8 using Microsoft.Internal;\r
9 \r
10 namespace System.ComponentModel.Composition.Hosting\r
11 {\r
12     partial class CompositionBatch\r
13     {\r
14         // Represents a part that exports a single export\r
15         private class SingleExportComposablePart : ComposablePart\r
16         {\r
17             private readonly Export _export;\r
18 \r
19             public SingleExportComposablePart(Export export)\r
20             {\r
21                 Assumes.NotNull(export);\r
22 \r
23                 this._export = export;\r
24             }\r
25 \r
26             public override IDictionary<string, object> Metadata\r
27             {\r
28                 get { return MetadataServices.EmptyMetadata; }\r
29             }\r
30 \r
31             public override IEnumerable<ExportDefinition> ExportDefinitions\r
32             {\r
33                 get { return new ExportDefinition[] { _export.Definition }; }\r
34             }\r
35 \r
36             public override IEnumerable<ImportDefinition> ImportDefinitions\r
37             {\r
38                 get { return Enumerable.Empty<ImportDefinition>(); }\r
39             }\r
40 \r
41             public override object GetExportedValue(ExportDefinition definition)\r
42             {\r
43                 Requires.NotNull(definition, "definition");\r
44 \r
45                 if (definition != _export.Definition)\r
46                 {\r
47                     throw ExceptionBuilder.CreateExportDefinitionNotOnThisComposablePart("definition");\r
48                 }\r
49 \r
50                 return _export.Value;\r
51             }\r
52 \r
53             public override void SetImport(ImportDefinition definition, IEnumerable<Export> exports)\r
54             {\r
55                 Requires.NotNull(definition, "definition");\r
56                 Requires.NotNullOrNullElements(exports, "exports");\r
57 \r
58                 throw ExceptionBuilder.CreateImportDefinitionNotOnThisComposablePart("definition");\r
59             }\r
60         }\r
61     }\r
62 }