package io.monokkel.actors;
import akka.actor.Props;
import akka.actor.UntypedActor;
import io.monokkel.core.DataValidator;
import io.monokkel.messages.IndexValidatedDocument;
import io.monokkel.messages.ValidatePageData;
/**
* Created by tarjei on 21/09/14.
*/
public class DataValidatorActor extends UntypedActor {
private final DataValidator dataValidator;
public DataValidatorActor(final DataValidator dataValidator){
this.dataValidator = dataValidator;
}
public static Props props(final DataValidator dataValidator) {
return Props.create(DataValidatorActor.class, () -> new DataValidatorActor(dataValidator));
}
@Override
public void onReceive(Object message) throws Exception {
if(message instanceof ValidatePageData){
ValidatePageData validatePageData = (ValidatePageData)message;
dataValidator.validate(validatePageData.getPageData()); // Throws an exception if any validation errors
getSender().tell(new IndexValidatedDocument(validatePageData.getPageData()),getSelf());
}else{
unhandled(message);
}
}
}