package io.monokkel.actors;
import akka.actor.Props;
import akka.actor.UntypedActor;
import io.monokkel.core.DataCleaner;
import io.monokkel.domain.PageData;
import io.monokkel.messages.CleanTransformedContent;
import io.monokkel.messages.CleanerDone;
/**
* Created by tarjei on 11/09/14.
*/
public class CleanerActor extends UntypedActor {
private final DataCleaner dataCleaner;
public CleanerActor(final DataCleaner dataCleaner) {
this.dataCleaner = dataCleaner;
}
public static Props props(final DataCleaner dataCleaner) {
return Props.create(CleanerActor.class, () -> new CleanerActor(dataCleaner));
}
@Override
public void onReceive(Object message) throws Exception {
if(message instanceof CleanTransformedContent){
CleanTransformedContent cleanTransformedContent = (CleanTransformedContent)message;
final PageData cleanedData = dataCleaner.clean(cleanTransformedContent.getPageData());
getSender().tell(new CleanerDone(cleanedData, cleanTransformedContent.getUrlSet(), cleanTransformedContent.getDepth(), cleanTransformedContent.getMaxDept()),getSelf());
} else {
unhandled(message);
}
}
}