001    /**
002     * Copyright (c) 2000-2013 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.journal.service.impl;
016    
017    import com.liferay.portal.kernel.exception.PortalException;
018    import com.liferay.portal.kernel.exception.SystemException;
019    import com.liferay.portlet.journal.DuplicateArticleImageIdException;
020    import com.liferay.portlet.journal.model.JournalArticleImage;
021    import com.liferay.portlet.journal.service.base.JournalArticleImageLocalServiceBaseImpl;
022    
023    import java.util.List;
024    
025    /**
026     * @author Brian Wing Shun Chan
027     */
028    public class JournalArticleImageLocalServiceImpl
029            extends JournalArticleImageLocalServiceBaseImpl {
030    
031            @Override
032            public void addArticleImageId(
033                            long articleImageId, long groupId, String articleId, double version,
034                            String elInstanceId, String elName, String languageId)
035                    throws PortalException, SystemException {
036    
037                    if (articleImageId <= 0) {
038                            return;
039                    }
040    
041                    JournalArticleImage articleImage =
042                            journalArticleImagePersistence.fetchByG_A_V_E_E_L(
043                                    groupId, articleId, version, elInstanceId, elName, languageId);
044    
045                    if (articleImage == null) {
046                            articleImage = journalArticleImagePersistence.create(
047                                    articleImageId);
048    
049                            articleImage.setGroupId(groupId);
050                            articleImage.setArticleId(articleId);
051                            articleImage.setVersion(version);
052                            articleImage.setElInstanceId(elInstanceId);
053                            articleImage.setElName(elName);
054                            articleImage.setLanguageId(languageId);
055                            articleImage.setTempImage(false);
056    
057                            journalArticleImagePersistence.update(articleImage);
058                    }
059                    else if (articleImage.getArticleImageId() == articleImageId) {
060                    }
061                    else {
062                            throw new DuplicateArticleImageIdException();
063                    }
064            }
065    
066            @Override
067            public void deleteArticleImage(JournalArticleImage articleImage)
068                    throws SystemException {
069    
070                    try {
071                            imageLocalService.deleteImage(articleImage.getArticleImageId());
072                    }
073                    catch (PortalException pe) {
074                    }
075    
076                    journalArticleImagePersistence.remove(articleImage);
077            }
078    
079            @Override
080            public void deleteArticleImage(long articleImageId) throws SystemException {
081                    JournalArticleImage articleImage =
082                            journalArticleImagePersistence.fetchByPrimaryKey(articleImageId);
083    
084                    if (articleImage != null) {
085                            deleteArticleImage(articleImage);
086                    }
087            }
088    
089            @Override
090            public void deleteArticleImage(
091                            long groupId, String articleId, double version, String elInstanceId,
092                            String elName, String languageId)
093                    throws SystemException {
094    
095                    JournalArticleImage articleImage =
096                            journalArticleImagePersistence.fetchByG_A_V_E_E_L(
097                                    groupId, articleId, version, elInstanceId, elName, languageId);
098    
099                    if (articleImage != null) {
100                            deleteArticleImage(articleImage);
101                    }
102            }
103    
104            @Override
105            public void deleteImages(long groupId, String articleId, double version)
106                    throws SystemException {
107    
108                    for (JournalArticleImage articleImage :
109                                    journalArticleImagePersistence.findByG_A_V(
110                                            groupId, articleId, version)) {
111    
112                            deleteArticleImage(articleImage);
113                    }
114            }
115    
116            @Override
117            public JournalArticleImage getArticleImage(long articleImageId)
118                    throws PortalException, SystemException {
119    
120                    return journalArticleImagePersistence.findByPrimaryKey(articleImageId);
121            }
122    
123            @Override
124            public long getArticleImageId(
125                            long groupId, String articleId, double version, String elInstanceId,
126                            String elName, String languageId)
127                    throws SystemException {
128    
129                    return getArticleImageId(
130                            groupId, articleId, version, elInstanceId, elName, languageId,
131                            false);
132            }
133    
134            @Override
135            public long getArticleImageId(
136                            long groupId, String articleId, double version, String elInstanceId,
137                            String elName, String languageId, boolean tempImage)
138                    throws SystemException {
139    
140                    JournalArticleImage articleImage =
141                            journalArticleImagePersistence.fetchByG_A_V_E_E_L(
142                                    groupId, articleId, version, elInstanceId, elName, languageId);
143    
144                    if (articleImage == null) {
145                            long articleImageId = counterLocalService.increment();
146    
147                            articleImage = journalArticleImagePersistence.create(
148                                    articleImageId);
149    
150                            articleImage.setGroupId(groupId);
151                            articleImage.setArticleId(articleId);
152                            articleImage.setVersion(version);
153                            articleImage.setElInstanceId(elInstanceId);
154                            articleImage.setElName(elName);
155                            articleImage.setLanguageId(languageId);
156                            articleImage.setTempImage(tempImage);
157    
158                            journalArticleImagePersistence.update(articleImage);
159                    }
160    
161                    return articleImage.getArticleImageId();
162            }
163    
164            @Override
165            public List<JournalArticleImage> getArticleImages(long groupId)
166                    throws SystemException {
167    
168                    return journalArticleImagePersistence.findByGroupId(groupId);
169            }
170    
171            @Override
172            public List<JournalArticleImage> getArticleImages(
173                            long groupId, String articleId, double version)
174                    throws SystemException {
175    
176                    return journalArticleImagePersistence.findByG_A_V(
177                            groupId, articleId, version);
178            }
179    
180    }