package fucoin.actions; import fucoin.wallet.AbstractNode; import akka.actor.ActorRef; import akka.actor.UntypedActorContext; public abstract class Action<T extends AbstractNode> { private ActorRef self; public final void doAction(T abstractNode){ this.self=abstractNode.getSelf(); onAction(abstractNode.getSender(),abstractNode.getSelf(),abstractNode.getContext(),abstractNode); } protected abstract void onAction(ActorRef sender, ActorRef self, UntypedActorContext context, T abstractNode); public void log(String string) { System.out.println(self.path().name()+": "+string); } }