
com.liferay.dynamic.data.mapping.internal.DDMStructureManagerImpl Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of com.liferay.dynamic.data.mapping.service Show documentation
Show all versions of com.liferay.dynamic.data.mapping.service Show documentation
Liferay Dynamic Data Mapping Service
/**
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/
package com.liferay.dynamic.data.mapping.internal;
import com.liferay.dynamic.data.mapping.exception.StructureDuplicateElementException;
import com.liferay.dynamic.data.mapping.exception.StructureNameException;
import com.liferay.dynamic.data.mapping.kernel.DDMForm;
import com.liferay.dynamic.data.mapping.kernel.DDMFormValues;
import com.liferay.dynamic.data.mapping.kernel.DDMStructure;
import com.liferay.dynamic.data.mapping.kernel.DDMStructureManager;
import com.liferay.dynamic.data.mapping.kernel.NoSuchStructureException;
import com.liferay.dynamic.data.mapping.kernel.RequiredStructureException;
import com.liferay.dynamic.data.mapping.kernel.StructureDefinitionException;
import com.liferay.dynamic.data.mapping.service.DDMStorageLinkLocalService;
import com.liferay.dynamic.data.mapping.service.DDMStructureLocalService;
import com.liferay.dynamic.data.mapping.util.DDM;
import com.liferay.dynamic.data.mapping.util.DDMBeanTranslator;
import com.liferay.dynamic.data.mapping.util.DDMIndexer;
import com.liferay.dynamic.data.mapping.util.comparator.StructureIdComparator;
import com.liferay.dynamic.data.mapping.util.comparator.StructureStructureKeyComparator;
import com.liferay.portal.kernel.exception.PortalException;
import com.liferay.portal.kernel.json.JSONArray;
import com.liferay.portal.kernel.search.Document;
import com.liferay.portal.kernel.service.ServiceContext;
import com.liferay.portal.kernel.util.OrderByComparator;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Reference;
/**
* @author Leonardo Barros
*/
@Component(immediate = true)
public class DDMStructureManagerImpl implements DDMStructureManager {
@Override
public void addAttributes(
long structureId, Document document, DDMFormValues ddmFormValues)
throws PortalException {
com.liferay.dynamic.data.mapping.model.DDMStructure ddmStructure =
_ddmStructureLocalService.getStructure(structureId);
_ddmIndexer.addAttributes(
document, ddmStructure,
_ddmBeanTranslator.translate(ddmFormValues));
}
@Override
public DDMStructure addStructure(
long userId, long groupId, String parentStructureKey,
long classNameId, String structureKey, Map nameMap,
Map descriptionMap, DDMForm ddmForm,
String storageType, int type, ServiceContext serviceContext)
throws PortalException {
try {
com.liferay.dynamic.data.mapping.model.DDMForm translatedDDMForm =
_ddmBeanTranslator.translate(ddmForm);
com.liferay.dynamic.data.mapping.model.DDMStructure ddmStructure =
_ddmStructureLocalService.addStructure(
userId, groupId, parentStructureKey, classNameId,
structureKey, nameMap, descriptionMap, translatedDDMForm,
_ddm.getDefaultDDMFormLayout(translatedDDMForm),
storageType, type, serviceContext);
return new DDMStructureImpl(ddmStructure);
}
catch (PortalException pe) {
throw translate(pe);
}
}
@Override
public void deleteStructure(long structureId) throws PortalException {
try {
_ddmStructureLocalService.deleteStructure(structureId);
}
catch (PortalException pe) {
throw translate(pe);
}
}
@Override
public String extractAttributes(
long structureId, DDMFormValues ddmFormValues, Locale locale)
throws PortalException {
com.liferay.dynamic.data.mapping.model.DDMStructure ddmStructure =
_ddmStructureLocalService.getStructure(structureId);
return _ddmIndexer.extractIndexableAttributes(
ddmStructure, _ddmBeanTranslator.translate(ddmFormValues), locale);
}
@Override
public DDMStructure fetchStructure(long structureId) {
com.liferay.dynamic.data.mapping.model.DDMStructure ddmStructure =
_ddmStructureLocalService.fetchDDMStructure(structureId);
if (ddmStructure == null) {
return null;
}
return new DDMStructureImpl(ddmStructure);
}
@Override
public DDMStructure fetchStructure(
long groupId, long classNameId, String structureKey) {
com.liferay.dynamic.data.mapping.model.DDMStructure ddmStructure =
_ddmStructureLocalService.fetchStructure(
groupId, classNameId, structureKey);
if (ddmStructure == null) {
return null;
}
return new DDMStructureImpl(ddmStructure);
}
@Override
public DDMStructure fetchStructureByUuidAndGroupId(
String uuid, long groupId) {
com.liferay.dynamic.data.mapping.model.DDMStructure ddmStructure =
_ddmStructureLocalService.fetchDDMStructureByUuidAndGroupId(
uuid, groupId);
if (ddmStructure == null) {
return null;
}
return new DDMStructureImpl(ddmStructure);
}
@Override
public List getClassStructures(
long companyId, long classNameId) {
List ddmStructures = new ArrayList<>();
List structures =
_ddmStructureLocalService.getClassStructures(
companyId, classNameId);
for (com.liferay.dynamic.data.mapping.model.DDMStructure
structure : structures) {
ddmStructures.add(new DDMStructureImpl(structure));
}
return ddmStructures;
}
@Override
public List getClassStructures(
long companyId, long classNameId, int structureComparator) {
List ddmStructures = new ArrayList<>();
for (com.liferay.dynamic.data.mapping.model.DDMStructure
ddmStructure :
_ddmStructureLocalService.getClassStructures(
companyId, classNameId,
getStructureOrderByComparator(structureComparator))) {
ddmStructures.add(new DDMStructureImpl(ddmStructure));
}
return ddmStructures;
}
@Override
public List getClassStructures(
long companyId, long classNameId, int start, int end) {
List ddmStructures = new ArrayList<>();
for (com.liferay.dynamic.data.mapping.model.DDMStructure
ddmStructure :
_ddmStructureLocalService.getClassStructures(
companyId, classNameId, start, end)) {
ddmStructures.add(new DDMStructureImpl(ddmStructure));
}
return ddmStructures;
}
@Override
public JSONArray getDDMFormFieldsJSONArray(long structureId, String script)
throws PortalException {
com.liferay.dynamic.data.mapping.model.DDMStructure ddmStructure =
_ddmStructureLocalService.fetchDDMStructure(structureId);
return _ddm.getDDMFormFieldsJSONArray(ddmStructure, script);
}
@Override
public Class> getDDMStructureModelClass() {
return com.liferay.dynamic.data.mapping.model.DDMStructure.class;
}
@Override
public Serializable getIndexedFieldValue(
Serializable fieldValue, String fieldType)
throws Exception {
return _ddm.getIndexedFieldValue(fieldValue, fieldType);
}
@Override
public DDMStructure getStructure(long structureId) throws PortalException {
try {
com.liferay.dynamic.data.mapping.model.DDMStructure ddmStructure =
_ddmStructureLocalService.getStructure(structureId);
return new DDMStructureImpl(ddmStructure);
}
catch (PortalException pe) {
throw translate(pe);
}
}
@Override
public DDMStructure getStructure(
long groupId, long classNameId, String structureKey)
throws PortalException {
try {
com.liferay.dynamic.data.mapping.model.DDMStructure structure =
_ddmStructureLocalService.getStructure(
groupId, classNameId, structureKey);
return new DDMStructureImpl(structure);
}
catch (PortalException pe) {
throw translate(pe);
}
}
@Override
public DDMStructure getStructureByUuidAndGroupId(String uuid, long groupId)
throws PortalException {
try {
com.liferay.dynamic.data.mapping.model.DDMStructure ddmStructure =
_ddmStructureLocalService.getDDMStructureByUuidAndGroupId(
uuid, groupId);
return new DDMStructureImpl(ddmStructure);
}
catch (PortalException pe) {
throw translate(pe);
}
}
@Override
public List getStructures(long[] groupIds, long classNameId) {
List ddmStructures = new ArrayList<>();
for (com.liferay.dynamic.data.mapping.model.DDMStructure
ddmStructure :
_ddmStructureLocalService.getStructures(
groupIds, classNameId)) {
ddmStructures.add(new DDMStructureImpl(ddmStructure));
}
return ddmStructures;
}
@Override
public int getStructureStorageLinksCount(long structureId) {
return _ddmStorageLinkLocalService.getStructureStorageLinksCount(
structureId);
}
@Override
public DDMStructure updateStructure(
long userId, long structureId, long parentStructureId,
Map nameMap, Map descriptionMap,
DDMForm ddmForm, ServiceContext serviceContext)
throws PortalException {
try {
com.liferay.dynamic.data.mapping.model.DDMForm copyDDMForm =
_ddmBeanTranslator.translate(ddmForm);
com.liferay.dynamic.data.mapping.model.DDMStructure ddmStructure =
_ddmStructureLocalService.updateStructure(
userId, structureId, parentStructureId, nameMap,
descriptionMap, copyDDMForm,
_ddm.getDefaultDDMFormLayout(copyDDMForm), serviceContext);
return new DDMStructureImpl(ddmStructure);
}
catch (PortalException pe) {
throw translate(pe);
}
}
@Override
public void updateStructureDefinition(long structureId, String definition)
throws PortalException {
try {
com.liferay.dynamic.data.mapping.model.DDMStructure ddmStructure =
_ddmStructureLocalService.getDDMStructure(structureId);
ddmStructure.setDefinition(definition);
_ddmStructureLocalService.updateDDMStructure(ddmStructure);
}
catch (PortalException pe) {
throw translate(pe);
}
}
@Override
public void updateStructureKey(long structureId, String structureKey)
throws PortalException {
com.liferay.dynamic.data.mapping.model.DDMStructure ddmStructure =
_ddmStructureLocalService.getDDMStructure(structureId);
ddmStructure.setStructureKey(structureKey);
_ddmStructureLocalService.updateDDMStructure(ddmStructure);
}
protected OrderByComparator
getStructureOrderByComparator(int structureComparator) {
if (structureComparator ==
DDMStructureManager.STRUCTURE_COMPARATOR_STRUCTURE_KEY) {
return new StructureStructureKeyComparator();
}
return new StructureIdComparator();
}
@Reference(unbind = "-")
protected void setDDM(DDM ddm) {
_ddm = ddm;
}
@Reference(unbind = "-")
protected void setDDMBeanTranslator(DDMBeanTranslator ddmBeanTranslator) {
_ddmBeanTranslator = ddmBeanTranslator;
}
@Reference(unbind = "-")
protected void setDDMIndexer(DDMIndexer ddmIndexer) {
_ddmIndexer = ddmIndexer;
}
@Reference(unbind = "-")
protected void setDDMStorageLinkLocalService(
DDMStorageLinkLocalService ddmStorageLinkLocalService) {
_ddmStorageLinkLocalService = ddmStorageLinkLocalService;
}
@Reference(unbind = "-")
protected void setDDMStructureLocalService(
DDMStructureLocalService ddmStructureLocalService) {
_ddmStructureLocalService = ddmStructureLocalService;
}
protected PortalException translate(PortalException portalException) {
if (portalException instanceof
com.liferay.dynamic.data.mapping.exception.
NoSuchStructureException) {
return new NoSuchStructureException(
portalException.getMessage(), portalException.getCause());
}
else if (portalException instanceof
com.liferay.dynamic.data.mapping.exception.
RequiredStructureException) {
return new RequiredStructureException(
portalException.getMessage(), portalException.getCause());
}
else if (portalException instanceof
com.liferay.dynamic.data.mapping.exception.
StructureDefinitionException) {
return new StructureDefinitionException(
portalException.getMessage(), portalException.getCause());
}
else if (portalException instanceof
com.liferay.dynamic.data.mapping.exception.
StructureDuplicateElementException) {
return new StructureDuplicateElementException(
portalException.getMessage(), portalException.getCause());
}
else if (portalException instanceof
com.liferay.dynamic.data.mapping.exception.
StructureNameException) {
return new StructureNameException(
portalException.getMessage(), portalException.getCause());
}
return portalException;
}
private DDM _ddm;
private DDMBeanTranslator _ddmBeanTranslator;
private DDMIndexer _ddmIndexer;
private DDMStorageLinkLocalService _ddmStorageLinkLocalService;
private DDMStructureLocalService _ddmStructureLocalService;
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy