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