package jj.script;
import java.io.Serializable;
public class ContinuationState implements Serializable {
private final Continuation continuation;
private final Class<? extends Continuation> type;
ContinuationState(final Continuation continuation) {
this.type = continuation.getClass();
this.continuation = continuation;
}
private static final long serialVersionUID = 1L;
public Class<? extends Continuation> type() {
return type;
}
public <T extends Continuation> T continuationAs(Class<T> type) {
assert type.isAssignableFrom(this.type);
return type.cast(continuation);
}
public PendingKey pendingKey() {
return continuation.pendingKey();
}
public String toString() {
return String.format("type: %s, message: %s", type, continuation);
}
}