public EmitMapperException(string message, Exception innerException, IMappingOperation mappingOperation)
     : base(
         BuildMessage(message, mappingOperation),
         innerException
         )
 {
 }
Beispiel #2
0
        private IAstRefOrValue ReadSrcMappingValue(
            IMappingOperation mapping,
            int operationId)
        {
            var readOp = mapping as ISrcReadOperation;

            if (readOp != null)
            {
                return(AstBuildHelper.ReadMembersChain(
                           AstBuildHelper.ReadLocalRA(locFrom),
                           readOp.Source.MembersChain
                           ));
            }

            var destWriteOp = (DestWriteOperation)mapping;

            if (destWriteOp.Getter != null)
            {
                return(AstBuildHelper.CallMethod(
                           destWriteOp.Getter.GetType().GetMethod("Invoke"),
                           new AstCastclassRef(
                               (IAstRef)AstBuildHelper.ReadMemberRV(
                                   GetStoredObject(operationId, typeof(DestWriteOperation)),
                                   typeof(DestWriteOperation).GetProperty("Getter")
                                   ),
                               destWriteOp.Getter.GetType()
                               ),
                           new List <IAstStackItem>
                {
                    AstBuildHelper.ReadLocalRV(locState)
                }
                           ));
            }
            throw new EmitMapperException("Invalid mapping operations");
        }
        public EmitMapperException(string message, Exception innerException, IMappingOperation mappingOperation)
            : base(
                BuildMessage(message, mappingOperation), 
                innerException
                )
        {
			_mappingOperation = mappingOperation;
        }
Beispiel #4
0
        private IAstNode WriteMappingValue(
            IMappingOperation mappingOperation,
            int mappingItemId,
            IAstRefOrValue value)
        {
            IAstNode writeValue;

            if (mappingOperation is SrcReadOperation)
            {
                writeValue = AstBuildHelper.CallMethod(
                    typeof(ValueSetter).GetMethod("Invoke"),
                    new AstCastclassRef(
                        (IAstRef)AstBuildHelper.ReadMemberRV(
                            GetStoredObject(mappingItemId, typeof(SrcReadOperation)),
                            typeof(SrcReadOperation).GetProperty("Setter")
                            ),
                        (mappingOperation as SrcReadOperation).Setter.GetType()
                        ),
                    new List <IAstStackItem>()
                {
                    AstBuildHelper.ReadLocalRV(locTo),
                    value,
                    AstBuildHelper.ReadLocalRV(locState),
                }
                    );
            }
            else
            {
                writeValue = AstBuildHelper.WriteMembersChain(
                    (mappingOperation as IDestOperation).Destination.MembersChain,
                    AstBuildHelper.ReadLocalRA(locTo),
                    value
                    );
            }
            return(writeValue);
        }
 private static string BuildMessage(string message, IMappingOperation mappingOperation)
 {
     return($"{message} {mappingOperation.ToString()}");
 }
Beispiel #6
0
 private static string BuildMessage(string message, IMappingOperation mappingOperation)
 {
     return(message + " " + mappingOperation.ToString());
 }
Beispiel #7
0
 private static string BuildMessage(string message, IMappingOperation mappingOperation)
 {
     return message + " " + mappingOperation.ToString();
 }
		private IAstRefOrValue ReadSrcMappingValue(
			IMappingOperation mapping,
			int operationId)
		{
			var readOp = mapping as ISrcReadOperation;
			if (readOp != null)
			{
				return AstBuildHelper.ReadMembersChain(
					AstBuildHelper.ReadLocalRA(locFrom),
					readOp.Source.MembersChain
				);
			}

			var destWriteOp = (DestWriteOperation)mapping;
			if (destWriteOp.Getter != null)
			{
				return AstBuildHelper.CallMethod(
					destWriteOp.Getter.GetType().GetMethod("Invoke"),
                    new AstCastclassRef(
					    (IAstRef)AstBuildHelper.ReadMemberRV(
						    GetStoredObject(operationId, typeof(DestWriteOperation)),
						    typeof(DestWriteOperation).GetProperty("Getter")
					    ),
                        destWriteOp.Getter.GetType()
                    ),
					new List<IAstStackItem>
					{
						AstBuildHelper.ReadLocalRV(locState)
					}
				);
			}
			throw new EmitMapperException("Invalid mapping operations");
		}
		private IAstNode WriteMappingValue(
			IMappingOperation mappingOperation,
			int mappingItemId,
			IAstRefOrValue value)
		{
			IAstNode writeValue;

			if (mappingOperation is SrcReadOperation)
			{
				writeValue = AstBuildHelper.CallMethod(
					typeof(ValueSetter).GetMethod("Invoke"),
                    new AstCastclassRef(
					    (IAstRef)AstBuildHelper.ReadMemberRV(
					         GetStoredObject(mappingItemId, typeof(SrcReadOperation)),
					         typeof(SrcReadOperation).GetProperty("Setter")
					     ),
                         (mappingOperation as SrcReadOperation).Setter.GetType()
                    ),
					new List<IAstStackItem>()
                        {
							AstBuildHelper.ReadLocalRV(locTo),
                            value,
							AstBuildHelper.ReadLocalRV(locState),
                        }
					);
			}
			else
			{
				writeValue = AstBuildHelper.WriteMembersChain(
					(mappingOperation as IDestOperation).Destination.MembersChain,
					AstBuildHelper.ReadLocalRA(locTo),
					value
				);
			}
			return writeValue;
		}