Skip to content
Snippets Groups Projects
Action.java 699 B
Newer Older
Michael Kmoch's avatar
Michael Kmoch committed
package fucoin.actions;

import akka.actor.ActorRef;
import akka.actor.UntypedActorContext;
import fucoin.wallet.AbstractNode;
Michael Kmoch's avatar
Michael Kmoch committed

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);
Michael Kmoch's avatar
Michael Kmoch committed

    public void log(String string) {
        System.out.println(self.path().name() + ": " + string);
    }