public IObjectDefinition ParseElement(XmlElement element, ParserContext parserContext) { IObjectDefinitionFactory factory = parserContext.ReaderContext.ObjectDefinitionFactory; AssertUtils.ArgumentNotNull(factory, "factory"); string id = element.GetAttribute(ObjectNames.MongoConventionProfileId); string defaultId = StringUtils.HasText(id) ? id : ObjectNames.MongoConventionProfileDefaultId; ObjectDefinitionBuilder builder = ObjectDefinitionBuilder.GenericObjectDefinition(typeof(ConventionProfileFactory)); SetConvention(element, builder, ObjectNames.ConventionProfileDefaultValue, ConventionProfileFactory.DefaultValueConventionProperty); SetConvention(element, builder, ObjectNames.ConventionProfileElementName, ConventionProfileFactory.ElementNameConventionProperty); SetConvention(element, builder, ObjectNames.ConventionProfileExtraElementsMember, ConventionProfileFactory.ExtraElementsMemberConventionProperty); SetConvention(element, builder, ObjectNames.ConventionProfileIdGenerator, ConventionProfileFactory.IdGeneratorConventionProperty); SetConvention(element, builder, ObjectNames.ConventionProfileIdMember, ConventionProfileFactory.IdMemberConventionProperty); SetConvention(element, builder, ObjectNames.ConventionProfileIgnoreExtraElements, ConventionProfileFactory.IgnoreExtraElementsConventionProperty); SetConvention(element, builder, ObjectNames.ConventionProfileIgnoreIfDefault, ConventionProfileFactory.IgnoreIfDefaultConventionProperty); SetConvention(element, builder, ObjectNames.ConventionProfileIgnoreIfNull, ConventionProfileFactory.IgnoreIfNullConventionProperty); SetConvention(element, builder, ObjectNames.ConventionProfileMemberFinder, ConventionProfileFactory.MemberFinderConventionProperty); SetConvention(element, builder, ObjectNames.ConventionProfileSerializationOptions, ConventionProfileFactory.SerializationOptionsConventionProperty); parserContext.Registry.RegisterObjectDefinition(defaultId, builder.ObjectDefinition); return(null); }
/// <summary> /// Initializes a new instance of the <see cref="XmlReaderContext"/> class. /// </summary> /// <param name="resource">The resource.</param> /// <param name="reader">The reader.</param> /// <param name="objectDefinitionFactory">The factory to use for creating new <see cref="IObjectDefinition"/> instances.</param> internal XmlReaderContext(IResource resource, IObjectDefinitionReader reader, IObjectDefinitionFactory objectDefinitionFactory) : base(resource) { this.reader = reader; if (reader is XmlObjectDefinitionReader) { this.namespaceParserResolver = ((XmlObjectDefinitionReader) reader).NamespaceParserResolver; } this.objectDefinitionFactory = objectDefinitionFactory; }
/// <summary> /// Initializes a new instance of the <see cref="XmlReaderContext"/> class. /// </summary> /// <param name="resource">The resource.</param> /// <param name="reader">The reader.</param> /// <param name="objectDefinitionFactory">The factory to use for creating new <see cref="IObjectDefinition"/> instances.</param> internal XmlReaderContext(IResource resource, IObjectDefinitionReader reader, IObjectDefinitionFactory objectDefinitionFactory) : base(resource) { this.reader = reader; if (reader is XmlObjectDefinitionReader) { this.namespaceParserResolver = ((XmlObjectDefinitionReader)reader).NamespaceParserResolver; } this.objectDefinitionFactory = objectDefinitionFactory; }
/// <summary> /// Parse the specified XmlElement and register the resulting /// ObjectDefinitions with the <see cref="P:Spring.Objects.Factory.Xml.ParserContext.Registry"/> IObjectDefinitionRegistry /// embedded in the supplied <see cref="T:Spring.Objects.Factory.Xml.ParserContext"/> /// </summary> /// <remarks> /// <p>This method is never invoked if the parser is namespace aware /// and was called to process the root node. /// </p> /// </remarks> /// <param name="element">The element to be parsed. /// </param><param name="parserContext">TThe object encapsulating the current state of the parsing process. /// Provides access to a IObjectDefinitionRegistry /// </param> /// <returns> /// The primary object definition. /// </returns> public IObjectDefinition ParseElement(XmlElement element, ParserContext parserContext) { IObjectDefinitionFactory factory = parserContext.ReaderContext.ObjectDefinitionFactory; AssertUtils.ArgumentNotNull(factory, "factory"); RegisterTypeConverters(); string id = element.GetAttribute(ObjectNames.MongoId); string defaultId = StringUtils.HasText(id) ? id : ObjectNames.MongoDatabaseFactoryDefaultId; string url = element.GetAttribute(ObjectNames.MongoDatabaseFactoryUrl); string mongoRef = element.GetAttribute(ObjectNames.MongoDatabaseFactoryMongoRef); string dbname = element.GetAttribute(ObjectNames.MongoDatabaseFactoryDbname); ObjectDefinitionBuilder dbFactoryBuilder = ObjectDefinitionBuilder.GenericObjectDefinition(typeof(SimpleMongoDatabaseFactory)); IObjectDefinition userCredentials = GetUserCredentialsObjectDefinition(element); ParseAttribute(element, dbFactoryBuilder, SimpleMongoDatabaseFactory.WriteConcernProperty, ObjectNames.MongoDatabaseFactoryWriteConcern); if (StringUtils.HasText(url)) { if (StringUtils.HasText(mongoRef) || StringUtils.HasText(dbname) || userCredentials != null) { parserContext.ReaderContext.ReportException(element, ObjectNames.DbFactory, "Configure either url or details individually!"); } dbFactoryBuilder.AddConstructorArg(GetMongoUrl(url)); parserContext.Registry.RegisterObjectDefinition(defaultId, dbFactoryBuilder.ObjectDefinition); return(null); } if (StringUtils.HasText(mongoRef)) { dbFactoryBuilder.AddConstructorArgReference(mongoRef); } else { dbFactoryBuilder.AddConstructorArg(RegisterMongoObjectDefinition(element)); } dbname = StringUtils.HasText(dbname) ? dbname : ObjectNames.MongoDatabaseFactoryDefaultDatabaseName; dbFactoryBuilder.AddConstructorArg(dbname); if (userCredentials != null) { dbFactoryBuilder.AddConstructorArg(userCredentials); } parserContext.Registry.RegisterObjectDefinition(defaultId, dbFactoryBuilder.ObjectDefinition); return(null); }
/// <summary> /// Create a new <code>ObjectDefinitionBuilder</code> used to construct a child object definition.. /// </summary> /// <param name="objectDefinitionFactory">The object definition factory.</param> /// <param name="parentObjectName">Name of the parent object.</param> /// <returns></returns> public static ObjectDefinitionBuilder ChildObjectDefinition(IObjectDefinitionFactory objectDefinitionFactory, string parentObjectName) { ObjectDefinitionBuilder builder = new ObjectDefinitionBuilder(); builder.objectDefinitionFactory = objectDefinitionFactory; builder.objectDefinition = objectDefinitionFactory.CreateObjectDefinition(null, parentObjectName, AppDomain.CurrentDomain); return(builder); }
/// <summary> /// Create a new <code>ObjectDefinitionBuilder</code> used to construct a root object definition. /// </summary> /// <param name="objectDefinitionFactory">The object definition factory.</param> /// <param name="objectType">Type of the object.</param> /// <param name="factoryMethodName">Name of the factory method.</param> /// <returns>A new <code>ObjectDefinitionBuilder</code> instance.</returns> public static ObjectDefinitionBuilder RootObjectDefinition(IObjectDefinitionFactory objectDefinitionFactory, Type objectType, string factoryMethodName) { ObjectDefinitionBuilder builder = new ObjectDefinitionBuilder(); builder.objectDefinitionFactory = objectDefinitionFactory; builder.objectDefinition = objectDefinitionFactory.CreateObjectDefinition(objectType.FullName, null, AppDomain.CurrentDomain); builder.objectDefinition.ObjectType = objectType; builder.objectDefinition.FactoryMethodName = factoryMethodName; return(builder); }
/// <summary> /// Create a new <code>ObjectDefinitionBuilder</code> used to construct a root object definition. /// </summary> /// <param name="objectDefinitionFactory">The object definition factory.</param> /// <param name="objectTypeName">Name of the object type.</param> /// <param name="factoryMethodName">Name of the factory method.</param> /// <returns>A new <code>ObjectDefinitionBuilder</code> instance.</returns> public static ObjectDefinitionBuilder RootObjectDefinition(IObjectDefinitionFactory objectDefinitionFactory, string objectTypeName, string factoryMethodName) { ObjectDefinitionBuilder builder = new ObjectDefinitionBuilder(); builder.objectDefinitionFactory = objectDefinitionFactory; // Pass in null for parent name and also AppDomain to force object definition to be register by name and not type. builder.objectDefinition = objectDefinitionFactory.CreateObjectDefinition(objectTypeName, null, null); builder.objectDefinition.FactoryMethodName = factoryMethodName; return(builder); }
/// <summary> /// Parse the specified XmlElement and register the resulting /// ObjectDefinitions with the <see cref="P:Spring.Objects.Factory.Xml.ParserContext.Registry"/> IObjectDefinitionRegistry /// embedded in the supplied <see cref="T:Spring.Objects.Factory.Xml.ParserContext"/> /// </summary> /// <remarks> /// <p>This method is never invoked if the parser is namespace aware /// and was called to process the root node. /// </p> /// </remarks> /// <param name="element">The element to be parsed. /// </param><param name="parserContext">TThe object encapsulating the current state of the parsing process. /// Provides access to a IObjectDefinitionRegistry /// </param> /// <returns> /// The primary object definition. /// </returns> public IObjectDefinition ParseElement(XmlElement element, ParserContext parserContext) { IObjectDefinitionFactory factory = parserContext.ReaderContext.ObjectDefinitionFactory; IObjectDefinitionRegistry registry = parserContext.ReaderContext.Registry; AssertUtils.ArgumentNotNull(factory, "factory"); RegisterTypeConverters(); string id = element.GetAttribute(ObjectNames.MongoId); string defaultedId = StringUtils.HasText(id) ? id : ObjectNames.MongoDefaultId; ObjectDefinitionBuilder mongoDefBuilder = ObjectDefinitionBuilder.GenericObjectDefinition(typeof(MongoFactoryObject)); ParseAttribute(element, mongoDefBuilder, MongoFactoryObject.UrlProperty, ObjectNames.MongoUrl); ParseAttribute(element, mongoDefBuilder, MongoFactoryObject.ReplicaSetSeedsProperty, ObjectNames.MongoReplicaSet); ParseAttribute(element, mongoDefBuilder, MongoFactoryObject.WriteConcernProperty, ObjectNames.MongoWriteConcern); ParseMongoClientSettings(element, mongoDefBuilder); registry.RegisterObjectDefinition(defaultedId, mongoDefBuilder.ObjectDefinition); return(null); }
public SpringContainerConfigurator(IApplicationContext applicationContext) { _applicationContext = applicationContext; _factory = new DefaultObjectDefinitionFactory(); }
/// <summary> /// Create a new <code>ObjectDefinitionBuilder</code> used to construct a root object definition. /// </summary> /// <param name="objectDefinitionFactory">The object definition factory.</param> /// <param name="objectTypeName">The type name of the object.</param> /// <returns>A new <code>ObjectDefinitionBuilder</code> instance.</returns> public static ObjectDefinitionBuilder RootObjectDefinition(IObjectDefinitionFactory objectDefinitionFactory, string objectTypeName) { return RootObjectDefinition(objectDefinitionFactory, objectTypeName, null); }
public ObjectDefinitionService(IObjectDefinitionFactory objectDefinitionFactory, IConfigurableListableObjectFactory listableObjectFactory) { _objectDefinitionFactory = objectDefinitionFactory; _listableObjectFactory = listableObjectFactory; }
/// <summary> /// Create a new <code>ObjectDefinitionBuilder</code> used to construct a root object definition. /// </summary> /// <param name="objectDefinitionFactory">The object definition factory.</param> /// <param name="objectType">Type of the object.</param> /// <returns>A new <code>ObjectDefinitionBuilder</code> instance.</returns> public static ObjectDefinitionBuilder RootObjectDefinition(IObjectDefinitionFactory objectDefinitionFactory, Type objectType) { return(RootObjectDefinition(objectDefinitionFactory, objectType, null)); }
public void CreateObjectDefinitionBuilder() { odf = new DefaultObjectDefinitionFactory(); }
/// <summary> /// Create a new <code>ObjectDefinitionBuilder</code> used to construct a child object definition.. /// </summary> /// <param name="objectDefinitionFactory">The object definition factory.</param> /// <param name="parentObjectName">Name of the parent object.</param> /// <returns></returns> public static ObjectDefinitionBuilder ChildObjectDefinition(IObjectDefinitionFactory objectDefinitionFactory, string parentObjectName) { ObjectDefinitionBuilder builder = new ObjectDefinitionBuilder(); builder.objectDefinitionFactory = objectDefinitionFactory; builder.objectDefinition = objectDefinitionFactory.CreateObjectDefinition(null, parentObjectName, AppDomain.CurrentDomain); return builder; }
public Binder(IObjectDefinitionFactory objectDefinitionFactory) { this.objectDefinitionFactory = objectDefinitionFactory; }
/// <summary> /// Create a new <code>ObjectDefinitionBuilder</code> used to construct a root object definition. /// </summary> /// <param name="objectDefinitionFactory">The object definition factory.</param> /// <param name="objectType">Type of the object.</param> /// <returns>A new <code>ObjectDefinitionBuilder</code> instance.</returns> public static ObjectDefinitionBuilder RootObjectDefinition(IObjectDefinitionFactory objectDefinitionFactory, Type objectType) { return RootObjectDefinition(objectDefinitionFactory, objectType, null); }
/// <summary> /// Create a new <code>ObjectDefinitionBuilder</code> used to construct a root object definition. /// </summary> /// <param name="objectDefinitionFactory">The object definition factory.</param> /// <param name="objectType">Type of the object.</param> /// <param name="factoryMethodName">Name of the factory method.</param> /// <returns>A new <code>ObjectDefinitionBuilder</code> instance.</returns> public static ObjectDefinitionBuilder RootObjectDefinition(IObjectDefinitionFactory objectDefinitionFactory, Type objectType, string factoryMethodName) { ObjectDefinitionBuilder builder = new ObjectDefinitionBuilder(); builder.objectDefinitionFactory = objectDefinitionFactory; builder.objectDefinition = objectDefinitionFactory.CreateObjectDefinition(objectType.FullName, null, AppDomain.CurrentDomain); builder.objectDefinition.ObjectType = objectType; builder.objectDefinition.FactoryMethodName = factoryMethodName; return builder; }
/// <summary> /// Create a new <code>ObjectDefinitionBuilder</code> used to construct a root object definition. /// </summary> /// <param name="objectDefinitionFactory">The object definition factory.</param> /// <param name="objectTypeName">Name of the object type.</param> /// <param name="factoryMethodName">Name of the factory method.</param> /// <returns>A new <code>ObjectDefinitionBuilder</code> instance.</returns> public static ObjectDefinitionBuilder RootObjectDefinition(IObjectDefinitionFactory objectDefinitionFactory, string objectTypeName, string factoryMethodName) { ObjectDefinitionBuilder builder = new ObjectDefinitionBuilder(); builder.objectDefinitionFactory = objectDefinitionFactory; // Pass in null for parent name and also AppDomain to force object definition to be register by name and not type. builder.objectDefinition = objectDefinitionFactory.CreateObjectDefinition(objectTypeName, null, null); builder.objectDefinition.FactoryMethodName = factoryMethodName; return builder; }
/// <summary> /// Creates a new instance of the /// <see cref="Spring.Objects.Factory.Xml.XmlObjectDefinitionReader"/> class. /// </summary> /// <param name="registry"> /// The <see cref="Spring.Objects.Factory.Support.IObjectDefinitionRegistry"/> /// instance that this reader works on. /// </param> /// <param name="resolver"> /// The <see cref="System.Xml.XmlResolver"/>to be used for parsing. /// </param> /// <param name="objectDefinitionFactory">the <see cref="IObjectDefinitionFactory"/> to use for creating new <see cref="IObjectDefinition"/>s</param> protected XmlObjectDefinitionReader(IObjectDefinitionRegistry registry, XmlResolver resolver, IObjectDefinitionFactory objectDefinitionFactory) : base(registry) { Resolver = resolver; this.objectDefinitionFactory = objectDefinitionFactory; }
public FluentObjectDefinitionConfigurationRegistry(IObjectDefinitionFactory objectDefinitionFactory) { _objectDefinitionFactory = objectDefinitionFactory; }