Faster XML creation for Publications
git-svn-id: https://svn.libreccm.org/ccm/trunk@5486 8810af33-2d31-482b-a856-94f89814c4dfmaster
parent
289396315b
commit
c9b802a317
|
|
@ -32,19 +32,23 @@ import com.arsdigita.cms.contenttypes.SeriesCollection;
|
||||||
import com.arsdigita.cms.dispatcher.SimpleXMLGenerator;
|
import com.arsdigita.cms.dispatcher.SimpleXMLGenerator;
|
||||||
import com.arsdigita.cms.scipublications.imexporter.PublicationFormat;
|
import com.arsdigita.cms.scipublications.imexporter.PublicationFormat;
|
||||||
import com.arsdigita.cms.scipublications.exporter.SciPublicationsExporters;
|
import com.arsdigita.cms.scipublications.exporter.SciPublicationsExporters;
|
||||||
|
import com.arsdigita.cms.scipublications.importer.report.OrganizationalUnitImportReport;
|
||||||
import com.arsdigita.globalization.GlobalizationHelper;
|
import com.arsdigita.globalization.GlobalizationHelper;
|
||||||
import com.arsdigita.xml.Element;
|
import com.arsdigita.xml.Element;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @author Jens Pelzetter
|
* @author Jens Pelzetter
|
||||||
* @version $Id$
|
* @version $Id: PublicationExtraXmlGenerator.java 4544 2017-01-30 20:34:53Z
|
||||||
|
* jensp $
|
||||||
*/
|
*/
|
||||||
public class PublicationExtraXmlGenerator implements ExtraXMLGenerator {
|
public class PublicationExtraXmlGenerator implements ExtraXMLGenerator {
|
||||||
|
|
||||||
private final static List<ExtraXMLGenerator> EXTENDING_GENERATORS = new ArrayList<ExtraXMLGenerator>();
|
private final static List<ExtraXMLGenerator> EXTENDING_GENERATORS
|
||||||
|
= new ArrayList<ExtraXMLGenerator>();
|
||||||
private boolean listMode;
|
private boolean listMode;
|
||||||
|
|
||||||
public static void addExtendingGenerator(final ExtraXMLGenerator generator) {
|
public static void addExtendingGenerator(final ExtraXMLGenerator generator) {
|
||||||
|
|
@ -75,7 +79,8 @@ public class PublicationExtraXmlGenerator implements ExtraXMLGenerator {
|
||||||
if (!listMode) {
|
if (!listMode) {
|
||||||
createOrgaUnitsXml(publication, element, state);
|
createOrgaUnitsXml(publication, element, state);
|
||||||
|
|
||||||
final List<PublicationFormat> formats = SciPublicationsExporters.getInstance().getSupportedFormats();
|
final List<PublicationFormat> formats = SciPublicationsExporters
|
||||||
|
.getInstance().getSupportedFormats();
|
||||||
|
|
||||||
for (PublicationFormat format : formats) {
|
for (PublicationFormat format : formats) {
|
||||||
createExportLink(format, element, (Publication) item, state);
|
createExportLink(format, element, (Publication) item, state);
|
||||||
|
|
@ -137,8 +142,9 @@ public class PublicationExtraXmlGenerator implements ExtraXMLGenerator {
|
||||||
private void createOrgaUnitsXml(final Publication publication,
|
private void createOrgaUnitsXml(final Publication publication,
|
||||||
final Element parent,
|
final Element parent,
|
||||||
final PageState state) {
|
final PageState state) {
|
||||||
final PublicationGenericOrganizationalsUnitCollection orgaunits =
|
final PublicationGenericOrganizationalsUnitCollection orgaunits
|
||||||
publication.getOrganizationalUnits();
|
= publication
|
||||||
|
.getOrganizationalUnits();
|
||||||
if ((orgaunits == null) || orgaunits.isEmpty()) {
|
if ((orgaunits == null) || orgaunits.isEmpty()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -146,9 +152,17 @@ public class PublicationExtraXmlGenerator implements ExtraXMLGenerator {
|
||||||
final Element orgaunitsElem = parent.newChildElement(
|
final Element orgaunitsElem = parent.newChildElement(
|
||||||
"organizationalunits");
|
"organizationalunits");
|
||||||
while (orgaunits.next()) {
|
while (orgaunits.next()) {
|
||||||
createOrgaUnitXml(orgaunits.getOrganizationalUnit(GlobalizationHelper.getNegotiatedLocale().getLanguage()),
|
// createOrgaUnitXml(orgaunits.getOrganizationalUnit(
|
||||||
orgaunitsElem,
|
// GlobalizationHelper.getNegotiatedLocale().getLanguage()),
|
||||||
state);
|
// orgaunitsElem,
|
||||||
|
// state);
|
||||||
|
|
||||||
|
final GenericOrganizationalUnit orgaUnit = orgaunits
|
||||||
|
.getOrganizationalUnit();
|
||||||
|
final Element orgaUnitElem = orgaunitsElem.newChildElement("organizationalunit");
|
||||||
|
orgaUnitElem.addAttribute("oid", orgaUnit.getOID().toString());
|
||||||
|
final Element titleElem = orgaUnitElem.newChildElement("title");
|
||||||
|
titleElem.setText(orgaUnit.getTitle());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -170,7 +184,8 @@ public class PublicationExtraXmlGenerator implements ExtraXMLGenerator {
|
||||||
|
|
||||||
final Element seriesElem = parent.newChildElement("series");
|
final Element seriesElem = parent.newChildElement("series");
|
||||||
while (series.next()) {
|
while (series.next()) {
|
||||||
createSeriesElemXml(series.getSeries(GlobalizationHelper.getNegotiatedLocale().getLanguage()),
|
createSeriesElemXml(series.getSeries(GlobalizationHelper
|
||||||
|
.getNegotiatedLocale().getLanguage()),
|
||||||
series.getVolumeOfSeries(),
|
series.getVolumeOfSeries(),
|
||||||
seriesElem,
|
seriesElem,
|
||||||
state);
|
state);
|
||||||
|
|
@ -184,13 +199,21 @@ public class PublicationExtraXmlGenerator implements ExtraXMLGenerator {
|
||||||
if (series == null) {
|
if (series == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
final XmlGenerator generator = new XmlGenerator(series);
|
|
||||||
generator.setItemElemName("series", "");
|
final Element seriesItemElem = seriesElem.newChildElement("series");
|
||||||
if (volumeOfSeries != null) {
|
seriesItemElem.addAttribute("oid", series.getOID().toString());
|
||||||
generator.addItemAttribute("volume", volumeOfSeries);
|
seriesItemElem.addAttribute("volume", volumeOfSeries);
|
||||||
}
|
|
||||||
generator.setListMode(listMode);
|
final Element titleElem = seriesItemElem.newChildElement("title");
|
||||||
generator.generateXML(state, seriesElem, "");
|
titleElem.setText(series.getTitle());
|
||||||
|
|
||||||
|
// final XmlGenerator generator = new XmlGenerator(series);
|
||||||
|
// generator.setItemElemName("series", "");
|
||||||
|
// if (volumeOfSeries != null) {
|
||||||
|
// generator.addItemAttribute("volume", volumeOfSeries);
|
||||||
|
// }
|
||||||
|
// generator.setListMode(listMode);
|
||||||
|
// generator.generateXML(state, seriesElem, "");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void createExportLink(final PublicationFormat format,
|
private void createExportLink(final PublicationFormat format,
|
||||||
|
|
@ -199,8 +222,8 @@ public class PublicationExtraXmlGenerator implements ExtraXMLGenerator {
|
||||||
final PageState state) {
|
final PageState state) {
|
||||||
final Element exportLinkElem = parent.newChildElement(
|
final Element exportLinkElem = parent.newChildElement(
|
||||||
"publicationExportLink");
|
"publicationExportLink");
|
||||||
final Element formatKeyElem =
|
final Element formatKeyElem = exportLinkElem
|
||||||
exportLinkElem.newChildElement("formatKey");
|
.newChildElement("formatKey");
|
||||||
formatKeyElem.setText(format.getName().toLowerCase());
|
formatKeyElem.setText(format.getName().toLowerCase());
|
||||||
final Element formatNameElem = exportLinkElem.newChildElement(
|
final Element formatNameElem = exportLinkElem.newChildElement(
|
||||||
"formatName");
|
"formatName");
|
||||||
|
|
@ -235,4 +258,5 @@ public class PublicationExtraXmlGenerator implements ExtraXMLGenerator {
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue