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.portal.service.impl;
016    
017    import com.liferay.portal.NoSuchPasswordPolicyRelException;
018    import com.liferay.portal.kernel.exception.PortalException;
019    import com.liferay.portal.kernel.exception.SystemException;
020    import com.liferay.portal.model.PasswordPolicyRel;
021    import com.liferay.portal.service.base.PasswordPolicyRelLocalServiceBaseImpl;
022    import com.liferay.portal.util.PortalUtil;
023    
024    import java.util.List;
025    
026    /**
027     * @author Scott Lee
028     */
029    public class PasswordPolicyRelLocalServiceImpl
030            extends PasswordPolicyRelLocalServiceBaseImpl {
031    
032            public PasswordPolicyRel addPasswordPolicyRel(
033                            long passwordPolicyId, String className, long classPK)
034                    throws SystemException {
035    
036                    long classNameId = PortalUtil.getClassNameId(className);
037    
038                    PasswordPolicyRel passwordPolicyRel =
039                            passwordPolicyRelPersistence.fetchByP_C_C(
040                                    passwordPolicyId, classNameId, classPK);
041    
042                    if (passwordPolicyRel != null) {
043                            return null;
044                    }
045    
046                    try {
047    
048                            // Ensure that models only have one password policy
049    
050                            passwordPolicyRelPersistence.removeByC_C(classNameId, classPK);
051                    }
052                    catch (NoSuchPasswordPolicyRelException nsppre) {
053                    }
054    
055                    long passwordPolicyRelId = counterLocalService.increment();
056    
057                    passwordPolicyRel = passwordPolicyRelPersistence.create(
058                            passwordPolicyRelId);
059    
060                    passwordPolicyRel.setPasswordPolicyId(passwordPolicyId);
061                    passwordPolicyRel.setClassNameId(classNameId);
062                    passwordPolicyRel.setClassPK(classPK);
063    
064                    passwordPolicyRelPersistence.update(passwordPolicyRel, false);
065    
066                    return passwordPolicyRel;
067            }
068    
069            public void addPasswordPolicyRels(
070                            long passwordPolicyId, String className, long[] classPKs)
071                    throws SystemException {
072    
073                    for (int i = 0; i < classPKs.length; i++) {
074                            addPasswordPolicyRel(passwordPolicyId, className, classPKs[i]);
075                    }
076            }
077    
078            @Override
079            public void deletePasswordPolicyRel(long passwordPolicyRelId)
080                    throws PortalException, SystemException {
081    
082                    PasswordPolicyRel passwordPolicyRel =
083                            passwordPolicyRelPersistence.findByPrimaryKey(passwordPolicyRelId);
084    
085                    deletePasswordPolicyRel(passwordPolicyRel);
086            }
087    
088            public void deletePasswordPolicyRel(
089                            long passwordPolicyId, String className, long classPK)
090                    throws SystemException {
091    
092                    try {
093                            long classNameId = PortalUtil.getClassNameId(className);
094    
095                            PasswordPolicyRel passwordPolicyRel =
096                                    passwordPolicyRelPersistence.findByP_C_C(
097                                            passwordPolicyId, classNameId, classPK);
098    
099                            deletePasswordPolicyRel(passwordPolicyRel);
100                    }
101                    catch (NoSuchPasswordPolicyRelException nsppre) {
102                    }
103            }
104    
105            @Override
106            public void deletePasswordPolicyRel(PasswordPolicyRel passwordPolicyRel)
107                    throws SystemException {
108    
109                    passwordPolicyRelPersistence.remove(passwordPolicyRel);
110            }
111    
112            public void deletePasswordPolicyRel(String className, long classPK)
113                    throws SystemException {
114    
115                    try {
116                            long classNameId = PortalUtil.getClassNameId(className);
117    
118                            PasswordPolicyRel passwordPolicyRel =
119                                    passwordPolicyRelPersistence.findByC_C(classNameId, classPK);
120    
121                            deletePasswordPolicyRel(passwordPolicyRel);
122                    }
123                    catch (NoSuchPasswordPolicyRelException nsppre) {
124                    }
125            }
126    
127            public void deletePasswordPolicyRels(long passwordPolicyId)
128                    throws SystemException {
129    
130                    List<PasswordPolicyRel> passwordPolicyRels =
131                            passwordPolicyRelPersistence.findByPasswordPolicyId(
132                                    passwordPolicyId);
133    
134                    for (PasswordPolicyRel passwordPolicyRel : passwordPolicyRels) {
135                            deletePasswordPolicyRel(passwordPolicyRel);
136                    }
137            }
138    
139            public void deletePasswordPolicyRels(
140                            long passwordPolicyId, String className, long[] classPKs)
141                    throws SystemException {
142    
143                    for (int i = 0; i < classPKs.length; i++) {
144                            deletePasswordPolicyRel(passwordPolicyId, className, classPKs[i]);
145                    }
146            }
147    
148            public PasswordPolicyRel fetchPasswordPolicyRel(
149                            String className, long classPK)
150                    throws SystemException {
151    
152                    long classNameId = PortalUtil.getClassNameId(className);
153    
154                    return passwordPolicyRelPersistence.fetchByC_C(classNameId, classPK);
155            }
156    
157            public PasswordPolicyRel getPasswordPolicyRel(
158                            long passwordPolicyId, String className, long classPK)
159                    throws PortalException, SystemException {
160    
161                    long classNameId = PortalUtil.getClassNameId(className);
162    
163                    return passwordPolicyRelPersistence.findByP_C_C(
164                            passwordPolicyId, classNameId, classPK);
165            }
166    
167            public PasswordPolicyRel getPasswordPolicyRel(
168                            String className, long classPK)
169                    throws PortalException, SystemException {
170    
171                    long classNameId = PortalUtil.getClassNameId(className);
172    
173                    return passwordPolicyRelPersistence.findByC_C(classNameId, classPK);
174            }
175    
176            public boolean hasPasswordPolicyRel(
177                            long passwordPolicyId, String className, long classPK)
178                    throws SystemException {
179    
180                    long classNameId = PortalUtil.getClassNameId(className);
181    
182                    PasswordPolicyRel passwordPolicyRel =
183                            passwordPolicyRelPersistence.fetchByP_C_C(
184                                    passwordPolicyId, classNameId, classPK);
185    
186                    if (passwordPolicyRel != null) {
187                            return true;
188                    }
189                    else {
190                            return false;
191                    }
192            }
193    
194    }