RssUrlRepository.java
package org.ferris.resiste.console.rss;
import java.io.File;
import java.nio.file.Files;
import java.util.List;
import java.util.stream.Collectors;
import javax.enterprise.context.ApplicationScoped;
import javax.inject.Inject;
import org.ferris.resiste.console.conf.ConfDirectory;
import org.slf4j.Logger;
/**
*
* @author Michael Remijan mjremijan@yahoo.com @mjremijan
*/
@ApplicationScoped
public class RssUrlRepository {
private static final long serialVersionUID = 7491906484654964631L;
@Inject
protected Logger log;
@Inject
protected RssUrlFactory factory;
protected File file;
@Inject
public RssUrlRepository(ConfDirectory root) {
file = new File(root, String.format("rss_urls.csv"));
if (!file.exists()) {
throw new RuntimeException(
String.format("Data file does not exist: \"%s\"", file.getAbsolutePath())
);
}
}
public List<RssUrl> findAll() {
log.info("ENTER");
List<String> lines = null;
try {
lines = Files.readAllLines(file.toPath());
} catch (Exception e) {
throw new RuntimeException(
String.format("Problem reading file \"%s\"", file.getAbsolutePath()), e
);
}
List<RssUrl> urls =
lines.stream()
.map(s -> factory.parse(s))
.filter(o -> o.isPresent())
.map(o -> o.get())
.collect(Collectors.toList())
;
return urls;
}
}