/** * 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.service.impl; import com.liferay.dynamic.data.mapping.exception.NoSuchStructureLinkException; import com.liferay.dynamic.data.mapping.model.DDMStructure; import com.liferay.dynamic.data.mapping.model.DDMStructureLink; import com.liferay.dynamic.data.mapping.service.base.DDMStructureLinkLocalServiceBaseImpl; import com.liferay.portal.kernel.dao.orm.QueryUtil; import com.liferay.portal.kernel.exception.PortalException; import com.liferay.portal.kernel.util.OrderByComparator; import com.liferay.portal.kernel.util.StringBundler; import com.liferay.portal.kernel.util.StringPool; import java.util.ArrayList; import java.util.List; /** * @author Brian Wing Shun Chan * @author Bruno Basto * @author Marcellus Tavares */ public class DDMStructureLinkLocalServiceImpl extends DDMStructureLinkLocalServiceBaseImpl { @Override public DDMStructureLink addStructureLink( long classNameId, long classPK, long structureId) { long structureLinkId = counterLocalService.increment(); DDMStructureLink structureLink = ddmStructureLinkPersistence.create( structureLinkId); structureLink.setClassNameId(classNameId); structureLink.setClassPK(classPK); structureLink.setStructureId(structureId); ddmStructureLinkPersistence.update(structureLink); return structureLink; } @Override public void deleteStructureLink(DDMStructureLink structureLink) { ddmStructureLinkPersistence.remove(structureLink); } @Override public void deleteStructureLink(long structureLinkId) throws PortalException { DDMStructureLink structureLink = ddmStructureLinkPersistence.findByPrimaryKey(structureLinkId); deleteStructureLink(structureLink); } @Override public void deleteStructureLink( long classNameId, long classPK, long structureId) throws PortalException { DDMStructureLink structureLink = ddmStructureLinkPersistence.findByC_C_S( classNameId, classPK, structureId); deleteDDMStructureLink(structureLink); } @Override public void deleteStructureLinks(long classNameId, long classPK) { List<DDMStructureLink> structureLinks = ddmStructureLinkPersistence.findByC_C(classNameId, classPK); for (DDMStructureLink ddmStructureLink : structureLinks) { deleteStructureLink(ddmStructureLink); } } @Override public void deleteStructureStructureLinks(long structureId) { List<DDMStructureLink> structureLinks = ddmStructureLinkPersistence.findByStructureId(structureId); for (DDMStructureLink structureLink : structureLinks) { deleteStructureLink(structureLink); } } @Override public List<DDMStructureLink> getClassNameStructureLinks(long classNameId) { return ddmStructureLinkPersistence.findByClassNameId(classNameId); } @Override public DDMStructureLink getStructureLink(long structureLinkId) throws PortalException { return ddmStructureLinkPersistence.findByPrimaryKey(structureLinkId); } @Override public List<DDMStructureLink> getStructureLinks(long structureId) { return ddmStructureLinkPersistence.findByStructureId(structureId); } @Override public List<DDMStructureLink> getStructureLinks( long structureId, int start, int end) { return ddmStructureLinkPersistence.findByStructureId( structureId, start, end); } @Override public List<DDMStructureLink> getStructureLinks( long classNameId, long classPK) { return ddmStructureLinkPersistence.findByC_C(classNameId, classPK); } @Override public List<DDMStructureLink> getStructureLinks( long classNameId, long classPK, int start, int end) { return ddmStructureLinkPersistence.findByC_C( classNameId, classPK, start, end); } @Override public int getStructureLinksCount(long classNameId, long classPK) { return ddmStructureLinkPersistence.countByC_C(classNameId, classPK); } @Override public List<DDMStructure> getStructureLinkStructures( long classNameId, long classPK) throws PortalException { List<DDMStructure> structures = new ArrayList<>(); List<DDMStructureLink> structureLinks = getStructureLinks( classNameId, classPK); for (DDMStructureLink structureLink : structureLinks) { structures.add(structureLink.getStructure()); } return structures; } @Override public List<DDMStructure> getStructureLinkStructures( long classNameId, long classPK, int start, int end) throws PortalException { List<DDMStructure> structures = new ArrayList<>(); List<DDMStructureLink> structureLinks = getStructureLinks( classNameId, classPK, start, end); for (DDMStructureLink structureLink : structureLinks) { structures.add(structureLink.getStructure()); } return structures; } @Override public List<DDMStructure> getStructureLinkStructures( long classNameId, long classPK, String keywords) throws PortalException { return getStructureLinkStructures( classNameId, classPK, keywords, QueryUtil.ALL_POS, QueryUtil.ALL_POS); } @Override public List<DDMStructure> getStructureLinkStructures( long classNameId, long classPK, String keywords, int start, int end) throws PortalException { return getStructureLinkStructures( classNameId, classPK, keywords, start, end, null); } @Override public List<DDMStructure> getStructureLinkStructures( long classNameId, long classPK, String keywords, int start, int end, OrderByComparator<DDMStructureLink> orderByComparator) throws PortalException { List<DDMStructure> structures = new ArrayList<>(); List<DDMStructureLink> structureLinks = ddmStructureLinkFinder.findByKeywords( classNameId, classPK, keywords, start, end, orderByComparator); for (DDMStructureLink structureLink : structureLinks) { structures.add(structureLink.getStructure()); } return structures; } @Override public int getStructureLinkStructuresCount( long classNameId, long classPK, String keywords) { return ddmStructureLinkFinder.countByKeywords( classNameId, classPK, keywords); } @Override public DDMStructureLink getUniqueStructureLink( long classNameId, long classPK) throws PortalException { List<DDMStructureLink> structureLinks = ddmStructureLinkPersistence.findByC_C(classNameId, classPK); if (structureLinks.isEmpty()) { StringBundler sb = new StringBundler(5); sb.append("No DDMStructureLink found for {classNameId="); sb.append(classNameId); sb.append(", classPK="); sb.append(classPK); sb.append(StringPool.CLOSE_CURLY_BRACE); throw new NoSuchStructureLinkException(sb.toString()); } return structureLinks.get(0); } @Override public DDMStructureLink updateStructureLink( long structureLinkId, long classNameId, long classPK, long structureId) throws PortalException { DDMStructureLink structureLink = ddmStructureLinkPersistence.findByPrimaryKey(structureLinkId); structureLink.setClassNameId(classNameId); structureLink.setClassPK(classPK); structureLink.setStructureId(structureId); ddmStructureLinkPersistence.update(structureLink); return structureLink; } }