private string Process(ActiveRecordModelBuilder builder, ActiveRecordModel model) { GraphConnectorVisitor connectorVisitor = new GraphConnectorVisitor(builder.Models); connectorVisitor.VisitNode(model); SemanticVerifierVisitor semanticVisitor = new SemanticVerifierVisitor(builder.Models); semanticVisitor.VisitNode(model); XmlGenerationVisitor xmlVisitor = new XmlGenerationVisitor(); xmlVisitor.CreateXml(model); return xmlVisitor.Xml; }
private string Process(ActiveRecordModelBuilder builder, ActiveRecordModel model) { GraphConnectorVisitor connectorVisitor = new GraphConnectorVisitor(builder.Models); connectorVisitor.VisitNode(model); SemanticVerifierVisitor semanticVisitor = new SemanticVerifierVisitor(builder.Models); semanticVisitor.VisitNode(model); XmlGenerationVisitor xmlVisitor = new XmlGenerationVisitor(); xmlVisitor.CreateXml(model); return(xmlVisitor.Xml); }
private static void RegisterTypes(ISessionFactoryHolder holder, IConfigurationSource source, IEnumerable <Type> types, bool ignoreProblematicTypes) { lock (lockConfig) { ActiveRecordModelCollection models = BuildModels(holder, source, types, ignoreProblematicTypes); GraphConnectorVisitor connectorVisitor = new GraphConnectorVisitor(models); connectorVisitor.VisitNodes(models); ModelsDelegate modelsCreatedHandler = ModelsCreated; if (modelsCreatedHandler != null) { modelsCreatedHandler(models, source); } SemanticVerifierVisitor semanticVisitor = new SemanticVerifierVisitor(models); semanticVisitor.VisitNodes(models); ModelsDelegate modelsValidatedHandler = ModelsValidated; if (modelsValidatedHandler != null) { modelsValidatedHandler(models, source); } AddXmlToNHibernateCfg(holder, models); AddXmlToNHibernateFromAssmebliesAttributes(holder, models); SessionFactoryHolderDelegate registeredInConfigurationHandler = MappingRegisteredInConfiguration; if (registeredInConfigurationHandler != null) { registeredInConfigurationHandler(holder); } if (source.VerifyModelsAgainstDBSchema) { VerifySchema(models); } } }
/// <summary> /// Initialize the mappings using the configuration and /// the list of types /// </summary> public static void Initialize(IConfigurationSource source, params Type[] types) { if (source == null) { throw new ArgumentNullException("source"); } if (types == null) { throw new ArgumentNullException("types"); } // First initialization ISessionFactoryHolder holder = CreateSessionFactoryHolderImplementation(source); holder.ThreadScopeInfo = CreateThreadScopeInfoImplementation(source); RaiseSessionFactoryHolderCreated(holder); ActiveRecordModel.type2Model.Clear(); ActiveRecordBase._holder = holder; // Base configuration SetUpConfiguration(source, typeof(ActiveRecordBase), holder); ActiveRecordModelBuilder builder = new ActiveRecordModelBuilder(); ActiveRecordModelCollection models = builder.Models; foreach (Type type in types) { if (models.Contains(type) || type == typeof(ActiveRecordBase) || type == typeof(ActiveRecordValidationBase)) { continue; } else if (type.IsAbstract && typeof(ActiveRecordBase).IsAssignableFrom(type)) { SetUpConfiguration(source, type, holder); continue; } else if (!IsActiveRecordType(type)) { continue; } builder.Create(type); } GraphConnectorVisitor connectorVisitor = new GraphConnectorVisitor(models); connectorVisitor.VisitNodes(models); SemanticVerifierVisitor semanticVisitor = new SemanticVerifierVisitor(models); semanticVisitor.VisitNodes(models); XmlGenerationVisitor xmlVisitor = new XmlGenerationVisitor(); foreach (ActiveRecordModel model in models) { Configuration cfg = holder.GetConfiguration(holder.GetRootType(model.Type)); if (!model.IsNestedType && !model.IsDiscriminatorSubClass && !model.IsJoinedSubClass) { xmlVisitor.Reset(); xmlVisitor.CreateXml(model); String xml = xmlVisitor.Xml; if (xml != String.Empty) { cfg.AddXmlString(xml); } } } }