public IAstNode ProcessOperations() { var result = new AstComplexNode(); foreach (var operation in operations) { IAstNode completeOperation = null; int operationId = AddObjectToStore(operation); if (operation is OperationsBlock) { completeOperation = new MappingOperationsProcessor(this) { operations = (operation as OperationsBlock).Operations }.ProcessOperations(); } else if (operation is ReadWriteComplex) { completeOperation = Process_ReadWriteComplex(operation as ReadWriteComplex, operationId); } else if (operation is DestSrcReadOperation) { completeOperation = ProcessDestSrcReadOperation(operation as DestSrcReadOperation, operationId); } else if (operation is SrcReadOperation) { completeOperation = ProcessSrcReadOperation(operation as SrcReadOperation, operationId); } else if (operation is DestWriteOperation) { completeOperation = ProcessDestWriteOperation(operation as DestWriteOperation, operationId); } else if (operation is ReadWriteSimple) { completeOperation = ProcessReadWriteSimple(operation as ReadWriteSimple, operationId); } if (completeOperation == null) { continue; } if (locException != null) { var tryCatch = CreateExceptionHandlingBlock(operationId, completeOperation); result.nodes.Add(tryCatch); } else { result.nodes.Add(completeOperation); } } return(result); }
public MappingOperationsProcessor(MappingOperationsProcessor prototype) { locFrom = prototype.locFrom; locTo = prototype.locTo; locState = prototype.locState; locException = prototype.locException; compilationContext = prototype.compilationContext; operations = prototype.operations; storedObjects = prototype.storedObjects; mappingConfigurator = prototype.mappingConfigurator; objectsMapperManager = prototype.objectsMapperManager; rootOperation = prototype.rootOperation; staticConvertersManager = prototype.staticConvertersManager; }