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.announcements.service.persistence; 016 017 import aQute.bnd.annotation.ProviderType; 018 019 import com.liferay.portal.kernel.bean.PortalBeanLocatorUtil; 020 import com.liferay.portal.kernel.dao.orm.DynamicQuery; 021 import com.liferay.portal.kernel.exception.SystemException; 022 import com.liferay.portal.kernel.util.OrderByComparator; 023 import com.liferay.portal.kernel.util.ReferenceRegistry; 024 import com.liferay.portal.service.ServiceContext; 025 026 import com.liferay.portlet.announcements.model.AnnouncementsDelivery; 027 028 import java.util.List; 029 030 /** 031 * The persistence utility for the announcements delivery service. This utility wraps {@link AnnouncementsDeliveryPersistenceImpl} and provides direct access to the database for CRUD operations. This utility should only be used by the service layer, as it must operate within a transaction. Never access this utility in a JSP, controller, model, or other front-end class. 032 * 033 * <p> 034 * Caching information and settings can be found in <code>portal.properties</code> 035 * </p> 036 * 037 * @author Brian Wing Shun Chan 038 * @see AnnouncementsDeliveryPersistence 039 * @see AnnouncementsDeliveryPersistenceImpl 040 * @generated 041 */ 042 @ProviderType 043 public class AnnouncementsDeliveryUtil { 044 /* 045 * NOTE FOR DEVELOPERS: 046 * 047 * Never modify this class directly. Modify <code>service.xml</code> and rerun ServiceBuilder to regenerate this class. 048 */ 049 050 /** 051 * @see com.liferay.portal.service.persistence.BasePersistence#clearCache() 052 */ 053 public static void clearCache() { 054 getPersistence().clearCache(); 055 } 056 057 /** 058 * @see com.liferay.portal.service.persistence.BasePersistence#clearCache(com.liferay.portal.model.BaseModel) 059 */ 060 public static void clearCache(AnnouncementsDelivery announcementsDelivery) { 061 getPersistence().clearCache(announcementsDelivery); 062 } 063 064 /** 065 * @see com.liferay.portal.service.persistence.BasePersistence#countWithDynamicQuery(DynamicQuery) 066 */ 067 public static long countWithDynamicQuery(DynamicQuery dynamicQuery) 068 throws SystemException { 069 return getPersistence().countWithDynamicQuery(dynamicQuery); 070 } 071 072 /** 073 * @see com.liferay.portal.service.persistence.BasePersistence#findWithDynamicQuery(DynamicQuery) 074 */ 075 public static List<AnnouncementsDelivery> findWithDynamicQuery( 076 DynamicQuery dynamicQuery) throws SystemException { 077 return getPersistence().findWithDynamicQuery(dynamicQuery); 078 } 079 080 /** 081 * @see com.liferay.portal.service.persistence.BasePersistence#findWithDynamicQuery(DynamicQuery, int, int) 082 */ 083 public static List<AnnouncementsDelivery> findWithDynamicQuery( 084 DynamicQuery dynamicQuery, int start, int end) 085 throws SystemException { 086 return getPersistence().findWithDynamicQuery(dynamicQuery, start, end); 087 } 088 089 /** 090 * @see com.liferay.portal.service.persistence.BasePersistence#findWithDynamicQuery(DynamicQuery, int, int, OrderByComparator) 091 */ 092 public static List<AnnouncementsDelivery> findWithDynamicQuery( 093 DynamicQuery dynamicQuery, int start, int end, 094 OrderByComparator orderByComparator) throws SystemException { 095 return getPersistence() 096 .findWithDynamicQuery(dynamicQuery, start, end, 097 orderByComparator); 098 } 099 100 /** 101 * @see com.liferay.portal.service.persistence.BasePersistence#update(com.liferay.portal.model.BaseModel) 102 */ 103 public static AnnouncementsDelivery update( 104 AnnouncementsDelivery announcementsDelivery) throws SystemException { 105 return getPersistence().update(announcementsDelivery); 106 } 107 108 /** 109 * @see com.liferay.portal.service.persistence.BasePersistence#update(com.liferay.portal.model.BaseModel, ServiceContext) 110 */ 111 public static AnnouncementsDelivery update( 112 AnnouncementsDelivery announcementsDelivery, 113 ServiceContext serviceContext) throws SystemException { 114 return getPersistence().update(announcementsDelivery, serviceContext); 115 } 116 117 /** 118 * Returns all the announcements deliveries where userId = ?. 119 * 120 * @param userId the user ID 121 * @return the matching announcements deliveries 122 * @throws SystemException if a system exception occurred 123 */ 124 public static java.util.List<com.liferay.portlet.announcements.model.AnnouncementsDelivery> findByUserId( 125 long userId) throws com.liferay.portal.kernel.exception.SystemException { 126 return getPersistence().findByUserId(userId); 127 } 128 129 /** 130 * Returns a range of all the announcements deliveries where userId = ?. 131 * 132 * <p> 133 * 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.portlet.announcements.model.impl.AnnouncementsDeliveryModelImpl}. 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. 134 * </p> 135 * 136 * @param userId the user ID 137 * @param start the lower bound of the range of announcements deliveries 138 * @param end the upper bound of the range of announcements deliveries (not inclusive) 139 * @return the range of matching announcements deliveries 140 * @throws SystemException if a system exception occurred 141 */ 142 public static java.util.List<com.liferay.portlet.announcements.model.AnnouncementsDelivery> findByUserId( 143 long userId, int start, int end) 144 throws com.liferay.portal.kernel.exception.SystemException { 145 return getPersistence().findByUserId(userId, start, end); 146 } 147 148 /** 149 * Returns an ordered range of all the announcements deliveries where userId = ?. 150 * 151 * <p> 152 * 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.portlet.announcements.model.impl.AnnouncementsDeliveryModelImpl}. 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. 153 * </p> 154 * 155 * @param userId the user ID 156 * @param start the lower bound of the range of announcements deliveries 157 * @param end the upper bound of the range of announcements deliveries (not inclusive) 158 * @param orderByComparator the comparator to order the results by (optionally <code>null</code>) 159 * @return the ordered range of matching announcements deliveries 160 * @throws SystemException if a system exception occurred 161 */ 162 public static java.util.List<com.liferay.portlet.announcements.model.AnnouncementsDelivery> findByUserId( 163 long userId, int start, int end, 164 com.liferay.portal.kernel.util.OrderByComparator orderByComparator) 165 throws com.liferay.portal.kernel.exception.SystemException { 166 return getPersistence() 167 .findByUserId(userId, start, end, orderByComparator); 168 } 169 170 /** 171 * Returns the first announcements delivery in the ordered set where userId = ?. 172 * 173 * @param userId the user ID 174 * @param orderByComparator the comparator to order the set by (optionally <code>null</code>) 175 * @return the first matching announcements delivery 176 * @throws com.liferay.portlet.announcements.NoSuchDeliveryException if a matching announcements delivery could not be found 177 * @throws SystemException if a system exception occurred 178 */ 179 public static com.liferay.portlet.announcements.model.AnnouncementsDelivery findByUserId_First( 180 long userId, 181 com.liferay.portal.kernel.util.OrderByComparator orderByComparator) 182 throws com.liferay.portal.kernel.exception.SystemException, 183 com.liferay.portlet.announcements.NoSuchDeliveryException { 184 return getPersistence().findByUserId_First(userId, orderByComparator); 185 } 186 187 /** 188 * Returns the first announcements delivery in the ordered set where userId = ?. 189 * 190 * @param userId the user ID 191 * @param orderByComparator the comparator to order the set by (optionally <code>null</code>) 192 * @return the first matching announcements delivery, or <code>null</code> if a matching announcements delivery could not be found 193 * @throws SystemException if a system exception occurred 194 */ 195 public static com.liferay.portlet.announcements.model.AnnouncementsDelivery fetchByUserId_First( 196 long userId, 197 com.liferay.portal.kernel.util.OrderByComparator orderByComparator) 198 throws com.liferay.portal.kernel.exception.SystemException { 199 return getPersistence().fetchByUserId_First(userId, orderByComparator); 200 } 201 202 /** 203 * Returns the last announcements delivery in the ordered set where userId = ?. 204 * 205 * @param userId the user ID 206 * @param orderByComparator the comparator to order the set by (optionally <code>null</code>) 207 * @return the last matching announcements delivery 208 * @throws com.liferay.portlet.announcements.NoSuchDeliveryException if a matching announcements delivery could not be found 209 * @throws SystemException if a system exception occurred 210 */ 211 public static com.liferay.portlet.announcements.model.AnnouncementsDelivery findByUserId_Last( 212 long userId, 213 com.liferay.portal.kernel.util.OrderByComparator orderByComparator) 214 throws com.liferay.portal.kernel.exception.SystemException, 215 com.liferay.portlet.announcements.NoSuchDeliveryException { 216 return getPersistence().findByUserId_Last(userId, orderByComparator); 217 } 218 219 /** 220 * Returns the last announcements delivery in the ordered set where userId = ?. 221 * 222 * @param userId the user ID 223 * @param orderByComparator the comparator to order the set by (optionally <code>null</code>) 224 * @return the last matching announcements delivery, or <code>null</code> if a matching announcements delivery could not be found 225 * @throws SystemException if a system exception occurred 226 */ 227 public static com.liferay.portlet.announcements.model.AnnouncementsDelivery fetchByUserId_Last( 228 long userId, 229 com.liferay.portal.kernel.util.OrderByComparator orderByComparator) 230 throws com.liferay.portal.kernel.exception.SystemException { 231 return getPersistence().fetchByUserId_Last(userId, orderByComparator); 232 } 233 234 /** 235 * Returns the announcements deliveries before and after the current announcements delivery in the ordered set where userId = ?. 236 * 237 * @param deliveryId the primary key of the current announcements delivery 238 * @param userId the user ID 239 * @param orderByComparator the comparator to order the set by (optionally <code>null</code>) 240 * @return the previous, current, and next announcements delivery 241 * @throws com.liferay.portlet.announcements.NoSuchDeliveryException if a announcements delivery with the primary key could not be found 242 * @throws SystemException if a system exception occurred 243 */ 244 public static com.liferay.portlet.announcements.model.AnnouncementsDelivery[] findByUserId_PrevAndNext( 245 long deliveryId, long userId, 246 com.liferay.portal.kernel.util.OrderByComparator orderByComparator) 247 throws com.liferay.portal.kernel.exception.SystemException, 248 com.liferay.portlet.announcements.NoSuchDeliveryException { 249 return getPersistence() 250 .findByUserId_PrevAndNext(deliveryId, userId, 251 orderByComparator); 252 } 253 254 /** 255 * Removes all the announcements deliveries where userId = ? from the database. 256 * 257 * @param userId the user ID 258 * @throws SystemException if a system exception occurred 259 */ 260 public static void removeByUserId(long userId) 261 throws com.liferay.portal.kernel.exception.SystemException { 262 getPersistence().removeByUserId(userId); 263 } 264 265 /** 266 * Returns the number of announcements deliveries where userId = ?. 267 * 268 * @param userId the user ID 269 * @return the number of matching announcements deliveries 270 * @throws SystemException if a system exception occurred 271 */ 272 public static int countByUserId(long userId) 273 throws com.liferay.portal.kernel.exception.SystemException { 274 return getPersistence().countByUserId(userId); 275 } 276 277 /** 278 * Returns the announcements delivery where userId = ? and type = ? or throws a {@link com.liferay.portlet.announcements.NoSuchDeliveryException} if it could not be found. 279 * 280 * @param userId the user ID 281 * @param type the type 282 * @return the matching announcements delivery 283 * @throws com.liferay.portlet.announcements.NoSuchDeliveryException if a matching announcements delivery could not be found 284 * @throws SystemException if a system exception occurred 285 */ 286 public static com.liferay.portlet.announcements.model.AnnouncementsDelivery findByU_T( 287 long userId, java.lang.String type) 288 throws com.liferay.portal.kernel.exception.SystemException, 289 com.liferay.portlet.announcements.NoSuchDeliveryException { 290 return getPersistence().findByU_T(userId, type); 291 } 292 293 /** 294 * Returns the announcements delivery where userId = ? and type = ? or returns <code>null</code> if it could not be found. Uses the finder cache. 295 * 296 * @param userId the user ID 297 * @param type the type 298 * @return the matching announcements delivery, or <code>null</code> if a matching announcements delivery could not be found 299 * @throws SystemException if a system exception occurred 300 */ 301 public static com.liferay.portlet.announcements.model.AnnouncementsDelivery fetchByU_T( 302 long userId, java.lang.String type) 303 throws com.liferay.portal.kernel.exception.SystemException { 304 return getPersistence().fetchByU_T(userId, type); 305 } 306 307 /** 308 * Returns the announcements delivery where userId = ? and type = ? or returns <code>null</code> if it could not be found, optionally using the finder cache. 309 * 310 * @param userId the user ID 311 * @param type the type 312 * @param retrieveFromCache whether to use the finder cache 313 * @return the matching announcements delivery, or <code>null</code> if a matching announcements delivery could not be found 314 * @throws SystemException if a system exception occurred 315 */ 316 public static com.liferay.portlet.announcements.model.AnnouncementsDelivery fetchByU_T( 317 long userId, java.lang.String type, boolean retrieveFromCache) 318 throws com.liferay.portal.kernel.exception.SystemException { 319 return getPersistence().fetchByU_T(userId, type, retrieveFromCache); 320 } 321 322 /** 323 * Removes the announcements delivery where userId = ? and type = ? from the database. 324 * 325 * @param userId the user ID 326 * @param type the type 327 * @return the announcements delivery that was removed 328 * @throws SystemException if a system exception occurred 329 */ 330 public static com.liferay.portlet.announcements.model.AnnouncementsDelivery removeByU_T( 331 long userId, java.lang.String type) 332 throws com.liferay.portal.kernel.exception.SystemException, 333 com.liferay.portlet.announcements.NoSuchDeliveryException { 334 return getPersistence().removeByU_T(userId, type); 335 } 336 337 /** 338 * Returns the number of announcements deliveries where userId = ? and type = ?. 339 * 340 * @param userId the user ID 341 * @param type the type 342 * @return the number of matching announcements deliveries 343 * @throws SystemException if a system exception occurred 344 */ 345 public static int countByU_T(long userId, java.lang.String type) 346 throws com.liferay.portal.kernel.exception.SystemException { 347 return getPersistence().countByU_T(userId, type); 348 } 349 350 /** 351 * Caches the announcements delivery in the entity cache if it is enabled. 352 * 353 * @param announcementsDelivery the announcements delivery 354 */ 355 public static void cacheResult( 356 com.liferay.portlet.announcements.model.AnnouncementsDelivery announcementsDelivery) { 357 getPersistence().cacheResult(announcementsDelivery); 358 } 359 360 /** 361 * Caches the announcements deliveries in the entity cache if it is enabled. 362 * 363 * @param announcementsDeliveries the announcements deliveries 364 */ 365 public static void cacheResult( 366 java.util.List<com.liferay.portlet.announcements.model.AnnouncementsDelivery> announcementsDeliveries) { 367 getPersistence().cacheResult(announcementsDeliveries); 368 } 369 370 /** 371 * Creates a new announcements delivery with the primary key. Does not add the announcements delivery to the database. 372 * 373 * @param deliveryId the primary key for the new announcements delivery 374 * @return the new announcements delivery 375 */ 376 public static com.liferay.portlet.announcements.model.AnnouncementsDelivery create( 377 long deliveryId) { 378 return getPersistence().create(deliveryId); 379 } 380 381 /** 382 * Removes the announcements delivery with the primary key from the database. Also notifies the appropriate model listeners. 383 * 384 * @param deliveryId the primary key of the announcements delivery 385 * @return the announcements delivery that was removed 386 * @throws com.liferay.portlet.announcements.NoSuchDeliveryException if a announcements delivery with the primary key could not be found 387 * @throws SystemException if a system exception occurred 388 */ 389 public static com.liferay.portlet.announcements.model.AnnouncementsDelivery remove( 390 long deliveryId) 391 throws com.liferay.portal.kernel.exception.SystemException, 392 com.liferay.portlet.announcements.NoSuchDeliveryException { 393 return getPersistence().remove(deliveryId); 394 } 395 396 public static com.liferay.portlet.announcements.model.AnnouncementsDelivery updateImpl( 397 com.liferay.portlet.announcements.model.AnnouncementsDelivery announcementsDelivery) 398 throws com.liferay.portal.kernel.exception.SystemException { 399 return getPersistence().updateImpl(announcementsDelivery); 400 } 401 402 /** 403 * Returns the announcements delivery with the primary key or throws a {@link com.liferay.portlet.announcements.NoSuchDeliveryException} if it could not be found. 404 * 405 * @param deliveryId the primary key of the announcements delivery 406 * @return the announcements delivery 407 * @throws com.liferay.portlet.announcements.NoSuchDeliveryException if a announcements delivery with the primary key could not be found 408 * @throws SystemException if a system exception occurred 409 */ 410 public static com.liferay.portlet.announcements.model.AnnouncementsDelivery findByPrimaryKey( 411 long deliveryId) 412 throws com.liferay.portal.kernel.exception.SystemException, 413 com.liferay.portlet.announcements.NoSuchDeliveryException { 414 return getPersistence().findByPrimaryKey(deliveryId); 415 } 416 417 /** 418 * Returns the announcements delivery with the primary key or returns <code>null</code> if it could not be found. 419 * 420 * @param deliveryId the primary key of the announcements delivery 421 * @return the announcements delivery, or <code>null</code> if a announcements delivery with the primary key could not be found 422 * @throws SystemException if a system exception occurred 423 */ 424 public static com.liferay.portlet.announcements.model.AnnouncementsDelivery fetchByPrimaryKey( 425 long deliveryId) 426 throws com.liferay.portal.kernel.exception.SystemException { 427 return getPersistence().fetchByPrimaryKey(deliveryId); 428 } 429 430 /** 431 * Returns all the announcements deliveries. 432 * 433 * @return the announcements deliveries 434 * @throws SystemException if a system exception occurred 435 */ 436 public static java.util.List<com.liferay.portlet.announcements.model.AnnouncementsDelivery> findAll() 437 throws com.liferay.portal.kernel.exception.SystemException { 438 return getPersistence().findAll(); 439 } 440 441 /** 442 * Returns a range of all the announcements deliveries. 443 * 444 * <p> 445 * 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.portlet.announcements.model.impl.AnnouncementsDeliveryModelImpl}. 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. 446 * </p> 447 * 448 * @param start the lower bound of the range of announcements deliveries 449 * @param end the upper bound of the range of announcements deliveries (not inclusive) 450 * @return the range of announcements deliveries 451 * @throws SystemException if a system exception occurred 452 */ 453 public static java.util.List<com.liferay.portlet.announcements.model.AnnouncementsDelivery> findAll( 454 int start, int end) 455 throws com.liferay.portal.kernel.exception.SystemException { 456 return getPersistence().findAll(start, end); 457 } 458 459 /** 460 * Returns an ordered range of all the announcements deliveries. 461 * 462 * <p> 463 * 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.portlet.announcements.model.impl.AnnouncementsDeliveryModelImpl}. 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. 464 * </p> 465 * 466 * @param start the lower bound of the range of announcements deliveries 467 * @param end the upper bound of the range of announcements deliveries (not inclusive) 468 * @param orderByComparator the comparator to order the results by (optionally <code>null</code>) 469 * @return the ordered range of announcements deliveries 470 * @throws SystemException if a system exception occurred 471 */ 472 public static java.util.List<com.liferay.portlet.announcements.model.AnnouncementsDelivery> findAll( 473 int start, int end, 474 com.liferay.portal.kernel.util.OrderByComparator orderByComparator) 475 throws com.liferay.portal.kernel.exception.SystemException { 476 return getPersistence().findAll(start, end, orderByComparator); 477 } 478 479 /** 480 * Removes all the announcements deliveries from the database. 481 * 482 * @throws SystemException if a system exception occurred 483 */ 484 public static void removeAll() 485 throws com.liferay.portal.kernel.exception.SystemException { 486 getPersistence().removeAll(); 487 } 488 489 /** 490 * Returns the number of announcements deliveries. 491 * 492 * @return the number of announcements deliveries 493 * @throws SystemException if a system exception occurred 494 */ 495 public static int countAll() 496 throws com.liferay.portal.kernel.exception.SystemException { 497 return getPersistence().countAll(); 498 } 499 500 public static AnnouncementsDeliveryPersistence getPersistence() { 501 if (_persistence == null) { 502 _persistence = (AnnouncementsDeliveryPersistence)PortalBeanLocatorUtil.locate(AnnouncementsDeliveryPersistence.class.getName()); 503 504 ReferenceRegistry.registerReference(AnnouncementsDeliveryUtil.class, 505 "_persistence"); 506 } 507 508 return _persistence; 509 } 510 511 /** 512 * @deprecated As of 6.2.0 513 */ 514 public void setPersistence(AnnouncementsDeliveryPersistence persistence) { 515 } 516 517 private static AnnouncementsDeliveryPersistence _persistence; 518 }