Bugfixes for Exporters, Exporter for Note assets
git-svn-id: https://svn.libreccm.org/ccm/trunk@5731 8810af33-2d31-482b-a856-94f89814c4dfmaster
parent
45f4bca4ab
commit
256fcdba3d
|
|
@ -1,44 +1,169 @@
|
||||||
package org.librecms.assets;
|
package org.librecms.assets;
|
||||||
|
|
||||||
|
import com.arsdigita.cms.ContentItem;
|
||||||
|
import com.arsdigita.cms.FileAsset;
|
||||||
import com.arsdigita.cms.contentassets.FileAttachment;
|
import com.arsdigita.cms.contentassets.FileAttachment;
|
||||||
|
import com.arsdigita.kernel.KernelConfig;
|
||||||
|
import com.arsdigita.persistence.DataCollection;
|
||||||
|
import com.arsdigita.persistence.DataObject;
|
||||||
|
import com.arsdigita.util.UncheckedWrapperException;
|
||||||
|
import com.arsdigita.web.WebConfig;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.core.JsonEncoding;
|
||||||
|
import com.fasterxml.jackson.core.JsonFactory;
|
||||||
import com.fasterxml.jackson.core.JsonGenerator;
|
import com.fasterxml.jackson.core.JsonGenerator;
|
||||||
import org.librecms.contentsection.AbstractBinaryAssetsExporter;
|
import org.libreccm.export.AbstractDomainObjectsExporter;
|
||||||
|
import org.libreccm.export.IdSequence;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
import java.nio.file.Path;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||||
*/
|
*/
|
||||||
public class FileAssetsExporter
|
public class FileAssetsExporter
|
||||||
extends AbstractBinaryAssetsExporter<FileAttachment> {
|
extends AbstractDomainObjectsExporter<ContentItem> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void exportBinaryAssetProperties(
|
public Class<ContentItem> exportsType() {
|
||||||
final FileAttachment asset,
|
return ContentItem.class;
|
||||||
final JsonGenerator jsonGenerator)
|
|
||||||
throws IOException {
|
|
||||||
|
|
||||||
// Nothing
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Class<FileAttachment> exportsType() {
|
|
||||||
|
|
||||||
return FileAttachment.class;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String exportsBaseDataObjectType() {
|
public String exportsBaseDataObjectType() {
|
||||||
|
return ContentItem.BASE_DATA_OBJECT_TYPE;
|
||||||
return FileAttachment.BASE_DATA_OBJECT_TYPE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String convertsToType() {
|
public String convertsToType() {
|
||||||
|
|
||||||
return "org.librecms.assets.FileAsset";
|
return "org.librecms.assets.FileAsset";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected boolean includeSubTypes() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected List<String> exportDomainObject(
|
||||||
|
final ContentItem item,
|
||||||
|
final Path targetDir) {
|
||||||
|
|
||||||
|
final DataCollection fileAttachments = FileAttachment
|
||||||
|
.getAttachments(item);
|
||||||
|
|
||||||
|
final List<String> uuids = new ArrayList<>();
|
||||||
|
while (fileAttachments.next()) {
|
||||||
|
|
||||||
|
final String uuid = exportFileAsset(
|
||||||
|
fileAttachments.getDataObject(),
|
||||||
|
targetDir);
|
||||||
|
uuids.add(uuid);
|
||||||
|
}
|
||||||
|
|
||||||
|
return uuids;
|
||||||
|
}
|
||||||
|
|
||||||
|
private String exportFileAsset(final DataObject dataObj,
|
||||||
|
final Path targetDir) {
|
||||||
|
|
||||||
|
final FileAttachment fileAttachment = new FileAttachment(dataObj);
|
||||||
|
final String uuid = generateFileAssetUuid(fileAttachment);
|
||||||
|
|
||||||
|
final Path targetFilePath = generateTargetFilePath(targetDir, uuid);
|
||||||
|
final File targetFile = targetFilePath.toFile();
|
||||||
|
|
||||||
|
final JsonFactory jsonFactory = new JsonFactory();
|
||||||
|
try (JsonGenerator jsonGenerator = jsonFactory
|
||||||
|
.createGenerator(targetFile, JsonEncoding.UTF8)) {
|
||||||
|
|
||||||
|
jsonGenerator.writeStartObject();
|
||||||
|
|
||||||
|
jsonGenerator.writeNumberField("objectId",
|
||||||
|
IdSequence.getInstance().nextId());
|
||||||
|
jsonGenerator.writeStringField("uuid", uuid);
|
||||||
|
jsonGenerator.writeStringField("displayName",
|
||||||
|
fileAttachment.getDisplayName());
|
||||||
|
|
||||||
|
jsonGenerator.writeObjectFieldStart("description");
|
||||||
|
jsonGenerator.writeStringField(
|
||||||
|
KernelConfig.getConfig().getDefaultLanguage(),
|
||||||
|
fileAttachment.getDescription());
|
||||||
|
jsonGenerator.writeEndObject();
|
||||||
|
|
||||||
|
jsonGenerator.writeStringField(
|
||||||
|
"mimeType",
|
||||||
|
fileAttachment.getMimeType().toString());
|
||||||
|
|
||||||
|
jsonGenerator.writeStringField("fileName",
|
||||||
|
fileAttachment.getName());
|
||||||
|
|
||||||
|
jsonGenerator.writeObjectFieldStart("title");
|
||||||
|
jsonGenerator.writeStringField(
|
||||||
|
KernelConfig.getConfig().getDefaultLanguage(),
|
||||||
|
fileAttachment.getName());
|
||||||
|
jsonGenerator.writeEndObject();
|
||||||
|
|
||||||
|
jsonGenerator.writeBinaryField("data", fileAttachment.getContent());
|
||||||
|
|
||||||
|
jsonGenerator.writeNumberField("size", fileAttachment.getSize());
|
||||||
|
|
||||||
|
jsonGenerator.writeEndObject();
|
||||||
|
|
||||||
|
} catch (IOException ex) {
|
||||||
|
throw new UncheckedWrapperException(ex);
|
||||||
|
}
|
||||||
|
|
||||||
|
return uuid;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected static String generateFileAssetUuid(
|
||||||
|
final FileAttachment fileAttachment) {
|
||||||
|
|
||||||
|
final byte[] uuidSource = String.format(
|
||||||
|
"%s/files/%s",
|
||||||
|
WebConfig.getInstanceOf().getSiteName(),
|
||||||
|
fileAttachment.getOID().toString())
|
||||||
|
.getBytes(StandardCharsets.UTF_8);
|
||||||
|
final String uuid = UUID.nameUUIDFromBytes(uuidSource).toString();
|
||||||
|
|
||||||
|
return uuid;
|
||||||
|
}
|
||||||
|
|
||||||
|
// extends AbstractBinaryAssetsExporter<FileAttachment> {
|
||||||
|
//
|
||||||
|
// @Override
|
||||||
|
// protected void exportBinaryAssetProperties(
|
||||||
|
// final FileAttachment asset,
|
||||||
|
// final JsonGenerator jsonGenerator)
|
||||||
|
// throws IOException {
|
||||||
|
//
|
||||||
|
// // Nothing
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// @Override
|
||||||
|
// public Class<FileAttachment> exportsType() {
|
||||||
|
//
|
||||||
|
// return FileAttachment.class;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// @Override
|
||||||
|
// public String exportsBaseDataObjectType() {
|
||||||
|
//
|
||||||
|
// return FileAttachment.BASE_DATA_OBJECT_TYPE;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// @Override
|
||||||
|
// public String convertsToType() {
|
||||||
|
//
|
||||||
|
// return "org.librecms.assets.FileAsset";
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -65,8 +65,9 @@ public class FileAttachmentsExporter
|
||||||
while (fileAttachments.next()) {
|
while (fileAttachments.next()) {
|
||||||
|
|
||||||
sortKey++;
|
sortKey++;
|
||||||
final String uuid = exportFileAttachment(fileAttachments
|
final String uuid = exportFileAttachment(
|
||||||
.getDataObject(),
|
item,
|
||||||
|
fileAttachments.getDataObject(),
|
||||||
listUuid,
|
listUuid,
|
||||||
sortKey,
|
sortKey,
|
||||||
targetDir);
|
targetDir);
|
||||||
|
|
@ -76,17 +77,20 @@ public class FileAttachmentsExporter
|
||||||
return attachmentUuids;
|
return attachmentUuids;
|
||||||
}
|
}
|
||||||
|
|
||||||
private String exportFileAttachment(final DataObject dataObj,
|
private String exportFileAttachment(final ContentItem item,
|
||||||
|
final DataObject dataObj,
|
||||||
final String listUuid,
|
final String listUuid,
|
||||||
final long sortKey,
|
final long sortKey,
|
||||||
final Path targetDir) {
|
final Path targetDir) {
|
||||||
|
|
||||||
final FileAttachment fileAttachment = new FileAttachment(dataObj);
|
final FileAttachment fileAttachment = new FileAttachment(dataObj);
|
||||||
final String fileAssetUuid = generateUuid(fileAttachment);
|
final String fileAssetUuid = FileAssetsExporter
|
||||||
|
.generateFileAssetUuid(fileAttachment);
|
||||||
|
|
||||||
final byte[] uuidSource = String.format(
|
final byte[] uuidSource = String.format(
|
||||||
"%s/files/%s",
|
"%s/%s/files/%s",
|
||||||
WebConfig.getInstanceOf().getSiteName(),
|
WebConfig.getInstanceOf().getSiteName(),
|
||||||
|
item.getOID().toString(),
|
||||||
fileAttachment.getOID().toString())
|
fileAttachment.getOID().toString())
|
||||||
.getBytes(StandardCharsets.UTF_8);
|
.getBytes(StandardCharsets.UTF_8);
|
||||||
final String uuid = UUID.nameUUIDFromBytes(uuidSource).toString();
|
final String uuid = UUID.nameUUIDFromBytes(uuidSource).toString();
|
||||||
|
|
|
||||||
|
|
@ -30,6 +30,7 @@ import com.arsdigita.persistence.DataObject;
|
||||||
import com.arsdigita.runtime.DomainInitEvent;
|
import com.arsdigita.runtime.DomainInitEvent;
|
||||||
|
|
||||||
import org.libreccm.export.ExportManager;
|
import org.libreccm.export.ExportManager;
|
||||||
|
import org.librecms.assets.ImageAttachmentListsExporter;
|
||||||
import org.librecms.assets.ImageAttachmentsExporter;
|
import org.librecms.assets.ImageAttachmentsExporter;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -79,6 +80,9 @@ public class ItemImageAttachmentInitializer extends ContentAssetInitializer {
|
||||||
ExportManager
|
ExportManager
|
||||||
.getInstance()
|
.getInstance()
|
||||||
.registerExporter(new ImageAttachmentsExporter());
|
.registerExporter(new ImageAttachmentsExporter());
|
||||||
|
ExportManager
|
||||||
|
.getInstance()
|
||||||
|
.registerExporter(new ImageAttachmentListsExporter());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,33 @@
|
||||||
|
package org.librecms.assets;
|
||||||
|
|
||||||
|
import com.arsdigita.cms.ContentItem;
|
||||||
|
import com.arsdigita.cms.contentassets.ItemImageAttachment;
|
||||||
|
import com.arsdigita.persistence.DataCollection;
|
||||||
|
|
||||||
|
import org.librecms.contentsection.AbstractAttachmentListsExporter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||||
|
*/
|
||||||
|
public class ImageAttachmentListsExporter
|
||||||
|
extends AbstractAttachmentListsExporter {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String getListName() {
|
||||||
|
return "images";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected boolean hasList(final ContentItem contentItem) {
|
||||||
|
|
||||||
|
final DataCollection images = ItemImageAttachment
|
||||||
|
.getImageAttachments(contentItem);
|
||||||
|
|
||||||
|
final boolean result = images.next();
|
||||||
|
images.close();
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -70,8 +70,8 @@ public class ImageAttachmentsExporter
|
||||||
while (imageAttachments.next()) {
|
while (imageAttachments.next()) {
|
||||||
|
|
||||||
sortKey++;
|
sortKey++;
|
||||||
final String uuid = exportImageAttachment(imageAttachments
|
final String uuid = exportImageAttachment(
|
||||||
.getDataObject(),
|
imageAttachments.getDataObject(),
|
||||||
listUuid,
|
listUuid,
|
||||||
sortKey,
|
sortKey,
|
||||||
targetDir);
|
targetDir);
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,32 @@
|
||||||
|
package org.librecms.assets;
|
||||||
|
|
||||||
|
import com.arsdigita.cms.ContentItem;
|
||||||
|
import com.arsdigita.cms.contentassets.Note;
|
||||||
|
import com.arsdigita.persistence.DataCollection;
|
||||||
|
|
||||||
|
import org.librecms.contentsection.AbstractAttachmentListsExporter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||||
|
*/
|
||||||
|
public class SideNoteAttachmentListsExporter
|
||||||
|
extends AbstractAttachmentListsExporter {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String getListName() {
|
||||||
|
return "notes";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected boolean hasList(final ContentItem item) {
|
||||||
|
|
||||||
|
final DataCollection attachments = Note.getNotes(item);
|
||||||
|
|
||||||
|
final boolean result = attachments.next();
|
||||||
|
attachments.close();
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,122 @@
|
||||||
|
package org.librecms.assets;
|
||||||
|
|
||||||
|
|
||||||
|
import com.arsdigita.cms.ContentItem;
|
||||||
|
import com.arsdigita.cms.contentassets.Note;
|
||||||
|
import com.arsdigita.persistence.DataCollection;
|
||||||
|
import com.arsdigita.persistence.DataObject;
|
||||||
|
import com.arsdigita.util.UncheckedWrapperException;
|
||||||
|
import com.arsdigita.web.WebConfig;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.core.JsonEncoding;
|
||||||
|
import com.fasterxml.jackson.core.JsonFactory;
|
||||||
|
import com.fasterxml.jackson.core.JsonGenerator;
|
||||||
|
import org.libreccm.export.AbstractDomainObjectsExporter;
|
||||||
|
import org.libreccm.export.IdSequence;
|
||||||
|
import org.librecms.contentsection.AbstractAttachmentListsExporter;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
import java.nio.file.Path;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||||
|
*/
|
||||||
|
public class SideNoteAttachmentsExporter
|
||||||
|
extends AbstractDomainObjectsExporter<ContentItem>{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Class<ContentItem> exportsType() {
|
||||||
|
return ContentItem.class;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String exportsBaseDataObjectType() {
|
||||||
|
return ContentItem.BASE_DATA_OBJECT_TYPE;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String convertsToType() {
|
||||||
|
return "org.librecms.contentsection.ItemAttachment";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected boolean includeSubTypes() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected List<String> exportDomainObject(final ContentItem item,
|
||||||
|
final Path targetDir) {
|
||||||
|
|
||||||
|
final String listUuid = AbstractAttachmentListsExporter
|
||||||
|
.generateListUuid(item, "notes");
|
||||||
|
|
||||||
|
final List<String> attachmentsUuids = new ArrayList<>();
|
||||||
|
|
||||||
|
final DataCollection noteAttachments = Note.getNotes(item);
|
||||||
|
|
||||||
|
long sortKey = 0;
|
||||||
|
while(noteAttachments.next()) {
|
||||||
|
|
||||||
|
sortKey++;
|
||||||
|
final String uuid = exportNoteAttachment(
|
||||||
|
noteAttachments.getDataObject(),
|
||||||
|
listUuid,
|
||||||
|
sortKey,
|
||||||
|
targetDir);
|
||||||
|
}
|
||||||
|
|
||||||
|
return attachmentsUuids;
|
||||||
|
}
|
||||||
|
|
||||||
|
private String exportNoteAttachment(final DataObject dataObj,
|
||||||
|
final String listUuid,
|
||||||
|
final long sortKey,
|
||||||
|
final Path targetDir) {
|
||||||
|
|
||||||
|
final Note note = new Note(dataObj);
|
||||||
|
final String noteUuid = generateUuid(note);
|
||||||
|
|
||||||
|
final byte[] uuidSource = String.format(
|
||||||
|
"%s/notes/%s",
|
||||||
|
WebConfig.getInstanceOf().getSiteName(),
|
||||||
|
note.getOID().toString())
|
||||||
|
.getBytes(StandardCharsets.UTF_8);
|
||||||
|
final String uuid = UUID.nameUUIDFromBytes(uuidSource).toString();
|
||||||
|
|
||||||
|
final Path targetFilePath = generateTargetFilePath(targetDir, uuid);
|
||||||
|
final File targetFile = targetFilePath.toFile();
|
||||||
|
|
||||||
|
final JsonFactory jsonFactory = new JsonFactory();
|
||||||
|
try (JsonGenerator jsonGenerator = jsonFactory
|
||||||
|
.createGenerator(targetFile, JsonEncoding.UTF8)) {
|
||||||
|
|
||||||
|
jsonGenerator.writeStartObject();
|
||||||
|
|
||||||
|
jsonGenerator.writeNumberField("attachmentId",
|
||||||
|
IdSequence.getInstance().nextId());
|
||||||
|
jsonGenerator.writeStringField("uuid", uuid);
|
||||||
|
|
||||||
|
jsonGenerator.writeStringField("attachmentList", listUuid);
|
||||||
|
jsonGenerator.writeStringField("asset", noteUuid);
|
||||||
|
|
||||||
|
jsonGenerator.writeNumberField("sortKey", sortKey);
|
||||||
|
|
||||||
|
jsonGenerator.writeEndObject();
|
||||||
|
|
||||||
|
} catch(IOException ex) {
|
||||||
|
|
||||||
|
throw new UncheckedWrapperException(ex);
|
||||||
|
}
|
||||||
|
|
||||||
|
return noteUuid;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,56 @@
|
||||||
|
package org.librecms.assets;
|
||||||
|
|
||||||
|
import com.arsdigita.cms.contentassets.Note;
|
||||||
|
import com.arsdigita.util.UncheckedWrapperException;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.core.JsonEncoding;
|
||||||
|
import com.fasterxml.jackson.core.JsonFactory;
|
||||||
|
import com.fasterxml.jackson.core.JsonGenerator;
|
||||||
|
import org.libreccm.core.AbstractCcmObjectsExporter;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.nio.file.Path;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||||
|
*/
|
||||||
|
public class SideNotesExporter
|
||||||
|
extends AbstractCcmObjectsExporter<Note> {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Class<Note> exportsType() {
|
||||||
|
return Note.class;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String exportsBaseDataObjectType() {
|
||||||
|
return Note.BASE_DATA_OBJECT_TYPE;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String convertsToType() {
|
||||||
|
return "org.librecms.assets.SideNote";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void exportObjectProperties(final Note note,
|
||||||
|
final JsonGenerator jsonGenerator)
|
||||||
|
throws IOException {
|
||||||
|
|
||||||
|
jsonGenerator.writeObjectFieldStart("title");
|
||||||
|
jsonGenerator.writeStringField(
|
||||||
|
note.getOwner().getLanguage(),
|
||||||
|
note.getDisplayName());
|
||||||
|
jsonGenerator.writeEndObject();
|
||||||
|
|
||||||
|
jsonGenerator.writeObjectFieldStart("text");
|
||||||
|
jsonGenerator.writeStringField(
|
||||||
|
note.getOwner().getLanguage(),
|
||||||
|
note.getContent());
|
||||||
|
jsonGenerator.writeEndObject();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -11,6 +11,7 @@ import java.io.IOException;
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||||
|
* @param <T>
|
||||||
*/
|
*/
|
||||||
public abstract class AbstractBinaryAssetsExporter<T extends BinaryAsset>
|
public abstract class AbstractBinaryAssetsExporter<T extends BinaryAsset>
|
||||||
extends AbstractAssetsExporter<T>{
|
extends AbstractAssetsExporter<T>{
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,7 @@ public class PhasesExporter extends AbstractDomainObjectsExporter<Phase> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String convertsToType() {
|
public String convertsToType() {
|
||||||
return "org.librcms.lifecycle.Phase";
|
return "org.librecms.lifecycle.Phase";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue