@SuppressWarnings("rawtypes")
protected DocumentDescriptorImpl create(DocumentUriTemplate template,
DocumentMetadataWriteHandle metadataHandle, W contentHandle,
ServerTransform transform, Transaction transaction,
String temporalCollection, Calendar systemTime,
RequestParameters extraParams) {
if ( logger.isInfoEnabled() ) logger.info("Creating content");
if ( extraParams == null ) extraParams = getWriteParams();
if (metadataHandle != null) {
HandleImplementation metadataBase = HandleAccessor.checkHandle(
metadataHandle, "metadata");
Format metadataFormat = metadataBase.getFormat();
if (metadataFormat == null
|| (metadataFormat != Format.JSON && metadataFormat != Format.XML)) {
if (logger.isWarnEnabled())
logger.warn("Unsupported metadata format {}, using XML",
metadataFormat.name());
metadataBase.setFormat(Format.XML);
}
}
extraParams = addTemporalParams(extraParams, temporalCollection, null, systemTime);
checkContentFormat(contentHandle);
return services.postDocument(
requestLogger,
template,
transaction,
(metadataHandle != null) ? processedMetadata : null,
mergeTransformParameters((transform != null) ? transform
: getWriteTransform(), extraParams), metadataHandle, contentHandle);
}