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.documentlibrary.service.base;
016    
017    import com.liferay.counter.service.CounterLocalService;
018    
019    import com.liferay.portal.kernel.bean.BeanReference;
020    import com.liferay.portal.kernel.bean.IdentifiableBean;
021    import com.liferay.portal.kernel.dao.jdbc.SqlUpdate;
022    import com.liferay.portal.kernel.dao.jdbc.SqlUpdateFactoryUtil;
023    import com.liferay.portal.kernel.dao.orm.DynamicQuery;
024    import com.liferay.portal.kernel.dao.orm.DynamicQueryFactoryUtil;
025    import com.liferay.portal.kernel.exception.PortalException;
026    import com.liferay.portal.kernel.exception.SystemException;
027    import com.liferay.portal.kernel.search.Indexable;
028    import com.liferay.portal.kernel.search.IndexableType;
029    import com.liferay.portal.kernel.util.OrderByComparator;
030    import com.liferay.portal.model.PersistedModel;
031    import com.liferay.portal.service.BaseLocalServiceImpl;
032    import com.liferay.portal.service.PersistedModelLocalServiceRegistry;
033    import com.liferay.portal.service.ResourceLocalService;
034    import com.liferay.portal.service.ResourceService;
035    import com.liferay.portal.service.UserLocalService;
036    import com.liferay.portal.service.UserService;
037    import com.liferay.portal.service.persistence.ResourceFinder;
038    import com.liferay.portal.service.persistence.ResourcePersistence;
039    import com.liferay.portal.service.persistence.UserFinder;
040    import com.liferay.portal.service.persistence.UserPersistence;
041    
042    import com.liferay.portlet.asset.service.AssetEntryLocalService;
043    import com.liferay.portlet.asset.service.AssetEntryService;
044    import com.liferay.portlet.asset.service.AssetTagLocalService;
045    import com.liferay.portlet.asset.service.AssetTagService;
046    import com.liferay.portlet.asset.service.persistence.AssetEntryFinder;
047    import com.liferay.portlet.asset.service.persistence.AssetEntryPersistence;
048    import com.liferay.portlet.asset.service.persistence.AssetTagFinder;
049    import com.liferay.portlet.asset.service.persistence.AssetTagPersistence;
050    import com.liferay.portlet.documentlibrary.model.DLFileShortcut;
051    import com.liferay.portlet.documentlibrary.service.DLAppHelperLocalService;
052    import com.liferay.portlet.documentlibrary.service.DLAppLocalService;
053    import com.liferay.portlet.documentlibrary.service.DLAppService;
054    import com.liferay.portlet.documentlibrary.service.DLContentLocalService;
055    import com.liferay.portlet.documentlibrary.service.DLFileEntryLocalService;
056    import com.liferay.portlet.documentlibrary.service.DLFileEntryMetadataLocalService;
057    import com.liferay.portlet.documentlibrary.service.DLFileEntryService;
058    import com.liferay.portlet.documentlibrary.service.DLFileEntryTypeLocalService;
059    import com.liferay.portlet.documentlibrary.service.DLFileEntryTypeService;
060    import com.liferay.portlet.documentlibrary.service.DLFileRankLocalService;
061    import com.liferay.portlet.documentlibrary.service.DLFileShortcutLocalService;
062    import com.liferay.portlet.documentlibrary.service.DLFileShortcutService;
063    import com.liferay.portlet.documentlibrary.service.DLFileVersionLocalService;
064    import com.liferay.portlet.documentlibrary.service.DLFileVersionService;
065    import com.liferay.portlet.documentlibrary.service.DLFolderLocalService;
066    import com.liferay.portlet.documentlibrary.service.DLFolderService;
067    import com.liferay.portlet.documentlibrary.service.DLSyncLocalService;
068    import com.liferay.portlet.documentlibrary.service.DLSyncService;
069    import com.liferay.portlet.documentlibrary.service.persistence.DLContentPersistence;
070    import com.liferay.portlet.documentlibrary.service.persistence.DLFileEntryFinder;
071    import com.liferay.portlet.documentlibrary.service.persistence.DLFileEntryMetadataPersistence;
072    import com.liferay.portlet.documentlibrary.service.persistence.DLFileEntryPersistence;
073    import com.liferay.portlet.documentlibrary.service.persistence.DLFileEntryTypeFinder;
074    import com.liferay.portlet.documentlibrary.service.persistence.DLFileEntryTypePersistence;
075    import com.liferay.portlet.documentlibrary.service.persistence.DLFileRankFinder;
076    import com.liferay.portlet.documentlibrary.service.persistence.DLFileRankPersistence;
077    import com.liferay.portlet.documentlibrary.service.persistence.DLFileShortcutPersistence;
078    import com.liferay.portlet.documentlibrary.service.persistence.DLFileVersionPersistence;
079    import com.liferay.portlet.documentlibrary.service.persistence.DLFolderFinder;
080    import com.liferay.portlet.documentlibrary.service.persistence.DLFolderPersistence;
081    import com.liferay.portlet.documentlibrary.service.persistence.DLSyncFinder;
082    import com.liferay.portlet.documentlibrary.service.persistence.DLSyncPersistence;
083    
084    import java.io.Serializable;
085    
086    import java.util.List;
087    
088    import javax.sql.DataSource;
089    
090    /**
091     * The base implementation of the document library file shortcut local service.
092     *
093     * <p>
094     * This implementation exists only as a container for the default service methods generated by ServiceBuilder. All custom service methods should be put in {@link com.liferay.portlet.documentlibrary.service.impl.DLFileShortcutLocalServiceImpl}.
095     * </p>
096     *
097     * @author Brian Wing Shun Chan
098     * @see com.liferay.portlet.documentlibrary.service.impl.DLFileShortcutLocalServiceImpl
099     * @see com.liferay.portlet.documentlibrary.service.DLFileShortcutLocalServiceUtil
100     * @generated
101     */
102    public abstract class DLFileShortcutLocalServiceBaseImpl
103            extends BaseLocalServiceImpl implements DLFileShortcutLocalService,
104                    IdentifiableBean {
105            /*
106             * NOTE FOR DEVELOPERS:
107             *
108             * Never modify or reference this class directly. Always use {@link com.liferay.portlet.documentlibrary.service.DLFileShortcutLocalServiceUtil} to access the document library file shortcut local service.
109             */
110    
111            /**
112             * Adds the document library file shortcut to the database. Also notifies the appropriate model listeners.
113             *
114             * @param dlFileShortcut the document library file shortcut
115             * @return the document library file shortcut that was added
116             * @throws SystemException if a system exception occurred
117             */
118            @Indexable(type = IndexableType.REINDEX)
119            public DLFileShortcut addDLFileShortcut(DLFileShortcut dlFileShortcut)
120                    throws SystemException {
121                    dlFileShortcut.setNew(true);
122    
123                    return dlFileShortcutPersistence.update(dlFileShortcut, false);
124            }
125    
126            /**
127             * Creates a new document library file shortcut with the primary key. Does not add the document library file shortcut to the database.
128             *
129             * @param fileShortcutId the primary key for the new document library file shortcut
130             * @return the new document library file shortcut
131             */
132            public DLFileShortcut createDLFileShortcut(long fileShortcutId) {
133                    return dlFileShortcutPersistence.create(fileShortcutId);
134            }
135    
136            /**
137             * Deletes the document library file shortcut with the primary key from the database. Also notifies the appropriate model listeners.
138             *
139             * @param fileShortcutId the primary key of the document library file shortcut
140             * @return the document library file shortcut that was removed
141             * @throws PortalException if a document library file shortcut with the primary key could not be found
142             * @throws SystemException if a system exception occurred
143             */
144            @Indexable(type = IndexableType.DELETE)
145            public DLFileShortcut deleteDLFileShortcut(long fileShortcutId)
146                    throws PortalException, SystemException {
147                    return dlFileShortcutPersistence.remove(fileShortcutId);
148            }
149    
150            /**
151             * Deletes the document library file shortcut from the database. Also notifies the appropriate model listeners.
152             *
153             * @param dlFileShortcut the document library file shortcut
154             * @return the document library file shortcut that was removed
155             * @throws SystemException if a system exception occurred
156             */
157            @Indexable(type = IndexableType.DELETE)
158            public DLFileShortcut deleteDLFileShortcut(DLFileShortcut dlFileShortcut)
159                    throws SystemException {
160                    return dlFileShortcutPersistence.remove(dlFileShortcut);
161            }
162    
163            public DynamicQuery dynamicQuery() {
164                    Class<?> clazz = getClass();
165    
166                    return DynamicQueryFactoryUtil.forClass(DLFileShortcut.class,
167                            clazz.getClassLoader());
168            }
169    
170            /**
171             * Performs a dynamic query on the database and returns the matching rows.
172             *
173             * @param dynamicQuery the dynamic query
174             * @return the matching rows
175             * @throws SystemException if a system exception occurred
176             */
177            @SuppressWarnings("rawtypes")
178            public List dynamicQuery(DynamicQuery dynamicQuery)
179                    throws SystemException {
180                    return dlFileShortcutPersistence.findWithDynamicQuery(dynamicQuery);
181            }
182    
183            /**
184             * Performs a dynamic query on the database and returns a range of the matching rows.
185             *
186             * <p>
187             * 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.
188             * </p>
189             *
190             * @param dynamicQuery the dynamic query
191             * @param start the lower bound of the range of model instances
192             * @param end the upper bound of the range of model instances (not inclusive)
193             * @return the range of matching rows
194             * @throws SystemException if a system exception occurred
195             */
196            @SuppressWarnings("rawtypes")
197            public List dynamicQuery(DynamicQuery dynamicQuery, int start, int end)
198                    throws SystemException {
199                    return dlFileShortcutPersistence.findWithDynamicQuery(dynamicQuery,
200                            start, end);
201            }
202    
203            /**
204             * Performs a dynamic query on the database and returns an ordered range of the matching rows.
205             *
206             * <p>
207             * 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.
208             * </p>
209             *
210             * @param dynamicQuery the dynamic query
211             * @param start the lower bound of the range of model instances
212             * @param end the upper bound of the range of model instances (not inclusive)
213             * @param orderByComparator the comparator to order the results by (optionally <code>null</code>)
214             * @return the ordered range of matching rows
215             * @throws SystemException if a system exception occurred
216             */
217            @SuppressWarnings("rawtypes")
218            public List dynamicQuery(DynamicQuery dynamicQuery, int start, int end,
219                    OrderByComparator orderByComparator) throws SystemException {
220                    return dlFileShortcutPersistence.findWithDynamicQuery(dynamicQuery,
221                            start, end, orderByComparator);
222            }
223    
224            /**
225             * Returns the number of rows that match the dynamic query.
226             *
227             * @param dynamicQuery the dynamic query
228             * @return the number of rows that match the dynamic query
229             * @throws SystemException if a system exception occurred
230             */
231            public long dynamicQueryCount(DynamicQuery dynamicQuery)
232                    throws SystemException {
233                    return dlFileShortcutPersistence.countWithDynamicQuery(dynamicQuery);
234            }
235    
236            public DLFileShortcut fetchDLFileShortcut(long fileShortcutId)
237                    throws SystemException {
238                    return dlFileShortcutPersistence.fetchByPrimaryKey(fileShortcutId);
239            }
240    
241            /**
242             * Returns the document library file shortcut with the primary key.
243             *
244             * @param fileShortcutId the primary key of the document library file shortcut
245             * @return the document library file shortcut
246             * @throws PortalException if a document library file shortcut with the primary key could not be found
247             * @throws SystemException if a system exception occurred
248             */
249            public DLFileShortcut getDLFileShortcut(long fileShortcutId)
250                    throws PortalException, SystemException {
251                    return dlFileShortcutPersistence.findByPrimaryKey(fileShortcutId);
252            }
253    
254            public PersistedModel getPersistedModel(Serializable primaryKeyObj)
255                    throws PortalException, SystemException {
256                    return dlFileShortcutPersistence.findByPrimaryKey(primaryKeyObj);
257            }
258    
259            /**
260             * Returns the document library file shortcut with the UUID in the group.
261             *
262             * @param uuid the UUID of document library file shortcut
263             * @param groupId the group id of the document library file shortcut
264             * @return the document library file shortcut
265             * @throws PortalException if a document library file shortcut with the UUID in the group could not be found
266             * @throws SystemException if a system exception occurred
267             */
268            public DLFileShortcut getDLFileShortcutByUuidAndGroupId(String uuid,
269                    long groupId) throws PortalException, SystemException {
270                    return dlFileShortcutPersistence.findByUUID_G(uuid, groupId);
271            }
272    
273            /**
274             * Returns a range of all the document library file shortcuts.
275             *
276             * <p>
277             * 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.
278             * </p>
279             *
280             * @param start the lower bound of the range of document library file shortcuts
281             * @param end the upper bound of the range of document library file shortcuts (not inclusive)
282             * @return the range of document library file shortcuts
283             * @throws SystemException if a system exception occurred
284             */
285            public List<DLFileShortcut> getDLFileShortcuts(int start, int end)
286                    throws SystemException {
287                    return dlFileShortcutPersistence.findAll(start, end);
288            }
289    
290            /**
291             * Returns the number of document library file shortcuts.
292             *
293             * @return the number of document library file shortcuts
294             * @throws SystemException if a system exception occurred
295             */
296            public int getDLFileShortcutsCount() throws SystemException {
297                    return dlFileShortcutPersistence.countAll();
298            }
299    
300            /**
301             * Updates the document library file shortcut in the database or adds it if it does not yet exist. Also notifies the appropriate model listeners.
302             *
303             * @param dlFileShortcut the document library file shortcut
304             * @return the document library file shortcut that was updated
305             * @throws SystemException if a system exception occurred
306             */
307            @Indexable(type = IndexableType.REINDEX)
308            public DLFileShortcut updateDLFileShortcut(DLFileShortcut dlFileShortcut)
309                    throws SystemException {
310                    return updateDLFileShortcut(dlFileShortcut, true);
311            }
312    
313            /**
314             * Updates the document library file shortcut in the database or adds it if it does not yet exist. Also notifies the appropriate model listeners.
315             *
316             * @param dlFileShortcut the document library file shortcut
317             * @param merge whether to merge the document library file shortcut with the current session. See {@link com.liferay.portal.service.persistence.BatchSession#update(com.liferay.portal.kernel.dao.orm.Session, com.liferay.portal.model.BaseModel, boolean)} for an explanation.
318             * @return the document library file shortcut that was updated
319             * @throws SystemException if a system exception occurred
320             */
321            @Indexable(type = IndexableType.REINDEX)
322            public DLFileShortcut updateDLFileShortcut(DLFileShortcut dlFileShortcut,
323                    boolean merge) throws SystemException {
324                    dlFileShortcut.setNew(false);
325    
326                    return dlFileShortcutPersistence.update(dlFileShortcut, merge);
327            }
328    
329            /**
330             * Returns the d l app local service.
331             *
332             * @return the d l app local service
333             */
334            public DLAppLocalService getDLAppLocalService() {
335                    return dlAppLocalService;
336            }
337    
338            /**
339             * Sets the d l app local service.
340             *
341             * @param dlAppLocalService the d l app local service
342             */
343            public void setDLAppLocalService(DLAppLocalService dlAppLocalService) {
344                    this.dlAppLocalService = dlAppLocalService;
345            }
346    
347            /**
348             * Returns the d l app remote service.
349             *
350             * @return the d l app remote service
351             */
352            public DLAppService getDLAppService() {
353                    return dlAppService;
354            }
355    
356            /**
357             * Sets the d l app remote service.
358             *
359             * @param dlAppService the d l app remote service
360             */
361            public void setDLAppService(DLAppService dlAppService) {
362                    this.dlAppService = dlAppService;
363            }
364    
365            /**
366             * Returns the d l app helper local service.
367             *
368             * @return the d l app helper local service
369             */
370            public DLAppHelperLocalService getDLAppHelperLocalService() {
371                    return dlAppHelperLocalService;
372            }
373    
374            /**
375             * Sets the d l app helper local service.
376             *
377             * @param dlAppHelperLocalService the d l app helper local service
378             */
379            public void setDLAppHelperLocalService(
380                    DLAppHelperLocalService dlAppHelperLocalService) {
381                    this.dlAppHelperLocalService = dlAppHelperLocalService;
382            }
383    
384            /**
385             * Returns the document library content local service.
386             *
387             * @return the document library content local service
388             */
389            public DLContentLocalService getDLContentLocalService() {
390                    return dlContentLocalService;
391            }
392    
393            /**
394             * Sets the document library content local service.
395             *
396             * @param dlContentLocalService the document library content local service
397             */
398            public void setDLContentLocalService(
399                    DLContentLocalService dlContentLocalService) {
400                    this.dlContentLocalService = dlContentLocalService;
401            }
402    
403            /**
404             * Returns the document library content persistence.
405             *
406             * @return the document library content persistence
407             */
408            public DLContentPersistence getDLContentPersistence() {
409                    return dlContentPersistence;
410            }
411    
412            /**
413             * Sets the document library content persistence.
414             *
415             * @param dlContentPersistence the document library content persistence
416             */
417            public void setDLContentPersistence(
418                    DLContentPersistence dlContentPersistence) {
419                    this.dlContentPersistence = dlContentPersistence;
420            }
421    
422            /**
423             * Returns the document library file entry local service.
424             *
425             * @return the document library file entry local service
426             */
427            public DLFileEntryLocalService getDLFileEntryLocalService() {
428                    return dlFileEntryLocalService;
429            }
430    
431            /**
432             * Sets the document library file entry local service.
433             *
434             * @param dlFileEntryLocalService the document library file entry local service
435             */
436            public void setDLFileEntryLocalService(
437                    DLFileEntryLocalService dlFileEntryLocalService) {
438                    this.dlFileEntryLocalService = dlFileEntryLocalService;
439            }
440    
441            /**
442             * Returns the document library file entry remote service.
443             *
444             * @return the document library file entry remote service
445             */
446            public DLFileEntryService getDLFileEntryService() {
447                    return dlFileEntryService;
448            }
449    
450            /**
451             * Sets the document library file entry remote service.
452             *
453             * @param dlFileEntryService the document library file entry remote service
454             */
455            public void setDLFileEntryService(DLFileEntryService dlFileEntryService) {
456                    this.dlFileEntryService = dlFileEntryService;
457            }
458    
459            /**
460             * Returns the document library file entry persistence.
461             *
462             * @return the document library file entry persistence
463             */
464            public DLFileEntryPersistence getDLFileEntryPersistence() {
465                    return dlFileEntryPersistence;
466            }
467    
468            /**
469             * Sets the document library file entry persistence.
470             *
471             * @param dlFileEntryPersistence the document library file entry persistence
472             */
473            public void setDLFileEntryPersistence(
474                    DLFileEntryPersistence dlFileEntryPersistence) {
475                    this.dlFileEntryPersistence = dlFileEntryPersistence;
476            }
477    
478            /**
479             * Returns the document library file entry finder.
480             *
481             * @return the document library file entry finder
482             */
483            public DLFileEntryFinder getDLFileEntryFinder() {
484                    return dlFileEntryFinder;
485            }
486    
487            /**
488             * Sets the document library file entry finder.
489             *
490             * @param dlFileEntryFinder the document library file entry finder
491             */
492            public void setDLFileEntryFinder(DLFileEntryFinder dlFileEntryFinder) {
493                    this.dlFileEntryFinder = dlFileEntryFinder;
494            }
495    
496            /**
497             * Returns the document library file entry metadata local service.
498             *
499             * @return the document library file entry metadata local service
500             */
501            public DLFileEntryMetadataLocalService getDLFileEntryMetadataLocalService() {
502                    return dlFileEntryMetadataLocalService;
503            }
504    
505            /**
506             * Sets the document library file entry metadata local service.
507             *
508             * @param dlFileEntryMetadataLocalService the document library file entry metadata local service
509             */
510            public void setDLFileEntryMetadataLocalService(
511                    DLFileEntryMetadataLocalService dlFileEntryMetadataLocalService) {
512                    this.dlFileEntryMetadataLocalService = dlFileEntryMetadataLocalService;
513            }
514    
515            /**
516             * Returns the document library file entry metadata persistence.
517             *
518             * @return the document library file entry metadata persistence
519             */
520            public DLFileEntryMetadataPersistence getDLFileEntryMetadataPersistence() {
521                    return dlFileEntryMetadataPersistence;
522            }
523    
524            /**
525             * Sets the document library file entry metadata persistence.
526             *
527             * @param dlFileEntryMetadataPersistence the document library file entry metadata persistence
528             */
529            public void setDLFileEntryMetadataPersistence(
530                    DLFileEntryMetadataPersistence dlFileEntryMetadataPersistence) {
531                    this.dlFileEntryMetadataPersistence = dlFileEntryMetadataPersistence;
532            }
533    
534            /**
535             * Returns the document library file entry type local service.
536             *
537             * @return the document library file entry type local service
538             */
539            public DLFileEntryTypeLocalService getDLFileEntryTypeLocalService() {
540                    return dlFileEntryTypeLocalService;
541            }
542    
543            /**
544             * Sets the document library file entry type local service.
545             *
546             * @param dlFileEntryTypeLocalService the document library file entry type local service
547             */
548            public void setDLFileEntryTypeLocalService(
549                    DLFileEntryTypeLocalService dlFileEntryTypeLocalService) {
550                    this.dlFileEntryTypeLocalService = dlFileEntryTypeLocalService;
551            }
552    
553            /**
554             * Returns the document library file entry type remote service.
555             *
556             * @return the document library file entry type remote service
557             */
558            public DLFileEntryTypeService getDLFileEntryTypeService() {
559                    return dlFileEntryTypeService;
560            }
561    
562            /**
563             * Sets the document library file entry type remote service.
564             *
565             * @param dlFileEntryTypeService the document library file entry type remote service
566             */
567            public void setDLFileEntryTypeService(
568                    DLFileEntryTypeService dlFileEntryTypeService) {
569                    this.dlFileEntryTypeService = dlFileEntryTypeService;
570            }
571    
572            /**
573             * Returns the document library file entry type persistence.
574             *
575             * @return the document library file entry type persistence
576             */
577            public DLFileEntryTypePersistence getDLFileEntryTypePersistence() {
578                    return dlFileEntryTypePersistence;
579            }
580    
581            /**
582             * Sets the document library file entry type persistence.
583             *
584             * @param dlFileEntryTypePersistence the document library file entry type persistence
585             */
586            public void setDLFileEntryTypePersistence(
587                    DLFileEntryTypePersistence dlFileEntryTypePersistence) {
588                    this.dlFileEntryTypePersistence = dlFileEntryTypePersistence;
589            }
590    
591            /**
592             * Returns the document library file entry type finder.
593             *
594             * @return the document library file entry type finder
595             */
596            public DLFileEntryTypeFinder getDLFileEntryTypeFinder() {
597                    return dlFileEntryTypeFinder;
598            }
599    
600            /**
601             * Sets the document library file entry type finder.
602             *
603             * @param dlFileEntryTypeFinder the document library file entry type finder
604             */
605            public void setDLFileEntryTypeFinder(
606                    DLFileEntryTypeFinder dlFileEntryTypeFinder) {
607                    this.dlFileEntryTypeFinder = dlFileEntryTypeFinder;
608            }
609    
610            /**
611             * Returns the document library file rank local service.
612             *
613             * @return the document library file rank local service
614             */
615            public DLFileRankLocalService getDLFileRankLocalService() {
616                    return dlFileRankLocalService;
617            }
618    
619            /**
620             * Sets the document library file rank local service.
621             *
622             * @param dlFileRankLocalService the document library file rank local service
623             */
624            public void setDLFileRankLocalService(
625                    DLFileRankLocalService dlFileRankLocalService) {
626                    this.dlFileRankLocalService = dlFileRankLocalService;
627            }
628    
629            /**
630             * Returns the document library file rank persistence.
631             *
632             * @return the document library file rank persistence
633             */
634            public DLFileRankPersistence getDLFileRankPersistence() {
635                    return dlFileRankPersistence;
636            }
637    
638            /**
639             * Sets the document library file rank persistence.
640             *
641             * @param dlFileRankPersistence the document library file rank persistence
642             */
643            public void setDLFileRankPersistence(
644                    DLFileRankPersistence dlFileRankPersistence) {
645                    this.dlFileRankPersistence = dlFileRankPersistence;
646            }
647    
648            /**
649             * Returns the document library file rank finder.
650             *
651             * @return the document library file rank finder
652             */
653            public DLFileRankFinder getDLFileRankFinder() {
654                    return dlFileRankFinder;
655            }
656    
657            /**
658             * Sets the document library file rank finder.
659             *
660             * @param dlFileRankFinder the document library file rank finder
661             */
662            public void setDLFileRankFinder(DLFileRankFinder dlFileRankFinder) {
663                    this.dlFileRankFinder = dlFileRankFinder;
664            }
665    
666            /**
667             * Returns the document library file shortcut local service.
668             *
669             * @return the document library file shortcut local service
670             */
671            public DLFileShortcutLocalService getDLFileShortcutLocalService() {
672                    return dlFileShortcutLocalService;
673            }
674    
675            /**
676             * Sets the document library file shortcut local service.
677             *
678             * @param dlFileShortcutLocalService the document library file shortcut local service
679             */
680            public void setDLFileShortcutLocalService(
681                    DLFileShortcutLocalService dlFileShortcutLocalService) {
682                    this.dlFileShortcutLocalService = dlFileShortcutLocalService;
683            }
684    
685            /**
686             * Returns the document library file shortcut remote service.
687             *
688             * @return the document library file shortcut remote service
689             */
690            public DLFileShortcutService getDLFileShortcutService() {
691                    return dlFileShortcutService;
692            }
693    
694            /**
695             * Sets the document library file shortcut remote service.
696             *
697             * @param dlFileShortcutService the document library file shortcut remote service
698             */
699            public void setDLFileShortcutService(
700                    DLFileShortcutService dlFileShortcutService) {
701                    this.dlFileShortcutService = dlFileShortcutService;
702            }
703    
704            /**
705             * Returns the document library file shortcut persistence.
706             *
707             * @return the document library file shortcut persistence
708             */
709            public DLFileShortcutPersistence getDLFileShortcutPersistence() {
710                    return dlFileShortcutPersistence;
711            }
712    
713            /**
714             * Sets the document library file shortcut persistence.
715             *
716             * @param dlFileShortcutPersistence the document library file shortcut persistence
717             */
718            public void setDLFileShortcutPersistence(
719                    DLFileShortcutPersistence dlFileShortcutPersistence) {
720                    this.dlFileShortcutPersistence = dlFileShortcutPersistence;
721            }
722    
723            /**
724             * Returns the document library file version local service.
725             *
726             * @return the document library file version local service
727             */
728            public DLFileVersionLocalService getDLFileVersionLocalService() {
729                    return dlFileVersionLocalService;
730            }
731    
732            /**
733             * Sets the document library file version local service.
734             *
735             * @param dlFileVersionLocalService the document library file version local service
736             */
737            public void setDLFileVersionLocalService(
738                    DLFileVersionLocalService dlFileVersionLocalService) {
739                    this.dlFileVersionLocalService = dlFileVersionLocalService;
740            }
741    
742            /**
743             * Returns the document library file version remote service.
744             *
745             * @return the document library file version remote service
746             */
747            public DLFileVersionService getDLFileVersionService() {
748                    return dlFileVersionService;
749            }
750    
751            /**
752             * Sets the document library file version remote service.
753             *
754             * @param dlFileVersionService the document library file version remote service
755             */
756            public void setDLFileVersionService(
757                    DLFileVersionService dlFileVersionService) {
758                    this.dlFileVersionService = dlFileVersionService;
759            }
760    
761            /**
762             * Returns the document library file version persistence.
763             *
764             * @return the document library file version persistence
765             */
766            public DLFileVersionPersistence getDLFileVersionPersistence() {
767                    return dlFileVersionPersistence;
768            }
769    
770            /**
771             * Sets the document library file version persistence.
772             *
773             * @param dlFileVersionPersistence the document library file version persistence
774             */
775            public void setDLFileVersionPersistence(
776                    DLFileVersionPersistence dlFileVersionPersistence) {
777                    this.dlFileVersionPersistence = dlFileVersionPersistence;
778            }
779    
780            /**
781             * Returns the document library folder local service.
782             *
783             * @return the document library folder local service
784             */
785            public DLFolderLocalService getDLFolderLocalService() {
786                    return dlFolderLocalService;
787            }
788    
789            /**
790             * Sets the document library folder local service.
791             *
792             * @param dlFolderLocalService the document library folder local service
793             */
794            public void setDLFolderLocalService(
795                    DLFolderLocalService dlFolderLocalService) {
796                    this.dlFolderLocalService = dlFolderLocalService;
797            }
798    
799            /**
800             * Returns the document library folder remote service.
801             *
802             * @return the document library folder remote service
803             */
804            public DLFolderService getDLFolderService() {
805                    return dlFolderService;
806            }
807    
808            /**
809             * Sets the document library folder remote service.
810             *
811             * @param dlFolderService the document library folder remote service
812             */
813            public void setDLFolderService(DLFolderService dlFolderService) {
814                    this.dlFolderService = dlFolderService;
815            }
816    
817            /**
818             * Returns the document library folder persistence.
819             *
820             * @return the document library folder persistence
821             */
822            public DLFolderPersistence getDLFolderPersistence() {
823                    return dlFolderPersistence;
824            }
825    
826            /**
827             * Sets the document library folder persistence.
828             *
829             * @param dlFolderPersistence the document library folder persistence
830             */
831            public void setDLFolderPersistence(DLFolderPersistence dlFolderPersistence) {
832                    this.dlFolderPersistence = dlFolderPersistence;
833            }
834    
835            /**
836             * Returns the document library folder finder.
837             *
838             * @return the document library folder finder
839             */
840            public DLFolderFinder getDLFolderFinder() {
841                    return dlFolderFinder;
842            }
843    
844            /**
845             * Sets the document library folder finder.
846             *
847             * @param dlFolderFinder the document library folder finder
848             */
849            public void setDLFolderFinder(DLFolderFinder dlFolderFinder) {
850                    this.dlFolderFinder = dlFolderFinder;
851            }
852    
853            /**
854             * Returns the d l sync local service.
855             *
856             * @return the d l sync local service
857             */
858            public DLSyncLocalService getDLSyncLocalService() {
859                    return dlSyncLocalService;
860            }
861    
862            /**
863             * Sets the d l sync local service.
864             *
865             * @param dlSyncLocalService the d l sync local service
866             */
867            public void setDLSyncLocalService(DLSyncLocalService dlSyncLocalService) {
868                    this.dlSyncLocalService = dlSyncLocalService;
869            }
870    
871            /**
872             * Returns the d l sync remote service.
873             *
874             * @return the d l sync remote service
875             */
876            public DLSyncService getDLSyncService() {
877                    return dlSyncService;
878            }
879    
880            /**
881             * Sets the d l sync remote service.
882             *
883             * @param dlSyncService the d l sync remote service
884             */
885            public void setDLSyncService(DLSyncService dlSyncService) {
886                    this.dlSyncService = dlSyncService;
887            }
888    
889            /**
890             * Returns the d l sync persistence.
891             *
892             * @return the d l sync persistence
893             */
894            public DLSyncPersistence getDLSyncPersistence() {
895                    return dlSyncPersistence;
896            }
897    
898            /**
899             * Sets the d l sync persistence.
900             *
901             * @param dlSyncPersistence the d l sync persistence
902             */
903            public void setDLSyncPersistence(DLSyncPersistence dlSyncPersistence) {
904                    this.dlSyncPersistence = dlSyncPersistence;
905            }
906    
907            /**
908             * Returns the d l sync finder.
909             *
910             * @return the d l sync finder
911             */
912            public DLSyncFinder getDLSyncFinder() {
913                    return dlSyncFinder;
914            }
915    
916            /**
917             * Sets the d l sync finder.
918             *
919             * @param dlSyncFinder the d l sync finder
920             */
921            public void setDLSyncFinder(DLSyncFinder dlSyncFinder) {
922                    this.dlSyncFinder = dlSyncFinder;
923            }
924    
925            /**
926             * Returns the counter local service.
927             *
928             * @return the counter local service
929             */
930            public CounterLocalService getCounterLocalService() {
931                    return counterLocalService;
932            }
933    
934            /**
935             * Sets the counter local service.
936             *
937             * @param counterLocalService the counter local service
938             */
939            public void setCounterLocalService(CounterLocalService counterLocalService) {
940                    this.counterLocalService = counterLocalService;
941            }
942    
943            /**
944             * Returns the resource local service.
945             *
946             * @return the resource local service
947             */
948            public ResourceLocalService getResourceLocalService() {
949                    return resourceLocalService;
950            }
951    
952            /**
953             * Sets the resource local service.
954             *
955             * @param resourceLocalService the resource local service
956             */
957            public void setResourceLocalService(
958                    ResourceLocalService resourceLocalService) {
959                    this.resourceLocalService = resourceLocalService;
960            }
961    
962            /**
963             * Returns the resource remote service.
964             *
965             * @return the resource remote service
966             */
967            public ResourceService getResourceService() {
968                    return resourceService;
969            }
970    
971            /**
972             * Sets the resource remote service.
973             *
974             * @param resourceService the resource remote service
975             */
976            public void setResourceService(ResourceService resourceService) {
977                    this.resourceService = resourceService;
978            }
979    
980            /**
981             * Returns the resource persistence.
982             *
983             * @return the resource persistence
984             */
985            public ResourcePersistence getResourcePersistence() {
986                    return resourcePersistence;
987            }
988    
989            /**
990             * Sets the resource persistence.
991             *
992             * @param resourcePersistence the resource persistence
993             */
994            public void setResourcePersistence(ResourcePersistence resourcePersistence) {
995                    this.resourcePersistence = resourcePersistence;
996            }
997    
998            /**
999             * Returns the resource finder.
1000             *
1001             * @return the resource finder
1002             */
1003            public ResourceFinder getResourceFinder() {
1004                    return resourceFinder;
1005            }
1006    
1007            /**
1008             * Sets the resource finder.
1009             *
1010             * @param resourceFinder the resource finder
1011             */
1012            public void setResourceFinder(ResourceFinder resourceFinder) {
1013                    this.resourceFinder = resourceFinder;
1014            }
1015    
1016            /**
1017             * Returns the user local service.
1018             *
1019             * @return the user local service
1020             */
1021            public UserLocalService getUserLocalService() {
1022                    return userLocalService;
1023            }
1024    
1025            /**
1026             * Sets the user local service.
1027             *
1028             * @param userLocalService the user local service
1029             */
1030            public void setUserLocalService(UserLocalService userLocalService) {
1031                    this.userLocalService = userLocalService;
1032            }
1033    
1034            /**
1035             * Returns the user remote service.
1036             *
1037             * @return the user remote service
1038             */
1039            public UserService getUserService() {
1040                    return userService;
1041            }
1042    
1043            /**
1044             * Sets the user remote service.
1045             *
1046             * @param userService the user remote service
1047             */
1048            public void setUserService(UserService userService) {
1049                    this.userService = userService;
1050            }
1051    
1052            /**
1053             * Returns the user persistence.
1054             *
1055             * @return the user persistence
1056             */
1057            public UserPersistence getUserPersistence() {
1058                    return userPersistence;
1059            }
1060    
1061            /**
1062             * Sets the user persistence.
1063             *
1064             * @param userPersistence the user persistence
1065             */
1066            public void setUserPersistence(UserPersistence userPersistence) {
1067                    this.userPersistence = userPersistence;
1068            }
1069    
1070            /**
1071             * Returns the user finder.
1072             *
1073             * @return the user finder
1074             */
1075            public UserFinder getUserFinder() {
1076                    return userFinder;
1077            }
1078    
1079            /**
1080             * Sets the user finder.
1081             *
1082             * @param userFinder the user finder
1083             */
1084            public void setUserFinder(UserFinder userFinder) {
1085                    this.userFinder = userFinder;
1086            }
1087    
1088            /**
1089             * Returns the asset entry local service.
1090             *
1091             * @return the asset entry local service
1092             */
1093            public AssetEntryLocalService getAssetEntryLocalService() {
1094                    return assetEntryLocalService;
1095            }
1096    
1097            /**
1098             * Sets the asset entry local service.
1099             *
1100             * @param assetEntryLocalService the asset entry local service
1101             */
1102            public void setAssetEntryLocalService(
1103                    AssetEntryLocalService assetEntryLocalService) {
1104                    this.assetEntryLocalService = assetEntryLocalService;
1105            }
1106    
1107            /**
1108             * Returns the asset entry remote service.
1109             *
1110             * @return the asset entry remote service
1111             */
1112            public AssetEntryService getAssetEntryService() {
1113                    return assetEntryService;
1114            }
1115    
1116            /**
1117             * Sets the asset entry remote service.
1118             *
1119             * @param assetEntryService the asset entry remote service
1120             */
1121            public void setAssetEntryService(AssetEntryService assetEntryService) {
1122                    this.assetEntryService = assetEntryService;
1123            }
1124    
1125            /**
1126             * Returns the asset entry persistence.
1127             *
1128             * @return the asset entry persistence
1129             */
1130            public AssetEntryPersistence getAssetEntryPersistence() {
1131                    return assetEntryPersistence;
1132            }
1133    
1134            /**
1135             * Sets the asset entry persistence.
1136             *
1137             * @param assetEntryPersistence the asset entry persistence
1138             */
1139            public void setAssetEntryPersistence(
1140                    AssetEntryPersistence assetEntryPersistence) {
1141                    this.assetEntryPersistence = assetEntryPersistence;
1142            }
1143    
1144            /**
1145             * Returns the asset entry finder.
1146             *
1147             * @return the asset entry finder
1148             */
1149            public AssetEntryFinder getAssetEntryFinder() {
1150                    return assetEntryFinder;
1151            }
1152    
1153            /**
1154             * Sets the asset entry finder.
1155             *
1156             * @param assetEntryFinder the asset entry finder
1157             */
1158            public void setAssetEntryFinder(AssetEntryFinder assetEntryFinder) {
1159                    this.assetEntryFinder = assetEntryFinder;
1160            }
1161    
1162            /**
1163             * Returns the asset tag local service.
1164             *
1165             * @return the asset tag local service
1166             */
1167            public AssetTagLocalService getAssetTagLocalService() {
1168                    return assetTagLocalService;
1169            }
1170    
1171            /**
1172             * Sets the asset tag local service.
1173             *
1174             * @param assetTagLocalService the asset tag local service
1175             */
1176            public void setAssetTagLocalService(
1177                    AssetTagLocalService assetTagLocalService) {
1178                    this.assetTagLocalService = assetTagLocalService;
1179            }
1180    
1181            /**
1182             * Returns the asset tag remote service.
1183             *
1184             * @return the asset tag remote service
1185             */
1186            public AssetTagService getAssetTagService() {
1187                    return assetTagService;
1188            }
1189    
1190            /**
1191             * Sets the asset tag remote service.
1192             *
1193             * @param assetTagService the asset tag remote service
1194             */
1195            public void setAssetTagService(AssetTagService assetTagService) {
1196                    this.assetTagService = assetTagService;
1197            }
1198    
1199            /**
1200             * Returns the asset tag persistence.
1201             *
1202             * @return the asset tag persistence
1203             */
1204            public AssetTagPersistence getAssetTagPersistence() {
1205                    return assetTagPersistence;
1206            }
1207    
1208            /**
1209             * Sets the asset tag persistence.
1210             *
1211             * @param assetTagPersistence the asset tag persistence
1212             */
1213            public void setAssetTagPersistence(AssetTagPersistence assetTagPersistence) {
1214                    this.assetTagPersistence = assetTagPersistence;
1215            }
1216    
1217            /**
1218             * Returns the asset tag finder.
1219             *
1220             * @return the asset tag finder
1221             */
1222            public AssetTagFinder getAssetTagFinder() {
1223                    return assetTagFinder;
1224            }
1225    
1226            /**
1227             * Sets the asset tag finder.
1228             *
1229             * @param assetTagFinder the asset tag finder
1230             */
1231            public void setAssetTagFinder(AssetTagFinder assetTagFinder) {
1232                    this.assetTagFinder = assetTagFinder;
1233            }
1234    
1235            public void afterPropertiesSet() {
1236                    persistedModelLocalServiceRegistry.register("com.liferay.portlet.documentlibrary.model.DLFileShortcut",
1237                            dlFileShortcutLocalService);
1238            }
1239    
1240            public void destroy() {
1241                    persistedModelLocalServiceRegistry.unregister(
1242                            "com.liferay.portlet.documentlibrary.model.DLFileShortcut");
1243            }
1244    
1245            /**
1246             * Returns the Spring bean ID for this bean.
1247             *
1248             * @return the Spring bean ID for this bean
1249             */
1250            public String getBeanIdentifier() {
1251                    return _beanIdentifier;
1252            }
1253    
1254            /**
1255             * Sets the Spring bean ID for this bean.
1256             *
1257             * @param beanIdentifier the Spring bean ID for this bean
1258             */
1259            public void setBeanIdentifier(String beanIdentifier) {
1260                    _beanIdentifier = beanIdentifier;
1261            }
1262    
1263            protected Class<?> getModelClass() {
1264                    return DLFileShortcut.class;
1265            }
1266    
1267            protected String getModelClassName() {
1268                    return DLFileShortcut.class.getName();
1269            }
1270    
1271            /**
1272             * Performs an SQL query.
1273             *
1274             * @param sql the sql query
1275             */
1276            protected void runSQL(String sql) throws SystemException {
1277                    try {
1278                            DataSource dataSource = dlFileShortcutPersistence.getDataSource();
1279    
1280                            SqlUpdate sqlUpdate = SqlUpdateFactoryUtil.getSqlUpdate(dataSource,
1281                                            sql, new int[0]);
1282    
1283                            sqlUpdate.update();
1284                    }
1285                    catch (Exception e) {
1286                            throw new SystemException(e);
1287                    }
1288            }
1289    
1290            @BeanReference(type = DLAppLocalService.class)
1291            protected DLAppLocalService dlAppLocalService;
1292            @BeanReference(type = DLAppService.class)
1293            protected DLAppService dlAppService;
1294            @BeanReference(type = DLAppHelperLocalService.class)
1295            protected DLAppHelperLocalService dlAppHelperLocalService;
1296            @BeanReference(type = DLContentLocalService.class)
1297            protected DLContentLocalService dlContentLocalService;
1298            @BeanReference(type = DLContentPersistence.class)
1299            protected DLContentPersistence dlContentPersistence;
1300            @BeanReference(type = DLFileEntryLocalService.class)
1301            protected DLFileEntryLocalService dlFileEntryLocalService;
1302            @BeanReference(type = DLFileEntryService.class)
1303            protected DLFileEntryService dlFileEntryService;
1304            @BeanReference(type = DLFileEntryPersistence.class)
1305            protected DLFileEntryPersistence dlFileEntryPersistence;
1306            @BeanReference(type = DLFileEntryFinder.class)
1307            protected DLFileEntryFinder dlFileEntryFinder;
1308            @BeanReference(type = DLFileEntryMetadataLocalService.class)
1309            protected DLFileEntryMetadataLocalService dlFileEntryMetadataLocalService;
1310            @BeanReference(type = DLFileEntryMetadataPersistence.class)
1311            protected DLFileEntryMetadataPersistence dlFileEntryMetadataPersistence;
1312            @BeanReference(type = DLFileEntryTypeLocalService.class)
1313            protected DLFileEntryTypeLocalService dlFileEntryTypeLocalService;
1314            @BeanReference(type = DLFileEntryTypeService.class)
1315            protected DLFileEntryTypeService dlFileEntryTypeService;
1316            @BeanReference(type = DLFileEntryTypePersistence.class)
1317            protected DLFileEntryTypePersistence dlFileEntryTypePersistence;
1318            @BeanReference(type = DLFileEntryTypeFinder.class)
1319            protected DLFileEntryTypeFinder dlFileEntryTypeFinder;
1320            @BeanReference(type = DLFileRankLocalService.class)
1321            protected DLFileRankLocalService dlFileRankLocalService;
1322            @BeanReference(type = DLFileRankPersistence.class)
1323            protected DLFileRankPersistence dlFileRankPersistence;
1324            @BeanReference(type = DLFileRankFinder.class)
1325            protected DLFileRankFinder dlFileRankFinder;
1326            @BeanReference(type = DLFileShortcutLocalService.class)
1327            protected DLFileShortcutLocalService dlFileShortcutLocalService;
1328            @BeanReference(type = DLFileShortcutService.class)
1329            protected DLFileShortcutService dlFileShortcutService;
1330            @BeanReference(type = DLFileShortcutPersistence.class)
1331            protected DLFileShortcutPersistence dlFileShortcutPersistence;
1332            @BeanReference(type = DLFileVersionLocalService.class)
1333            protected DLFileVersionLocalService dlFileVersionLocalService;
1334            @BeanReference(type = DLFileVersionService.class)
1335            protected DLFileVersionService dlFileVersionService;
1336            @BeanReference(type = DLFileVersionPersistence.class)
1337            protected DLFileVersionPersistence dlFileVersionPersistence;
1338            @BeanReference(type = DLFolderLocalService.class)
1339            protected DLFolderLocalService dlFolderLocalService;
1340            @BeanReference(type = DLFolderService.class)
1341            protected DLFolderService dlFolderService;
1342            @BeanReference(type = DLFolderPersistence.class)
1343            protected DLFolderPersistence dlFolderPersistence;
1344            @BeanReference(type = DLFolderFinder.class)
1345            protected DLFolderFinder dlFolderFinder;
1346            @BeanReference(type = DLSyncLocalService.class)
1347            protected DLSyncLocalService dlSyncLocalService;
1348            @BeanReference(type = DLSyncService.class)
1349            protected DLSyncService dlSyncService;
1350            @BeanReference(type = DLSyncPersistence.class)
1351            protected DLSyncPersistence dlSyncPersistence;
1352            @BeanReference(type = DLSyncFinder.class)
1353            protected DLSyncFinder dlSyncFinder;
1354            @BeanReference(type = CounterLocalService.class)
1355            protected CounterLocalService counterLocalService;
1356            @BeanReference(type = ResourceLocalService.class)
1357            protected ResourceLocalService resourceLocalService;
1358            @BeanReference(type = ResourceService.class)
1359            protected ResourceService resourceService;
1360            @BeanReference(type = ResourcePersistence.class)
1361            protected ResourcePersistence resourcePersistence;
1362            @BeanReference(type = ResourceFinder.class)
1363            protected ResourceFinder resourceFinder;
1364            @BeanReference(type = UserLocalService.class)
1365            protected UserLocalService userLocalService;
1366            @BeanReference(type = UserService.class)
1367            protected UserService userService;
1368            @BeanReference(type = UserPersistence.class)
1369            protected UserPersistence userPersistence;
1370            @BeanReference(type = UserFinder.class)
1371            protected UserFinder userFinder;
1372            @BeanReference(type = AssetEntryLocalService.class)
1373            protected AssetEntryLocalService assetEntryLocalService;
1374            @BeanReference(type = AssetEntryService.class)
1375            protected AssetEntryService assetEntryService;
1376            @BeanReference(type = AssetEntryPersistence.class)
1377            protected AssetEntryPersistence assetEntryPersistence;
1378            @BeanReference(type = AssetEntryFinder.class)
1379            protected AssetEntryFinder assetEntryFinder;
1380            @BeanReference(type = AssetTagLocalService.class)
1381            protected AssetTagLocalService assetTagLocalService;
1382            @BeanReference(type = AssetTagService.class)
1383            protected AssetTagService assetTagService;
1384            @BeanReference(type = AssetTagPersistence.class)
1385            protected AssetTagPersistence assetTagPersistence;
1386            @BeanReference(type = AssetTagFinder.class)
1387            protected AssetTagFinder assetTagFinder;
1388            @BeanReference(type = PersistedModelLocalServiceRegistry.class)
1389            protected PersistedModelLocalServiceRegistry persistedModelLocalServiceRegistry;
1390            private String _beanIdentifier;
1391    }