001    /**
002     * Copyright (c) 2000-present Liferay, Inc. All rights reserved.
003     *
004     * This library is free software; you can redistribute it and/or modify it under
005     * the terms of the GNU Lesser General Public License as published by the Free
006     * Software Foundation; either version 2.1 of the License, or (at your option)
007     * any later version.
008     *
009     * This library is distributed in the hope that it will be useful, but WITHOUT
010     * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
011     * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
012     * details.
013     */
014    
015    package com.liferay.portlet.dynamicdatamapping.service.impl;
016    
017    import com.liferay.portal.kernel.exception.PortalException;
018    import com.liferay.portal.service.ServiceContext;
019    import com.liferay.portlet.dynamicdatamapping.model.DDMStorageLink;
020    import com.liferay.portlet.dynamicdatamapping.service.base.DDMStorageLinkLocalServiceBaseImpl;
021    
022    import java.util.List;
023    
024    /**
025     * @author Brian Wing Shun Chan
026     * @author Eduardo Lundgren
027     */
028    public class DDMStorageLinkLocalServiceImpl
029            extends DDMStorageLinkLocalServiceBaseImpl {
030    
031            @Override
032            public DDMStorageLink addStorageLink(
033                    long classNameId, long classPK, long structureId,
034                    ServiceContext serviceContext) {
035    
036                    long storageLinkId = counterLocalService.increment();
037    
038                    DDMStorageLink storageLink = ddmStorageLinkPersistence.create(
039                            storageLinkId);
040    
041                    storageLink.setClassNameId(classNameId);
042                    storageLink.setClassPK(classPK);
043                    storageLink.setStructureId(structureId);
044    
045                    ddmStorageLinkPersistence.update(storageLink);
046    
047                    return storageLink;
048            }
049    
050            @Override
051            public void deleteClassStorageLink(long classPK) {
052                    DDMStorageLink storageLink = ddmStorageLinkPersistence.fetchByClassPK(
053                            classPK);
054    
055                    if (storageLink != null) {
056                            deleteStorageLink(storageLink);
057                    }
058            }
059    
060            @Override
061            public void deleteStorageLink(DDMStorageLink storageLink) {
062                    ddmStorageLinkPersistence.remove(storageLink);
063            }
064    
065            @Override
066            public void deleteStorageLink(long storageLinkId) {
067                    DDMStorageLink storageLink =
068                            ddmStorageLinkPersistence.fetchByPrimaryKey(storageLinkId);
069    
070                    if (storageLink != null) {
071                            deleteStorageLink(storageLink);
072                    }
073            }
074    
075            @Override
076            public void deleteStructureStorageLinks(long structureId) {
077                    List<DDMStorageLink> storageLinks =
078                            ddmStorageLinkPersistence.findByStructureId(structureId);
079    
080                    for (DDMStorageLink storageLink : storageLinks) {
081                            deleteStorageLink(storageLink);
082                    }
083            }
084    
085            @Override
086            public DDMStorageLink getClassStorageLink(long classPK)
087                    throws PortalException {
088    
089                    return ddmStorageLinkPersistence.findByClassPK(classPK);
090            }
091    
092            @Override
093            public DDMStorageLink getStorageLink(long storageLinkId)
094                    throws PortalException {
095    
096                    return ddmStorageLinkPersistence.findByPrimaryKey(storageLinkId);
097            }
098    
099            @Override
100            public List<DDMStorageLink> getStructureStorageLinks(long structureId) {
101                    return ddmStorageLinkPersistence.findByStructureId(structureId);
102            }
103    
104            @Override
105            public int getStructureStorageLinksCount(long structureId) {
106                    return ddmStorageLinkPersistence.countByStructureId(structureId);
107            }
108    
109            @Override
110            public DDMStorageLink updateStorageLink(
111                            long storageLinkId, long classNameId, long classPK)
112                    throws PortalException {
113    
114                    DDMStorageLink storageLink = ddmStorageLinkPersistence.findByPrimaryKey(
115                            storageLinkId);
116    
117                    storageLink.setClassNameId(classNameId);
118                    storageLink.setClassPK(classPK);
119    
120                    ddmStorageLinkPersistence.update(storageLink);
121    
122                    return storageLink;
123            }
124    
125    }