package org.aisen.android.support.action;
import android.app.Activity;
/**
* Created by wangdan on 15-3-11.
*/
public abstract class IAction {
private Activity context;
private IAction parent;
private IAction child;
public IAction(Activity context, IAction parent) {
this.context = context;
this.parent = parent;
if (parent != null)
parent.setChild(this);
}
protected boolean interrupt() {
return false;
}
public void doInterrupt() {
}
public void run() {
if (parent == null || !parent.interrupt()) {
doAction();
}
}
final protected void setChild(IAction child) {
this.child = child;
}
final public IAction getChild() {
return child;
}
final public IAction getParent() {
return parent;
}
final protected Activity getContext() {
return context;
}
public void doAction() {
if (getChild() != null) {
getChild().run();
}
}
}