/** * Converts the soap model instance into a normal model instance. * * @param soapModel the soap model instance to convert * @return the normal model instance */ public static DDMTemplate toModel(DDMTemplateSoap soapModel) { if (soapModel == null) { return null; } DDMTemplate model = new DDMTemplateImpl(); model.setUuid(soapModel.getUuid()); model.setTemplateId(soapModel.getTemplateId()); model.setGroupId(soapModel.getGroupId()); model.setCompanyId(soapModel.getCompanyId()); model.setUserId(soapModel.getUserId()); model.setUserName(soapModel.getUserName()); model.setCreateDate(soapModel.getCreateDate()); model.setModifiedDate(soapModel.getModifiedDate()); model.setClassNameId(soapModel.getClassNameId()); model.setClassPK(soapModel.getClassPK()); model.setTemplateKey(soapModel.getTemplateKey()); model.setName(soapModel.getName()); model.setDescription(soapModel.getDescription()); model.setType(soapModel.getType()); model.setMode(soapModel.getMode()); model.setLanguage(soapModel.getLanguage()); model.setScript(soapModel.getScript()); model.setCacheable(soapModel.getCacheable()); model.setSmallImage(soapModel.getSmallImage()); model.setSmallImageId(soapModel.getSmallImageId()); model.setSmallImageURL(soapModel.getSmallImageURL()); return model; }
@Override protected void doImportStagedModel(PortletDataContext portletDataContext, DDMTemplate template) throws Exception { long userId = portletDataContext.getUserId(template.getUserUuid()); Map<Long, Long> structureIds = (Map<Long, Long>) portletDataContext.getNewPrimaryKeysMap(DDMStructure.class); long classPK = MapUtil.getLong(structureIds, template.getClassPK(), template.getClassPK()); File smallFile = null; if (template.isSmallImage()) { Element element = portletDataContext.getImportDataStagedModelElement(template); String smallImagePath = element.attributeValue("small-image-path"); if (Validator.isNotNull(template.getSmallImageURL())) { String smallImageURL = JournalPortletDataHandler.importReferencedContent( portletDataContext, element, template.getSmallImageURL()); template.setSmallImageURL(smallImageURL); } else if (Validator.isNotNull(smallImagePath)) { byte[] bytes = portletDataContext.getZipEntryAsByteArray(smallImagePath); if (bytes != null) { smallFile = FileUtil.createTempFile(template.getSmallImageType()); FileUtil.write(smallFile, bytes); } } } ServiceContext serviceContext = portletDataContext.createServiceContext(template, DDMPortletDataHandler.NAMESPACE); DDMTemplate importedTemplate = null; if (portletDataContext.isDataStrategyMirror()) { DDMTemplate existingTemplate = DDMTemplateUtil.fetchByUUID_G(template.getUuid(), portletDataContext.getScopeGroupId()); if (existingTemplate == null) { serviceContext.setUuid(template.getUuid()); importedTemplate = addTemplate( userId, portletDataContext.getScopeGroupId(), template, classPK, smallFile, serviceContext); } else { importedTemplate = DDMTemplateLocalServiceUtil.updateTemplate( existingTemplate.getTemplateId(), template.getNameMap(), template.getDescriptionMap(), template.getType(), template.getMode(), template.getLanguage(), template.getScript(), template.isCacheable(), template.isSmallImage(), template.getSmallImageURL(), smallFile, serviceContext); } } else { importedTemplate = addTemplate( userId, portletDataContext.getScopeGroupId(), template, classPK, smallFile, serviceContext); } portletDataContext.importClassedModel( template, importedTemplate, DDMPortletDataHandler.NAMESPACE); }
@Override protected void doExportStagedModel(PortletDataContext portletDataContext, DDMTemplate template) throws Exception { Element dlFileEntryTypesElement = portletDataContext.getExportDataGroupElement(DLFileEntryType.class); Element dlFoldersElement = portletDataContext.getExportDataGroupElement(DLFolder.class); Element dlFileEntriesElement = portletDataContext.getExportDataGroupElement(DLFileEntry.class); Element dlFileRanksElement = portletDataContext.getExportDataGroupElement(DLFileRank.class); Element dlRepositoriesElement = portletDataContext.getExportDataGroupElement(Repository.class); Element dlRepositoryEntriesElement = portletDataContext.getExportDataGroupElement(RepositoryEntry.class); Element templateElement = portletDataContext.getExportDataStagedModelElement(template); if (template.isSmallImage()) { Image smallImage = ImageUtil.fetchByPrimaryKey(template.getSmallImageId()); if (Validator.isNotNull(template.getSmallImageURL())) { String smallImageURL = DDMPortletDataHandler.exportReferencedContent( portletDataContext, dlFileEntryTypesElement, dlFoldersElement, dlFileEntriesElement, dlFileRanksElement, dlRepositoriesElement, dlRepositoryEntriesElement, templateElement, template.getSmallImageURL().concat(StringPool.SPACE)); template.setSmallImageURL(smallImageURL); } else if (smallImage != null) { String smallImagePath = StagedModelPathUtil.getPath( template, smallImage.getImageId() + StringPool.PERIOD + template.getSmallImageType()); templateElement.addAttribute("small-image-path", smallImagePath); template.setSmallImageType(smallImage.getType()); portletDataContext.addZipEntry(smallImagePath, smallImage.getTextObj()); } } if (portletDataContext.getBooleanParameter( DDMPortletDataHandler.NAMESPACE, "embedded-assets")) { String content = DDMPortletDataHandler.exportReferencedContent( portletDataContext, dlFileEntryTypesElement, dlFoldersElement, dlFileEntriesElement, dlFileRanksElement, dlRepositoriesElement, dlRepositoryEntriesElement, templateElement, template.getScript()); template.setScript(content); } portletDataContext.addClassedModel( templateElement, StagedModelPathUtil.getPath(template), template, DDMPortletDataHandler.NAMESPACE); }