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) throws PortalException {
052                    DDMStorageLink storageLink = ddmStorageLinkPersistence.findByClassPK(
053                            classPK);
054    
055                    deleteStorageLink(storageLink);
056            }
057    
058            @Override
059            public void deleteStorageLink(DDMStorageLink storageLink) {
060                    ddmStorageLinkPersistence.remove(storageLink);
061            }
062    
063            @Override
064            public void deleteStorageLink(long storageLinkId) throws PortalException {
065                    DDMStorageLink storageLink = ddmStorageLinkPersistence.findByPrimaryKey(
066                            storageLinkId);
067    
068                    deleteStorageLink(storageLink);
069            }
070    
071            @Override
072            public void deleteStructureStorageLinks(long structureId) {
073                    List<DDMStorageLink> storageLinks =
074                            ddmStorageLinkPersistence.findByStructureId(structureId);
075    
076                    for (DDMStorageLink storageLink : storageLinks) {
077                            deleteStorageLink(storageLink);
078                    }
079            }
080    
081            @Override
082            public DDMStorageLink getClassStorageLink(long classPK)
083                    throws PortalException {
084    
085                    return ddmStorageLinkPersistence.findByClassPK(classPK);
086            }
087    
088            @Override
089            public DDMStorageLink getStorageLink(long storageLinkId)
090                    throws PortalException {
091    
092                    return ddmStorageLinkPersistence.findByPrimaryKey(storageLinkId);
093            }
094    
095            @Override
096            public List<DDMStorageLink> getStructureStorageLinks(long structureId) {
097                    return ddmStorageLinkPersistence.findByStructureId(structureId);
098            }
099    
100            @Override
101            public int getStructureStorageLinksCount(long structureId) {
102                    return ddmStorageLinkPersistence.countByStructureId(structureId);
103            }
104    
105            @Override
106            public DDMStorageLink updateStorageLink(
107                            long storageLinkId, long classNameId, long classPK)
108                    throws PortalException {
109    
110                    DDMStorageLink storageLink = ddmStorageLinkPersistence.findByPrimaryKey(
111                            storageLinkId);
112    
113                    storageLink.setClassNameId(classNameId);
114                    storageLink.setClassPK(classPK);
115    
116                    ddmStorageLinkPersistence.update(storageLink);
117    
118                    return storageLink;
119            }
120    
121    }