private void Run() { // Model definition building BuildModelDefinition(); // Applying mapping rules StorageMappingBuilder.Run(context); // Invoke user-defined transformations ApplyCustomDefinitions(); // Clean-up RemoveTemporaryDefinitions(); // Inspecting model definition ModelInspector.Run(context); // Applying fixup actions if (context.ModelInspectionResult.HasActions) { // Add handlers for hierarchies and types that could be created as a result of FixupProcessor work // This is done to inspect them right after construction with the help of ModelInspector var monitor = new TypeGenerationMonitor(context); monitor.Attach(); // Applying fixup actions to the model definition. FixupActionProcessor.Run(context); modelDefBuilder.ProcessTypes(); InspectAndProcessGeneratedEntities(); BuildModel(); monitor.Detach(); } else { // Simply build model BuildModel(); } }
private void InspectAndProcessGeneratedEntities() { foreach (var hieararchy in context.ModelInspectionResult.GeneratedHierarchies) { ModelInspector.Inspect(context, hieararchy); } foreach (var type in context.ModelInspectionResult.GeneratedTypes) { ModelInspector.Inspect(context, type); } context.ModelInspectionResult.GeneratedHierarchies.Clear(); context.ModelInspectionResult.GeneratedTypes.Clear(); if (context.ModelInspectionResult.HasActions) { // Applying fixup actions for generated entities. FixupActionProcessor.Run(context); } }
public override void Run(FixupActionProcessor processor) { processor.Process(this); }
public abstract void Run(FixupActionProcessor processor);