001    /**
002     * Copyright (c) 2000-2012 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.NoSuchArticleImageException;
021    import com.liferay.portlet.journal.model.JournalArticleImage;
022    import com.liferay.portlet.journal.service.base.JournalArticleImageLocalServiceBaseImpl;
023    
024    import java.util.List;
025    
026    /**
027     * @author Brian Wing Shun Chan
028     */
029    public class JournalArticleImageLocalServiceImpl
030            extends JournalArticleImageLocalServiceBaseImpl {
031    
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, false);
058                    }
059                    else if (articleImage.getArticleImageId() == articleImageId) {
060                    }
061                    else {
062                            throw new DuplicateArticleImageIdException();
063                    }
064            }
065    
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            public void deleteArticleImage(long articleImageId) throws SystemException {
079                    try {
080                            JournalArticleImage articleImage =
081                                    journalArticleImagePersistence.findByPrimaryKey(articleImageId);
082    
083                            deleteArticleImage(articleImage);
084                    }
085                    catch (NoSuchArticleImageException nsaie) {
086                    }
087            }
088    
089            public void deleteArticleImage(
090                            long groupId, String articleId, double version, String elInstanceId,
091                            String elName, String languageId)
092                    throws SystemException {
093    
094                    try {
095                            JournalArticleImage articleImage =
096                                    journalArticleImagePersistence.findByG_A_V_E_E_L(
097                                    groupId, articleId, version, elInstanceId, elName, languageId);
098    
099                            deleteArticleImage(articleImage);
100                    }
101                    catch (NoSuchArticleImageException nsaie) {
102                    }
103            }
104    
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            public JournalArticleImage getArticleImage(long articleImageId)
117                    throws PortalException, SystemException {
118    
119                    return journalArticleImagePersistence.findByPrimaryKey(articleImageId);
120            }
121    
122            public long getArticleImageId(
123                            long groupId, String articleId, double version, String elInstanceId,
124                            String elName, String languageId)
125                    throws SystemException {
126    
127                    return getArticleImageId(
128                            groupId, articleId, version, elInstanceId, elName, languageId,
129                            false);
130            }
131    
132            public long getArticleImageId(
133                            long groupId, String articleId, double version, String elInstanceId,
134                            String elName, String languageId, boolean tempImage)
135                    throws SystemException {
136    
137                    JournalArticleImage articleImage =
138                            journalArticleImagePersistence.fetchByG_A_V_E_E_L(
139                                    groupId, articleId, version, elInstanceId, elName, languageId);
140    
141                    if (articleImage == null) {
142                            long articleImageId = counterLocalService.increment();
143    
144                            articleImage = journalArticleImagePersistence.create(
145                                    articleImageId);
146    
147                            articleImage.setGroupId(groupId);
148                            articleImage.setArticleId(articleId);
149                            articleImage.setVersion(version);
150                            articleImage.setElInstanceId(elInstanceId);
151                            articleImage.setElName(elName);
152                            articleImage.setLanguageId(languageId);
153                            articleImage.setTempImage(tempImage);
154    
155                            journalArticleImagePersistence.update(articleImage, false);
156                    }
157    
158                    return articleImage.getArticleImageId();
159            }
160    
161            public List<JournalArticleImage> getArticleImages(long groupId)
162                    throws SystemException {
163    
164                    return journalArticleImagePersistence.findByGroupId(groupId);
165            }
166    
167    }