Exporter for Event
git-svn-id: https://svn.libreccm.org/ccm/trunk@5798 8810af33-2d31-482b-a856-94f89814c4dfmaster
parent
0b986f95a1
commit
965ee740de
|
|
@ -19,6 +19,8 @@
|
||||||
package com.arsdigita.cms.contenttypes;
|
package com.arsdigita.cms.contenttypes;
|
||||||
|
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
|
import org.libreccm.export.ExportManager;
|
||||||
|
import org.librecms.contenttypes.EventExporter;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Executes at each system startup and initializes the Event content type.
|
* Executes at each system startup and initializes the Event content type.
|
||||||
|
|
@ -42,6 +44,8 @@ public class EventInitializer extends ContentTypeInitializer {
|
||||||
*/
|
*/
|
||||||
public EventInitializer() {
|
public EventInitializer() {
|
||||||
super("ccm-cms-types-event.pdl.mf", Event.BASE_DATA_OBJECT_TYPE);
|
super("ccm-cms-types-event.pdl.mf", Event.BASE_DATA_OBJECT_TYPE);
|
||||||
|
|
||||||
|
ExportManager.getInstance().registerExporter(new EventExporter());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,147 @@
|
||||||
|
package org.librecms.contenttypes;
|
||||||
|
|
||||||
|
import com.arsdigita.cms.ItemCollection;
|
||||||
|
import com.arsdigita.cms.contenttypes.Event;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.core.JsonGenerator;
|
||||||
|
import org.librecms.contentsection.AbstractContentItemsExporter;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.LocalTime;
|
||||||
|
import java.time.ZoneId;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Locale;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||||
|
*/
|
||||||
|
public class EventExporter extends AbstractContentItemsExporter<Event> {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void exportContentItemProperties(
|
||||||
|
final Event event, final JsonGenerator jsonGenerator)
|
||||||
|
throws IOException {
|
||||||
|
|
||||||
|
final DateTimeFormatter dateTimeFormatter
|
||||||
|
= DateTimeFormatter.ISO_DATE_TIME;
|
||||||
|
|
||||||
|
if (event.getEndDate() != null) {
|
||||||
|
|
||||||
|
final LocalDateTime endDate = LocalDateTime
|
||||||
|
.ofInstant(event.getEndDate().toInstant(),
|
||||||
|
ZoneId.systemDefault());
|
||||||
|
final LocalDateTime endDateTime;
|
||||||
|
|
||||||
|
|
||||||
|
if (event.getEndTime() == null) {
|
||||||
|
endDateTime = endDate;
|
||||||
|
} else {
|
||||||
|
|
||||||
|
final LocalDateTime endTime = LocalDateTime
|
||||||
|
.ofInstant(event.getEndTime().toInstant(),
|
||||||
|
ZoneId.systemDefault());
|
||||||
|
|
||||||
|
endDateTime = LocalDateTime.of(endDate.toLocalDate(),
|
||||||
|
endTime.toLocalTime());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
jsonGenerator.writeStringField(
|
||||||
|
"endDate", dateTimeFormatter.format(endDateTime));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (event.getStartDate() != null) {
|
||||||
|
|
||||||
|
final LocalDateTime startDate = LocalDateTime
|
||||||
|
.ofInstant(event.getStartDate().toInstant(),
|
||||||
|
ZoneId.systemDefault());
|
||||||
|
final LocalDateTime startDateTime;
|
||||||
|
if (event.getStartTime() == null) {
|
||||||
|
startDateTime = startDate;
|
||||||
|
} else {
|
||||||
|
|
||||||
|
final LocalDateTime startTime = LocalDateTime
|
||||||
|
.ofInstant(event.getStartTime().toInstant(),
|
||||||
|
ZoneId.systemDefault());
|
||||||
|
|
||||||
|
startDateTime = LocalDateTime.of(startDate.toLocalDate(),
|
||||||
|
startTime.toLocalTime());
|
||||||
|
}
|
||||||
|
jsonGenerator.writeStringField(
|
||||||
|
"startDate", dateTimeFormatter.format(startDateTime));
|
||||||
|
}
|
||||||
|
|
||||||
|
jsonGenerator.writeStringField("mapLink", event.getMapLink());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Map<String, Map<Locale, String>> collectLocalizedValues(
|
||||||
|
final ItemCollection instances) {
|
||||||
|
|
||||||
|
final Map<Locale, String> eventDateValues = new HashMap<>();
|
||||||
|
final Map<Locale, String> locationValues = new HashMap<>();
|
||||||
|
final Map<Locale, String> mainContributorValues = new HashMap<>();
|
||||||
|
final Map<Locale, String> eventTypeValues = new HashMap<>();
|
||||||
|
final Map<Locale, String> leadValues = new HashMap<>();
|
||||||
|
final Map<Locale, String> textValues = new HashMap<>();
|
||||||
|
|
||||||
|
while(instances.next()) {
|
||||||
|
|
||||||
|
final Event event = (Event) instances.getContentItem();
|
||||||
|
final String lang = event.getLanguage();
|
||||||
|
final Locale locale = new Locale(lang);
|
||||||
|
|
||||||
|
final String eventDate = event.getEventDate();
|
||||||
|
final String location = event.getLocation();
|
||||||
|
final String mainContributor = event.getMainContributor();
|
||||||
|
final String eventType = event.getEventType();
|
||||||
|
final String lead = event.getLead();
|
||||||
|
final String text;
|
||||||
|
if (event.getTextAsset() == null) {
|
||||||
|
text = "";
|
||||||
|
} else {
|
||||||
|
text = event.getTextAsset().getText();
|
||||||
|
}
|
||||||
|
|
||||||
|
eventDateValues.put(locale, eventDate);
|
||||||
|
locationValues.put(locale, location);
|
||||||
|
mainContributorValues.put(locale, mainContributor);
|
||||||
|
eventTypeValues.put(locale, eventType);
|
||||||
|
leadValues.put(locale, lead);
|
||||||
|
textValues.put(locale, text);
|
||||||
|
}
|
||||||
|
|
||||||
|
instances.rewind();
|
||||||
|
|
||||||
|
final Map<String, Map<Locale, String>> properties = new HashMap<>();
|
||||||
|
properties.put("eventDate", eventDateValues);
|
||||||
|
properties.put("location", locationValues);
|
||||||
|
properties.put("mainContributor", mainContributorValues);
|
||||||
|
properties.put("eventType", eventTypeValues);
|
||||||
|
properties.put("description", leadValues);
|
||||||
|
properties.put("text", textValues);
|
||||||
|
|
||||||
|
return properties;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Class<Event> exportsType() {
|
||||||
|
return Event.class;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String exportsBaseDataObjectType() {
|
||||||
|
return Event.BASE_DATA_OBJECT_TYPE;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String convertsToType() {
|
||||||
|
return "org.librecms.contenttypes.Event";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue