/**
* Copyright (c) 2009-2011, The HATS Consortium. All rights reserved.
* This file is licensed under the terms of the Modified BSD License.
*/
package abs.backend.java.lib.runtime;
import java.util.Collections;
import java.util.List;
import abs.backend.java.lib.types.ABSRef;
import abs.backend.java.lib.types.ABSValue;
public abstract class AbstractAsyncCall<T extends ABSRef> implements AsyncCall<T> {
protected final ABSObject source;
protected final T target;
protected final Task<?> sender;
public AbstractAsyncCall(ABSObject source, T target) {
this(ABSRuntime.getCurrentTask(),source,target);
}
public AbstractAsyncCall(Task<?> sender, ABSObject source, T target) {
this.sender = sender;
this.source = source;
this.target = target;
}
@Override
public List<ABSValue> getArgs() {
return Collections.emptyList();
}
@Override
public T getTarget() {
return target;
}
@Override
public ABSObject getSource() {
return source;
}
public Task<?> getSender() {
return sender;
}
}