001 // Copyright 2008 Waterken Inc. under the terms of the MIT X license 002 // found at http://www.opensource.org/licenses/mit-license.html 003 package org.ref_send.log; 004 005 import org.ref_send.deserializer; 006 import org.ref_send.name; 007 008 /** 009 * Logs a conditional message send. 010 * <p> 011 * This kind of event is produced for a send to a promise, such as happens for a 012 * {@linkplain org.ref_send.promise.Eventual#when when block}, or 013 * {@linkplain org.ref_send.promise.Eventual#cast eventual invocation}. 014 * The {@link #message} identifies the queued message, and the 015 * {@link #condition} identifies the promise the message is queued on. 016 * </p> 017 * @see Resolved 018 */ 019 public class 020 SentIf extends Sent { 021 static private final long serialVersionUID = 1L; 022 023 /** 024 * globally unique identifier for the condition 025 */ 026 public final String condition; 027 028 /** 029 * Constructs an instance. 030 * @param anchor {@link #anchor} 031 * @param timestamp {@link #timestamp} 032 * @param trace {@link #trace} 033 * @param message {@link #message} 034 * @param condition {@link #condition} 035 */ 036 public @deserializer 037 SentIf(@name("anchor") final Anchor anchor, 038 @name("timestamp") final Long timestamp, 039 @name("trace") final Trace trace, 040 @name("message") final String message, 041 @name("condition") final String condition) { 042 super(anchor, timestamp, trace, message); 043 this.condition = condition; 044 } 045 }