package no.dusken.aranea.export.model;
import no.dusken.aranea.export.Util;
import no.dusken.aranea.model.Page;
import no.dusken.aranea.model.PageImage;
import no.dusken.aranea.model.Person;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
public class ExportPage {
private Map<String, String> fields = new HashMap<String, String>();
public Map<String, String> getFields() {
return fields;
}
public ExportPage(Page page) {
fields.put("title", page.getTitle());
fields.put("list_title", page.getAltTitle());
fields.put("slug", page.getSafeTitle());
fields.put("created_date", Util.format(page.getTimeCreated()));
fields.put("edit_date", Util.format(page.getModified()));
fields.put("pub_date", Util.format(page.getTimePublished()));
fields.put("valid_from", Util.format(page.getVisibleFrom()));
fields.put("valid_to", Util.format(page.getVisibleTo()));
fields.put("valid_to", Util.format(page.getVisibleTo()));
fields.put("authors", getAuthors(page));
fields.put("external_authors", page.getExternalAuthor());
fields.put("introduction", page.getSummary());
fields.put("list_introduction", page.getAlternaltiveSummary());
fields.put("body_images", getImages(page));
fields.put("araneaid", page.getID().toString());
fields.put("category", page.getParent().getName());
}
private String getImages(Page page) {
StringBuilder stringBuilder = new StringBuilder();
List<PageImage> pageImages = page.getPageImages();
for (Iterator<PageImage> iterator = pageImages.iterator(); iterator.hasNext(); ) {
PageImage pageImage = iterator.next();
stringBuilder.append(pageImage.getImage().getHash());
if(iterator.hasNext()){
stringBuilder.append(",");
}
}
return stringBuilder.toString();
}
private String getAuthors(Page page) {
StringBuilder stringBuilder = new StringBuilder();
List<Person> authors = page.getAuthors();
for (Iterator<Person> iterator = authors.iterator(); iterator.hasNext(); ) {
Person author = iterator.next();
stringBuilder.append(author.getUsername());
if(iterator.hasNext()){
stringBuilder.append(",");
}
}
return stringBuilder.toString();
}
}