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.portal.kernel.service; 016 017 import aQute.bnd.annotation.ProviderType; 018 019 import com.liferay.portal.kernel.dao.orm.ActionableDynamicQuery; 020 import com.liferay.portal.kernel.dao.orm.DynamicQuery; 021 import com.liferay.portal.kernel.dao.orm.IndexableActionableDynamicQuery; 022 import com.liferay.portal.kernel.dao.orm.Projection; 023 import com.liferay.portal.kernel.exception.PortalException; 024 import com.liferay.portal.kernel.exception.SystemException; 025 import com.liferay.portal.kernel.model.MembershipRequest; 026 import com.liferay.portal.kernel.model.PersistedModel; 027 import com.liferay.portal.kernel.search.Indexable; 028 import com.liferay.portal.kernel.search.IndexableType; 029 import com.liferay.portal.kernel.transaction.Isolation; 030 import com.liferay.portal.kernel.transaction.Propagation; 031 import com.liferay.portal.kernel.transaction.Transactional; 032 import com.liferay.portal.kernel.util.OrderByComparator; 033 034 import java.io.Serializable; 035 036 import java.util.List; 037 038 /** 039 * Provides the local service interface for MembershipRequest. Methods of this 040 * service will not have security checks based on the propagated JAAS 041 * credentials because this service can only be accessed from within the same 042 * VM. 043 * 044 * @author Brian Wing Shun Chan 045 * @see MembershipRequestLocalServiceUtil 046 * @see com.liferay.portal.service.base.MembershipRequestLocalServiceBaseImpl 047 * @see com.liferay.portal.service.impl.MembershipRequestLocalServiceImpl 048 * @generated 049 */ 050 @ProviderType 051 @Transactional(isolation = Isolation.PORTAL, rollbackFor = { 052 PortalException.class, SystemException.class}) 053 public interface MembershipRequestLocalService extends BaseLocalService, 054 PersistedModelLocalService { 055 /* 056 * NOTE FOR DEVELOPERS: 057 * 058 * Never modify or reference this interface directly. Always use {@link MembershipRequestLocalServiceUtil} to access the membership request local service. Add custom service methods to {@link com.liferay.portal.service.impl.MembershipRequestLocalServiceImpl} and rerun ServiceBuilder to automatically copy the method declarations to this interface. 059 */ 060 @Transactional(propagation = Propagation.SUPPORTS, readOnly = true) 061 public boolean hasMembershipRequest(long userId, long groupId, long statusId); 062 063 @Transactional(propagation = Propagation.SUPPORTS, readOnly = true) 064 public ActionableDynamicQuery getActionableDynamicQuery(); 065 066 public DynamicQuery dynamicQuery(); 067 068 @Transactional(propagation = Propagation.SUPPORTS, readOnly = true) 069 public IndexableActionableDynamicQuery getIndexableActionableDynamicQuery(); 070 071 /** 072 * Adds the membership request to the database. Also notifies the appropriate model listeners. 073 * 074 * @param membershipRequest the membership request 075 * @return the membership request that was added 076 */ 077 @Indexable(type = IndexableType.REINDEX) 078 public MembershipRequest addMembershipRequest( 079 MembershipRequest membershipRequest); 080 081 public MembershipRequest addMembershipRequest(long userId, long groupId, 082 java.lang.String comments, ServiceContext serviceContext) 083 throws PortalException; 084 085 /** 086 * Creates a new membership request with the primary key. Does not add the membership request to the database. 087 * 088 * @param membershipRequestId the primary key for the new membership request 089 * @return the new membership request 090 */ 091 public MembershipRequest createMembershipRequest(long membershipRequestId); 092 093 /** 094 * Deletes the membership request from the database. Also notifies the appropriate model listeners. 095 * 096 * @param membershipRequest the membership request 097 * @return the membership request that was removed 098 */ 099 @Indexable(type = IndexableType.DELETE) 100 public MembershipRequest deleteMembershipRequest( 101 MembershipRequest membershipRequest); 102 103 /** 104 * Deletes the membership request with the primary key from the database. Also notifies the appropriate model listeners. 105 * 106 * @param membershipRequestId the primary key of the membership request 107 * @return the membership request that was removed 108 * @throws PortalException if a membership request with the primary key could not be found 109 */ 110 @Indexable(type = IndexableType.DELETE) 111 public MembershipRequest deleteMembershipRequest(long membershipRequestId) 112 throws PortalException; 113 114 @Transactional(propagation = Propagation.SUPPORTS, readOnly = true) 115 public MembershipRequest fetchMembershipRequest(long membershipRequestId); 116 117 /** 118 * Returns the membership request with the primary key. 119 * 120 * @param membershipRequestId the primary key of the membership request 121 * @return the membership request 122 * @throws PortalException if a membership request with the primary key could not be found 123 */ 124 @Transactional(propagation = Propagation.SUPPORTS, readOnly = true) 125 public MembershipRequest getMembershipRequest(long membershipRequestId) 126 throws PortalException; 127 128 /** 129 * Updates the membership request in the database or adds it if it does not yet exist. Also notifies the appropriate model listeners. 130 * 131 * @param membershipRequest the membership request 132 * @return the membership request that was updated 133 */ 134 @Indexable(type = IndexableType.REINDEX) 135 public MembershipRequest updateMembershipRequest( 136 MembershipRequest membershipRequest); 137 138 /** 139 * @throws PortalException 140 */ 141 @Override 142 public PersistedModel deletePersistedModel(PersistedModel persistedModel) 143 throws PortalException; 144 145 @Override 146 @Transactional(propagation = Propagation.SUPPORTS, readOnly = true) 147 public PersistedModel getPersistedModel(Serializable primaryKeyObj) 148 throws PortalException; 149 150 /** 151 * Returns the number of membership requests. 152 * 153 * @return the number of membership requests 154 */ 155 @Transactional(propagation = Propagation.SUPPORTS, readOnly = true) 156 public int getMembershipRequestsCount(); 157 158 @Transactional(propagation = Propagation.SUPPORTS, readOnly = true) 159 public int searchCount(long groupId, int status); 160 161 /** 162 * Returns the OSGi service identifier. 163 * 164 * @return the OSGi service identifier 165 */ 166 public java.lang.String getOSGiServiceIdentifier(); 167 168 /** 169 * Performs a dynamic query on the database and returns the matching rows. 170 * 171 * @param dynamicQuery the dynamic query 172 * @return the matching rows 173 */ 174 public <T> List<T> dynamicQuery(DynamicQuery dynamicQuery); 175 176 /** 177 * Performs a dynamic query on the database and returns a range of the matching rows. 178 * 179 * <p> 180 * Useful when paginating results. Returns a maximum of <code>end - start</code> instances. <code>start</code> and <code>end</code> are not primary keys, they are indexes in the result set. Thus, <code>0</code> refers to the first result in the set. Setting both <code>start</code> and <code>end</code> to {@link com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS} will return the full result set. If <code>orderByComparator</code> is specified, then the query will include the given ORDER BY logic. If <code>orderByComparator</code> is absent and pagination is required (<code>start</code> and <code>end</code> are not {@link com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS}), then the query will include the default ORDER BY logic from {@link com.liferay.portal.model.impl.MembershipRequestModelImpl}. If both <code>orderByComparator</code> and pagination are absent, for performance reasons, the query will not have an ORDER BY clause and the returned result set will be sorted on by the primary key in an ascending order. 181 * </p> 182 * 183 * @param dynamicQuery the dynamic query 184 * @param start the lower bound of the range of model instances 185 * @param end the upper bound of the range of model instances (not inclusive) 186 * @return the range of matching rows 187 */ 188 public <T> List<T> dynamicQuery(DynamicQuery dynamicQuery, int start, 189 int end); 190 191 /** 192 * Performs a dynamic query on the database and returns an ordered range of the matching rows. 193 * 194 * <p> 195 * Useful when paginating results. Returns a maximum of <code>end - start</code> instances. <code>start</code> and <code>end</code> are not primary keys, they are indexes in the result set. Thus, <code>0</code> refers to the first result in the set. Setting both <code>start</code> and <code>end</code> to {@link com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS} will return the full result set. If <code>orderByComparator</code> is specified, then the query will include the given ORDER BY logic. If <code>orderByComparator</code> is absent and pagination is required (<code>start</code> and <code>end</code> are not {@link com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS}), then the query will include the default ORDER BY logic from {@link com.liferay.portal.model.impl.MembershipRequestModelImpl}. If both <code>orderByComparator</code> and pagination are absent, for performance reasons, the query will not have an ORDER BY clause and the returned result set will be sorted on by the primary key in an ascending order. 196 * </p> 197 * 198 * @param dynamicQuery the dynamic query 199 * @param start the lower bound of the range of model instances 200 * @param end the upper bound of the range of model instances (not inclusive) 201 * @param orderByComparator the comparator to order the results by (optionally <code>null</code>) 202 * @return the ordered range of matching rows 203 */ 204 public <T> List<T> dynamicQuery(DynamicQuery dynamicQuery, int start, 205 int end, OrderByComparator<T> orderByComparator); 206 207 /** 208 * Returns a range of all the membership requests. 209 * 210 * <p> 211 * Useful when paginating results. Returns a maximum of <code>end - start</code> instances. <code>start</code> and <code>end</code> are not primary keys, they are indexes in the result set. Thus, <code>0</code> refers to the first result in the set. Setting both <code>start</code> and <code>end</code> to {@link com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS} will return the full result set. If <code>orderByComparator</code> is specified, then the query will include the given ORDER BY logic. If <code>orderByComparator</code> is absent and pagination is required (<code>start</code> and <code>end</code> are not {@link com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS}), then the query will include the default ORDER BY logic from {@link com.liferay.portal.model.impl.MembershipRequestModelImpl}. If both <code>orderByComparator</code> and pagination are absent, for performance reasons, the query will not have an ORDER BY clause and the returned result set will be sorted on by the primary key in an ascending order. 212 * </p> 213 * 214 * @param start the lower bound of the range of membership requests 215 * @param end the upper bound of the range of membership requests (not inclusive) 216 * @return the range of membership requests 217 */ 218 @Transactional(propagation = Propagation.SUPPORTS, readOnly = true) 219 public List<MembershipRequest> getMembershipRequests(int start, int end); 220 221 @Transactional(propagation = Propagation.SUPPORTS, readOnly = true) 222 public List<MembershipRequest> getMembershipRequests(long userId, 223 long groupId, long statusId); 224 225 @Transactional(propagation = Propagation.SUPPORTS, readOnly = true) 226 public List<MembershipRequest> search(long groupId, int status, int start, 227 int end); 228 229 @Transactional(propagation = Propagation.SUPPORTS, readOnly = true) 230 public List<MembershipRequest> search(long groupId, int status, int start, 231 int end, OrderByComparator<MembershipRequest> obc); 232 233 /** 234 * Returns the number of rows matching the dynamic query. 235 * 236 * @param dynamicQuery the dynamic query 237 * @return the number of rows matching the dynamic query 238 */ 239 public long dynamicQueryCount(DynamicQuery dynamicQuery); 240 241 /** 242 * Returns the number of rows matching the dynamic query. 243 * 244 * @param dynamicQuery the dynamic query 245 * @param projection the projection to apply to the query 246 * @return the number of rows matching the dynamic query 247 */ 248 public long dynamicQueryCount(DynamicQuery dynamicQuery, 249 Projection projection); 250 251 public void deleteMembershipRequests(long groupId); 252 253 public void deleteMembershipRequests(long groupId, long statusId); 254 255 public void deleteMembershipRequestsByUserId(long userId); 256 257 public void updateStatus(long replierUserId, long membershipRequestId, 258 java.lang.String replyComments, long statusId, boolean addUserToGroup, 259 ServiceContext serviceContext) throws PortalException; 260 }