libreccm-legacy/ccm-cms/src/org/librecms/contentsection/AbstractBinaryAssetsExporte...

45 lines
1.3 KiB
Java

package org.librecms.contentsection;
import com.arsdigita.cms.BinaryAsset;
import com.arsdigita.kernel.KernelConfig;
import com.fasterxml.jackson.core.JsonGenerator;
import java.io.IOException;
/**
*
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
* @param <T>
*/
public abstract class AbstractBinaryAssetsExporter<T extends BinaryAsset>
extends AbstractAssetsExporter<T>{
@Override
protected final void exportAssetProperties(
final T asset, final JsonGenerator jsonGenerator) throws IOException{
jsonGenerator.writeObjectFieldStart("description");
jsonGenerator.writeStringField(
KernelConfig.getConfig().getDefaultLanguage(),
asset.getDescription());
jsonGenerator.writeEndObject();
jsonGenerator.writeStringField("mimeType",
asset.getMimeType().toString());
jsonGenerator.writeStringField("fileName", asset.getName());
jsonGenerator.writeBinaryField("data", asset.getContent());
jsonGenerator.writeNumberField("size", asset.getSize());
exportBinaryAssetProperties(asset, jsonGenerator);
}
protected abstract void exportBinaryAssetProperties(
final T asset, final JsonGenerator jsonGenerator) throws IOException;
}