package org.akka.essentials.supervisor.example2;
import org.akka.essentials.supervisor.example2.MyActorSystem2.Result;
import akka.actor.UntypedActor;
import akka.event.Logging;
import akka.event.LoggingAdapter;
public class WorkerActor1 extends UntypedActor {
LoggingAdapter log = Logging.getLogger(getContext().system(), this);
private int state = 0;
@Override
public void preStart() {
log.info("Starting WorkerActor1 instance hashcode # {}",
this.hashCode());
}
public void onReceive(Object o) throws Exception {
if (o instanceof String) {
throw new NullPointerException("Null Value Passed");
} else if (o instanceof Integer) {
Integer value = (Integer) o;
if (value <= 0) {
throw new ArithmeticException("Number equal or less than zero");
} else
state = value;
} else if (o instanceof Result) {
getSender().tell(state);
} else {
throw new IllegalArgumentException("Wrong Argument");
}
}
@Override
public void postStop() {
log.info("Stopping WorkerActor1 instance hashcode # {}",
this.hashCode());
}
}