package org.tanaguru.service;
import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
import org.tanaguru.contentadapter.*;
import org.tanaguru.contentadapter.util.URLIdentifierFactory;
import org.tanaguru.contentloader.DownloaderFactory;
import org.tanaguru.entity.audit.Content;
import org.tanaguru.entity.service.audit.ContentDataService;
/**
*
* @author jkowalczyk
*/
public class ContentAdapterServiceImpl implements ContentAdapterService {
private boolean writeCleanHtmlInFile;
private String tempFolderRootPath;
private ContentsAdapterFactory contentsAdapterFactory;
private HTMLCleanerFactory htmlCleanerFactory;
private HTMLParserFactory htmlParserFactory;
private Set<ContentAdapterFactory> contentAdapterFactorySet;
private URLIdentifierFactory urlIdentifierFactory;
private DownloaderFactory downloaderFactory;
private ContentDataService contentDataService;
public ContentAdapterServiceImpl() {
super();
}
@Override
public void setTempFolderRootPath(String tempFolderRootPath) {
this.tempFolderRootPath = tempFolderRootPath;
}
@Override
public Collection<Content> adaptContent(Collection<Content> contentList) {
Set<ContentAdapter> contentAdapterSet = new HashSet<>();
for (ContentAdapterFactory contentAdapterFactory : contentAdapterFactorySet) {
contentAdapterSet.add(contentAdapterFactory.create(
urlIdentifierFactory.create(),
downloaderFactory.create(),
contentDataService));
}
ContentsAdapter adapter = contentsAdapterFactory.create(
contentList,
writeCleanHtmlInFile,
tempFolderRootPath,
htmlCleanerFactory.create(),
htmlParserFactory.create(contentAdapterSet));
adapter.run();
return adapter.getResult();
}
@Override
public void setWriteCleanHtmlInFile(boolean writeCleanHtmlInFile) {
this.writeCleanHtmlInFile = writeCleanHtmlInFile;
}
@Override
public void setContentsAdapterFactory(ContentsAdapterFactory contentsAdapterFactory) {
this.contentsAdapterFactory = contentsAdapterFactory;
}
@Override
public void setHtmlCleanerFactory(HTMLCleanerFactory htmlCleanerFactory) {
this.htmlCleanerFactory = htmlCleanerFactory;
}
@Override
public void setHtmlParserFactory(HTMLParserFactory htmlParserFactory) {
this.htmlParserFactory = htmlParserFactory;
}
@Override
public void setContentAdapterFactorySet(Set<ContentAdapterFactory> contentAdapterFactorySet) {
this.contentAdapterFactorySet = contentAdapterFactorySet;
}
@Override
public void setUrlIdentifierFactory(URLIdentifierFactory urlIdentifierFactory) {
this.urlIdentifierFactory = urlIdentifierFactory;
}
@Override
public void setDownloaderFactory(DownloaderFactory downloaderFactory) {
this.downloaderFactory = downloaderFactory;
}
@Override
public void setContentDataService(ContentDataService contentDataService) {
this.contentDataService = contentDataService;
}
}