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); } } }