use of com.liferay.imex.wcddm.model.ImExTemplate in project liferay-imex by jpdacunha.
the class WcDDMExporter method writeTemplate.
private void writeTemplate(Group group, Locale locale, List<ExporterRawContent> rawContentToExport, File structureDir, String groupName, DDMTemplate ddmTemplate) throws Exception {
ImExTemplate imexTemplate = new ImExTemplate(ddmTemplate);
processor.write(imexTemplate, structureDir, FileNames.getTemplateFileName(ddmTemplate, locale, processor.getFileExtension()));
String rawFileName = FileNames.getGroupTemplateFileName(ddmTemplate, group, locale, StringPool.PERIOD + imexTemplate.getLangType());
rawContentToExport.add(new ExporterRawContent(rawFileName, imexTemplate.getData()));
}
use of com.liferay.imex.wcddm.model.ImExTemplate in project liferay-imex by jpdacunha.
the class WcDDMImporter method doImportTemplate.
private DDMTemplate doImportTemplate(Properties config, ServiceContext serviceContext, boolean debug, Group group, User user, Locale locale, File structureDir, DDMStructure structure) {
DDMTemplate template = null;
String templatefileBegin = FileNames.getTemplateFileNameBegin();
File[] templateFiles = FileUtil.listFiles(structureDir, templatefileBegin);
String groupName = GroupUtil.getGroupName(group, locale);
ServiceContext serviceContextTem = (ServiceContext) serviceContext.clone();
if (templateFiles != null || (templateFiles != null && templateFiles.length == 0)) {
for (File matchingTemplateFile : Arrays.asList(templateFiles)) {
String templateFileName = matchingTemplateFile.getName();
File templateFile = new File(structureDir, templateFileName);
ImexOperationEnum operation = ImexOperationEnum.UPDATE;
try {
ImExTemplate imexTemplate = (ImExTemplate) processor.read(ImExTemplate.class, templateFile);
Map<Locale, String> nameMap = LocalizationUtil.getLocalizationMap(imexTemplate.getName());
Map<Locale, String> descriptionMap = LocalizationUtil.getLocalizationMap(imexTemplate.getDescription());
long userId = user.getUserId();
String type = imexTemplate.getTemplateType();
String mode = null;
String language = imexTemplate.getLangType();
String script = imexTemplate.getData();
boolean cacheable = imexTemplate.isCacheable();
long classPK = 0;
if (structure != null) {
classPK = structure.getStructureId();
}
serviceContextTem.setAddGroupPermissions(true);
serviceContextTem.setAddGuestPermissions(true);
long groupId = group.getGroupId();
try {
// Searching for existing template
template = dDMTemplateLocalService.getDDMTemplateByUuidAndGroupId(imexTemplate.getUuid(), groupId);
long templateId = template.getTemplateId();
dDMTemplateLocalService.updateTemplate(userId, templateId, classPK, nameMap, descriptionMap, type, mode, language, script, cacheable, serviceContextTem);
} catch (NoSuchTemplateException e) {
long classNameId = classNameLocalService.getClassNameId(DDMStructure.class);
long resourceClassNameId = classNameLocalService.getClassNameId(JournalArticle.class);
String templateKey = imexTemplate.getKey();
boolean smallImage = false;
String smallImageURL = null;
File smallImageFile = null;
try {
template = dDMTemplateLocalService.addTemplate(userId, groupId, classNameId, classPK, resourceClassNameId, templateKey, nameMap, descriptionMap, type, mode, language, script, cacheable, smallImage, smallImageURL, smallImageFile, serviceContextTem);
operation = ImexOperationEnum.CREATE;
} catch (TemplateDuplicateTemplateKeyException e1) {
// In case of different template with same key exists => apply custom behavior or not
String behaviorValue = GetterUtil.getString(config.get(ImExWCDDmImporterPropsKeys.IMPORT_TEMPLATE_ON_KEY_EXISTS));
OnExistsTemplateMethodEnum duplicateMethod = OnExistsTemplateMethodEnum.fromValue(behaviorValue);
if (duplicateMethod.getValue().equals(OnExistsTemplateMethodEnum.UPDATE_EXISTING_TEMPLATE_BY_KEY.getValue())) {
template = dDMTemplateLocalService.getTemplate(groupId, classNameId, templateKey);
long templateId = template.getTemplateId();
dDMTemplateLocalService.updateTemplate(userId, templateId, classPK, nameMap, descriptionMap, type, mode, language, script, cacheable, serviceContextTem);
} else {
reportService.getError(_log, templateFile.getName(), " a template with the same key [" + templateKey + "] already exists. Please see [" + ImExWCDDmImporterPropsKeys.IMPORT_STRUCTURE_ON_KEY_EXISTS + "] parameter to customize this behavior.");
throw new TemplateDuplicateTemplateKeyException(e1);
}
}
}
reportService.getOK(_log, groupName, "[TEMPLATE : " + template.getName(locale) + " => STRUCTURE : " + structure.getName(locale) + "]", templateFile, operation);
} catch (Exception e) {
reportService.getError(_log, templateFile.getName(), e);
if (debug) {
_log.error(e, e);
}
}
}
} else {
reportService.getMessage(_log, "Missing templates", "No files found matching [" + templatefileBegin + "]");
}
return template;
}
Aggregations