package io.monokkel.core;
import io.monokkel.core.utils.CleanerFunction;
import io.monokkel.core.utils.MapTransformation;
import io.monokkel.domain.PageData;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.Map;
import static io.monokkel.core.utils.MapTransformation.transformAgainstMap;
/**
* Created by tarjei on 11/09/14.
*/
public class DataCleaner {
private final Map<String, Object> fieldsAndCleanExpressions;
private Logger log = LoggerFactory.getLogger(DataCleaner.class);
public DataCleaner(Map<String, Object> fieldsAndCleanExpressions) {
this.fieldsAndCleanExpressions = fieldsAndCleanExpressions;
}
@SuppressWarnings("unchecked")
public PageData clean(final PageData pageData){
log.debug("Trying to clean data from {}",pageData.getUrl());
final Map<String,Object> transformed = pageData.getTransformed();
final Map<String, Object> cleanedTransformed = (transformed != null) ? transformAgainstMap(transformed, fieldsAndCleanExpressions, new CleanerFunction()) : null;
return new PageData(pageData.getUrlSet(), pageData.getUrl(), pageData.getTimestamp(), pageData.getResponse(), pageData.getTitle(), pageData.getExtractedContent(),cleanedTransformed);
}
}