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                            throw new DuplicateArticleImageIdException(
061                                    "{articleImageId=" + articleImageId + "}");
062                    }
063            }
064    
065            @Override
066            public void deleteArticleImage(JournalArticleImage articleImage)
067                    throws SystemException {
068    
069                    try {
070                            imageLocalService.deleteImage(articleImage.getArticleImageId());
071                    }
072                    catch (PortalException pe) {
073                    }
074    
075                    journalArticleImagePersistence.remove(articleImage);
076            }
077    
078            @Override
079            public void deleteArticleImage(long articleImageId) throws SystemException {
080                    JournalArticleImage articleImage =
081                            journalArticleImagePersistence.fetchByPrimaryKey(articleImageId);
082    
083                    if (articleImage != null) {
084                            deleteArticleImage(articleImage);
085                    }
086            }
087    
088            @Override
089            public void deleteArticleImage(
090                            long groupId, String articleId, double version, String elInstanceId,
091                            String elName, String languageId)
092                    throws SystemException {
093    
094                    JournalArticleImage articleImage =
095                            journalArticleImagePersistence.fetchByG_A_V_E_E_L(
096                                    groupId, articleId, version, elInstanceId, elName, languageId);
097    
098                    if (articleImage != null) {
099                            deleteArticleImage(articleImage);
100                    }
101            }
102    
103            @Override
104            public void deleteImages(long groupId, String articleId, double version)
105                    throws SystemException {
106    
107                    for (JournalArticleImage articleImage :
108                                    journalArticleImagePersistence.findByG_A_V(
109                                            groupId, articleId, version)) {
110    
111                            deleteArticleImage(articleImage);
112                    }
113            }
114    
115            @Override
116            public JournalArticleImage getArticleImage(long articleImageId)
117                    throws PortalException, SystemException {
118    
119                    return journalArticleImagePersistence.findByPrimaryKey(articleImageId);
120            }
121    
122            @Override
123            public long getArticleImageId(
124                            long groupId, String articleId, double version, String elInstanceId,
125                            String elName, String languageId)
126                    throws SystemException {
127    
128                    return getArticleImageId(
129                            groupId, articleId, version, elInstanceId, elName, languageId,
130                            false);
131            }
132    
133            @Override
134            public long getArticleImageId(
135                            long groupId, String articleId, double version, String elInstanceId,
136                            String elName, String languageId, boolean tempImage)
137                    throws SystemException {
138    
139                    JournalArticleImage articleImage =
140                            journalArticleImagePersistence.fetchByG_A_V_E_E_L(
141                                    groupId, articleId, version, elInstanceId, elName, languageId);
142    
143                    if (articleImage == null) {
144                            long articleImageId = counterLocalService.increment();
145    
146                            articleImage = journalArticleImagePersistence.create(
147                                    articleImageId);
148    
149                            articleImage.setGroupId(groupId);
150                            articleImage.setArticleId(articleId);
151                            articleImage.setVersion(version);
152                            articleImage.setElInstanceId(elInstanceId);
153                            articleImage.setElName(elName);
154                            articleImage.setLanguageId(languageId);
155                            articleImage.setTempImage(tempImage);
156    
157                            journalArticleImagePersistence.update(articleImage);
158                    }
159    
160                    return articleImage.getArticleImageId();
161            }
162    
163            @Override
164            public List<JournalArticleImage> getArticleImages(long groupId)
165                    throws SystemException {
166    
167                    return journalArticleImagePersistence.findByGroupId(groupId);
168            }
169    
170            @Override
171            public List<JournalArticleImage> getArticleImages(
172                            long groupId, String articleId, double version)
173                    throws SystemException {
174    
175                    return journalArticleImagePersistence.findByG_A_V(
176                            groupId, articleId, version);
177            }
178    
179    }