protected void setReceiverAndMessage(Object receiver, ESMessage message) { this.receiver = receiver; this.message = message; if (message == null) { ClassName = receiver == null ? "UndefinedObject" : receiver.GetType().AssemblyQualifiedName; tag = "MessageNotUnderstood"; messageText = ClassName + " instances do not know how to respond to an unknown message."; } else { var messageClass = message.Class; if (messageClass == null) { ClassName = receiver == null ? "UndefinedObject" : receiver.GetType().AssemblyQualifiedName; MemberName = "<nil selector>"; tag = "MessageNotUnderstood"; messageText = ClassName + " instances do not know how to respond to an unknown message."; } else { objectSpace = messageClass.ObjectSpace; var selector = message.Selector; MemberName = selector == null ? "<nil selector>" : selector.PrimitiveValue; ClassName = objectSpace.classOf(receiver).QualifiedName; tag = objectSpace.symbolFor("MessageNotUnderstood"); messageText = ClassName + " instances do not know how to respond to the message '" + MemberName + "'"; } } }
public MessageNotUnderstood(Object receiver, ESMessage message) : base() { setReceiverAndMessage(receiver, message); }