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