2 using System.ComponentModel.Composition;
\r
3 using System.Collections.Generic;
\r
4 using System.Linq.Expressions;
\r
5 using System.ComponentModel.Composition.Primitives;
\r
7 namespace System.ComponentModel.Composition.Factories
\r
9 // This class deliberately does not create instances of ImportDefinition,
\r
10 // so as to test other derived classes from ImportDefinition.
\r
11 internal static partial class ImportDefinitionFactory
\r
13 public static ImportDefinition Create(string contractName)
\r
15 return Create(contractName, (IEnumerable<KeyValuePair<string, Type>>)null, ImportCardinality.ExactlyOne, true, false);
\r
18 public static ImportDefinition Create(string contractName, IEnumerable<KeyValuePair<string, Type>> requiredMetadata)
\r
20 return Create(contractName, requiredMetadata, ImportCardinality.ExactlyOne, true, false);
\r
23 public static ImportDefinition Create(string contractName, ImportCardinality cardinality, bool isRecomposable, bool isPrerequisite)
\r
25 return Create(contractName, (IEnumerable<KeyValuePair<string, Type>>)null, cardinality, isRecomposable, isPrerequisite);
\r
28 public static ImportDefinition Create(string contractName, ImportCardinality cardinality)
\r
30 return Create(contractName, (IEnumerable<KeyValuePair<string, Type>>)null, cardinality, false, false);
\r
33 public static ImportDefinition Create(string contractName, bool isRecomposable)
\r
35 return Create(contractName, (IEnumerable<KeyValuePair<string, Type>>)null, ImportCardinality.ExactlyOne, isRecomposable, false);
\r
38 public static ImportDefinition Create(string contractName, bool isRecomposable, bool isPrerequisite)
\r
40 return Create(contractName, (IEnumerable<KeyValuePair<string, Type>>)null, ImportCardinality.ExactlyOne, isRecomposable, isPrerequisite);
\r
43 public static ImportDefinition Create(string contractName, IEnumerable<KeyValuePair<string, Type>> requiredMetadata, ImportCardinality cardinality, bool isRecomposable, bool isPrerequisite)
\r
45 return new DerivedContractBasedImportDefinition(contractName, requiredMetadata, cardinality, isRecomposable, isPrerequisite);
\r
48 public static ImportDefinition Create()
\r
50 return Create((Expression<Func<ExportDefinition, bool>>)null);
\r
53 public static ImportDefinition Create(Expression<Func<ExportDefinition, bool>> constraint)
\r
55 return Create(constraint, ImportCardinality.ExactlyOne, true, false);
\r
58 public static ImportDefinition Create(Expression<Func<ExportDefinition, bool>> constraint, ImportCardinality cardinality)
\r
60 return Create(constraint, cardinality, true, false);
\r
63 public static ImportDefinition Create(Expression<Func<ExportDefinition, bool>> constraint, ImportCardinality cardinality, bool isRecomposable, bool isPrerequisite)
\r
65 return new DerivedImportDefinition(constraint, cardinality, isRecomposable, isPrerequisite);
\r
68 public static ImportDefinition CreateDefault(string contractName, ImportCardinality cardinality, bool isRecomposable, bool isPrerequisite)
\r
70 return new ContractBasedImportDefinition(contractName, (string)null, (IEnumerable<KeyValuePair<string, Type>>)null, cardinality, isRecomposable, isPrerequisite, CreationPolicy.Any);
\r