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.service.base;
016    
017    import aQute.bnd.annotation.ProviderType;
018    
019    import com.liferay.portal.kernel.bean.BeanReference;
020    import com.liferay.portal.kernel.dao.db.DB;
021    import com.liferay.portal.kernel.dao.db.DBManagerUtil;
022    import com.liferay.portal.kernel.dao.jdbc.SqlUpdate;
023    import com.liferay.portal.kernel.dao.jdbc.SqlUpdateFactoryUtil;
024    import com.liferay.portal.kernel.dao.orm.ActionableDynamicQuery;
025    import com.liferay.portal.kernel.dao.orm.DefaultActionableDynamicQuery;
026    import com.liferay.portal.kernel.dao.orm.DynamicQuery;
027    import com.liferay.portal.kernel.dao.orm.DynamicQueryFactoryUtil;
028    import com.liferay.portal.kernel.dao.orm.ExportActionableDynamicQuery;
029    import com.liferay.portal.kernel.dao.orm.IndexableActionableDynamicQuery;
030    import com.liferay.portal.kernel.dao.orm.Projection;
031    import com.liferay.portal.kernel.dao.orm.Property;
032    import com.liferay.portal.kernel.dao.orm.PropertyFactoryUtil;
033    import com.liferay.portal.kernel.exception.PortalException;
034    import com.liferay.portal.kernel.exception.SystemException;
035    import com.liferay.portal.kernel.module.framework.service.IdentifiableOSGiService;
036    import com.liferay.portal.kernel.search.Indexable;
037    import com.liferay.portal.kernel.search.IndexableType;
038    import com.liferay.portal.kernel.util.OrderByComparator;
039    import com.liferay.portal.model.PersistedModel;
040    import com.liferay.portal.model.Website;
041    import com.liferay.portal.service.BaseLocalServiceImpl;
042    import com.liferay.portal.service.PersistedModelLocalServiceRegistry;
043    import com.liferay.portal.service.WebsiteLocalService;
044    import com.liferay.portal.service.persistence.ClassNamePersistence;
045    import com.liferay.portal.service.persistence.ListTypePersistence;
046    import com.liferay.portal.service.persistence.UserFinder;
047    import com.liferay.portal.service.persistence.UserPersistence;
048    import com.liferay.portal.service.persistence.WebsitePersistence;
049    import com.liferay.portal.util.PortalUtil;
050    
051    import com.liferay.portlet.exportimport.lar.ExportImportHelperUtil;
052    import com.liferay.portlet.exportimport.lar.ManifestSummary;
053    import com.liferay.portlet.exportimport.lar.PortletDataContext;
054    import com.liferay.portlet.exportimport.lar.StagedModelDataHandlerUtil;
055    import com.liferay.portlet.exportimport.lar.StagedModelType;
056    
057    import java.io.Serializable;
058    
059    import java.util.List;
060    
061    import javax.sql.DataSource;
062    
063    /**
064     * Provides the base implementation for the website local service.
065     *
066     * <p>
067     * 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.portal.service.impl.WebsiteLocalServiceImpl}.
068     * </p>
069     *
070     * @author Brian Wing Shun Chan
071     * @see com.liferay.portal.service.impl.WebsiteLocalServiceImpl
072     * @see com.liferay.portal.service.WebsiteLocalServiceUtil
073     * @generated
074     */
075    @ProviderType
076    public abstract class WebsiteLocalServiceBaseImpl extends BaseLocalServiceImpl
077            implements WebsiteLocalService, IdentifiableOSGiService {
078            /*
079             * NOTE FOR DEVELOPERS:
080             *
081             * Never modify or reference this class directly. Always use {@link com.liferay.portal.service.WebsiteLocalServiceUtil} to access the website local service.
082             */
083    
084            /**
085             * Adds the website to the database. Also notifies the appropriate model listeners.
086             *
087             * @param website the website
088             * @return the website that was added
089             */
090            @Indexable(type = IndexableType.REINDEX)
091            @Override
092            public Website addWebsite(Website website) {
093                    website.setNew(true);
094    
095                    return websitePersistence.update(website);
096            }
097    
098            /**
099             * Creates a new website with the primary key. Does not add the website to the database.
100             *
101             * @param websiteId the primary key for the new website
102             * @return the new website
103             */
104            @Override
105            public Website createWebsite(long websiteId) {
106                    return websitePersistence.create(websiteId);
107            }
108    
109            /**
110             * Deletes the website with the primary key from the database. Also notifies the appropriate model listeners.
111             *
112             * @param websiteId the primary key of the website
113             * @return the website that was removed
114             * @throws PortalException if a website with the primary key could not be found
115             */
116            @Indexable(type = IndexableType.DELETE)
117            @Override
118            public Website deleteWebsite(long websiteId) throws PortalException {
119                    return websitePersistence.remove(websiteId);
120            }
121    
122            /**
123             * Deletes the website from the database. Also notifies the appropriate model listeners.
124             *
125             * @param website the website
126             * @return the website that was removed
127             */
128            @Indexable(type = IndexableType.DELETE)
129            @Override
130            public Website deleteWebsite(Website website) {
131                    return websitePersistence.remove(website);
132            }
133    
134            @Override
135            public DynamicQuery dynamicQuery() {
136                    Class<?> clazz = getClass();
137    
138                    return DynamicQueryFactoryUtil.forClass(Website.class,
139                            clazz.getClassLoader());
140            }
141    
142            /**
143             * Performs a dynamic query on the database and returns the matching rows.
144             *
145             * @param dynamicQuery the dynamic query
146             * @return the matching rows
147             */
148            @Override
149            public <T> List<T> dynamicQuery(DynamicQuery dynamicQuery) {
150                    return websitePersistence.findWithDynamicQuery(dynamicQuery);
151            }
152    
153            /**
154             * Performs a dynamic query on the database and returns a range of the matching rows.
155             *
156             * <p>
157             * 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.WebsiteModelImpl}. 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.
158             * </p>
159             *
160             * @param dynamicQuery the dynamic query
161             * @param start the lower bound of the range of model instances
162             * @param end the upper bound of the range of model instances (not inclusive)
163             * @return the range of matching rows
164             */
165            @Override
166            public <T> List<T> dynamicQuery(DynamicQuery dynamicQuery, int start,
167                    int end) {
168                    return websitePersistence.findWithDynamicQuery(dynamicQuery, start, end);
169            }
170    
171            /**
172             * Performs a dynamic query on the database and returns an ordered range of the matching rows.
173             *
174             * <p>
175             * 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.WebsiteModelImpl}. 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.
176             * </p>
177             *
178             * @param dynamicQuery the dynamic query
179             * @param start the lower bound of the range of model instances
180             * @param end the upper bound of the range of model instances (not inclusive)
181             * @param orderByComparator the comparator to order the results by (optionally <code>null</code>)
182             * @return the ordered range of matching rows
183             */
184            @Override
185            public <T> List<T> dynamicQuery(DynamicQuery dynamicQuery, int start,
186                    int end, OrderByComparator<T> orderByComparator) {
187                    return websitePersistence.findWithDynamicQuery(dynamicQuery, start,
188                            end, orderByComparator);
189            }
190    
191            /**
192             * Returns the number of rows matching the dynamic query.
193             *
194             * @param dynamicQuery the dynamic query
195             * @return the number of rows matching the dynamic query
196             */
197            @Override
198            public long dynamicQueryCount(DynamicQuery dynamicQuery) {
199                    return websitePersistence.countWithDynamicQuery(dynamicQuery);
200            }
201    
202            /**
203             * Returns the number of rows matching the dynamic query.
204             *
205             * @param dynamicQuery the dynamic query
206             * @param projection the projection to apply to the query
207             * @return the number of rows matching the dynamic query
208             */
209            @Override
210            public long dynamicQueryCount(DynamicQuery dynamicQuery,
211                    Projection projection) {
212                    return websitePersistence.countWithDynamicQuery(dynamicQuery, projection);
213            }
214    
215            @Override
216            public Website fetchWebsite(long websiteId) {
217                    return websitePersistence.fetchByPrimaryKey(websiteId);
218            }
219    
220            /**
221             * Returns the website with the matching UUID and company.
222             *
223             * @param uuid the website's UUID
224             * @param companyId the primary key of the company
225             * @return the matching website, or <code>null</code> if a matching website could not be found
226             */
227            @Override
228            public Website fetchWebsiteByUuidAndCompanyId(String uuid, long companyId) {
229                    return websitePersistence.fetchByUuid_C_First(uuid, companyId, null);
230            }
231    
232            /**
233             * Returns the website with the primary key.
234             *
235             * @param websiteId the primary key of the website
236             * @return the website
237             * @throws PortalException if a website with the primary key could not be found
238             */
239            @Override
240            public Website getWebsite(long websiteId) throws PortalException {
241                    return websitePersistence.findByPrimaryKey(websiteId);
242            }
243    
244            @Override
245            public ActionableDynamicQuery getActionableDynamicQuery() {
246                    ActionableDynamicQuery actionableDynamicQuery = new DefaultActionableDynamicQuery();
247    
248                    actionableDynamicQuery.setBaseLocalService(com.liferay.portal.service.WebsiteLocalServiceUtil.getService());
249                    actionableDynamicQuery.setClassLoader(getClassLoader());
250                    actionableDynamicQuery.setModelClass(Website.class);
251    
252                    actionableDynamicQuery.setPrimaryKeyPropertyName("websiteId");
253    
254                    return actionableDynamicQuery;
255            }
256    
257            @Override
258            public IndexableActionableDynamicQuery getIndexableActionableDynamicQuery() {
259                    IndexableActionableDynamicQuery indexableActionableDynamicQuery = new IndexableActionableDynamicQuery();
260    
261                    indexableActionableDynamicQuery.setBaseLocalService(com.liferay.portal.service.WebsiteLocalServiceUtil.getService());
262                    indexableActionableDynamicQuery.setClassLoader(getClassLoader());
263                    indexableActionableDynamicQuery.setModelClass(Website.class);
264    
265                    indexableActionableDynamicQuery.setPrimaryKeyPropertyName("websiteId");
266    
267                    return indexableActionableDynamicQuery;
268            }
269    
270            protected void initActionableDynamicQuery(
271                    ActionableDynamicQuery actionableDynamicQuery) {
272                    actionableDynamicQuery.setBaseLocalService(com.liferay.portal.service.WebsiteLocalServiceUtil.getService());
273                    actionableDynamicQuery.setClassLoader(getClassLoader());
274                    actionableDynamicQuery.setModelClass(Website.class);
275    
276                    actionableDynamicQuery.setPrimaryKeyPropertyName("websiteId");
277            }
278    
279            @Override
280            public ExportActionableDynamicQuery getExportActionableDynamicQuery(
281                    final PortletDataContext portletDataContext) {
282                    final ExportActionableDynamicQuery exportActionableDynamicQuery = new ExportActionableDynamicQuery() {
283                                    @Override
284                                    public long performCount() throws PortalException {
285                                            ManifestSummary manifestSummary = portletDataContext.getManifestSummary();
286    
287                                            StagedModelType stagedModelType = getStagedModelType();
288    
289                                            long modelAdditionCount = super.performCount();
290    
291                                            manifestSummary.addModelAdditionCount(stagedModelType,
292                                                    modelAdditionCount);
293    
294                                            long modelDeletionCount = ExportImportHelperUtil.getModelDeletionCount(portletDataContext,
295                                                            stagedModelType);
296    
297                                            manifestSummary.addModelDeletionCount(stagedModelType,
298                                                    modelDeletionCount);
299    
300                                            return modelAdditionCount;
301                                    }
302                            };
303    
304                    initActionableDynamicQuery(exportActionableDynamicQuery);
305    
306                    exportActionableDynamicQuery.setAddCriteriaMethod(new ActionableDynamicQuery.AddCriteriaMethod() {
307                                    @Override
308                                    public void addCriteria(DynamicQuery dynamicQuery) {
309                                            portletDataContext.addDateRangeCriteria(dynamicQuery,
310                                                    "modifiedDate");
311    
312                                            StagedModelType stagedModelType = exportActionableDynamicQuery.getStagedModelType();
313    
314                                            long referrerClassNameId = stagedModelType.getReferrerClassNameId();
315    
316                                            Property classNameIdProperty = PropertyFactoryUtil.forName(
317                                                            "classNameId");
318    
319                                            if ((referrerClassNameId != StagedModelType.REFERRER_CLASS_NAME_ID_ALL) &&
320                                                            (referrerClassNameId != StagedModelType.REFERRER_CLASS_NAME_ID_ANY)) {
321                                                    dynamicQuery.add(classNameIdProperty.eq(
322                                                                    stagedModelType.getReferrerClassNameId()));
323                                            }
324                                            else if (referrerClassNameId == StagedModelType.REFERRER_CLASS_NAME_ID_ANY) {
325                                                    dynamicQuery.add(classNameIdProperty.isNotNull());
326                                            }
327                                    }
328                            });
329    
330                    exportActionableDynamicQuery.setCompanyId(portletDataContext.getCompanyId());
331    
332                    exportActionableDynamicQuery.setPerformActionMethod(new ActionableDynamicQuery.PerformActionMethod<Website>() {
333                                    @Override
334                                    public void performAction(Website website)
335                                            throws PortalException {
336                                            StagedModelDataHandlerUtil.exportStagedModel(portletDataContext,
337                                                    website);
338                                    }
339                            });
340                    exportActionableDynamicQuery.setStagedModelType(new StagedModelType(
341                                    PortalUtil.getClassNameId(Website.class.getName()),
342                                    StagedModelType.REFERRER_CLASS_NAME_ID_ALL));
343    
344                    return exportActionableDynamicQuery;
345            }
346    
347            /**
348             * @throws PortalException
349             */
350            @Override
351            public PersistedModel deletePersistedModel(PersistedModel persistedModel)
352                    throws PortalException {
353                    return websiteLocalService.deleteWebsite((Website)persistedModel);
354            }
355    
356            @Override
357            public PersistedModel getPersistedModel(Serializable primaryKeyObj)
358                    throws PortalException {
359                    return websitePersistence.findByPrimaryKey(primaryKeyObj);
360            }
361    
362            /**
363             * Returns the website with the matching UUID and company.
364             *
365             * @param uuid the website's UUID
366             * @param companyId the primary key of the company
367             * @return the matching website
368             * @throws PortalException if a matching website could not be found
369             */
370            @Override
371            public Website getWebsiteByUuidAndCompanyId(String uuid, long companyId)
372                    throws PortalException {
373                    return websitePersistence.findByUuid_C_First(uuid, companyId, null);
374            }
375    
376            /**
377             * Returns a range of all the websites.
378             *
379             * <p>
380             * 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.WebsiteModelImpl}. 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.
381             * </p>
382             *
383             * @param start the lower bound of the range of websites
384             * @param end the upper bound of the range of websites (not inclusive)
385             * @return the range of websites
386             */
387            @Override
388            public List<Website> getWebsites(int start, int end) {
389                    return websitePersistence.findAll(start, end);
390            }
391    
392            /**
393             * Returns the number of websites.
394             *
395             * @return the number of websites
396             */
397            @Override
398            public int getWebsitesCount() {
399                    return websitePersistence.countAll();
400            }
401    
402            /**
403             * Updates the website in the database or adds it if it does not yet exist. Also notifies the appropriate model listeners.
404             *
405             * @param website the website
406             * @return the website that was updated
407             */
408            @Indexable(type = IndexableType.REINDEX)
409            @Override
410            public Website updateWebsite(Website website) {
411                    return websitePersistence.update(website);
412            }
413    
414            /**
415             * Returns the website local service.
416             *
417             * @return the website local service
418             */
419            public WebsiteLocalService getWebsiteLocalService() {
420                    return websiteLocalService;
421            }
422    
423            /**
424             * Sets the website local service.
425             *
426             * @param websiteLocalService the website local service
427             */
428            public void setWebsiteLocalService(WebsiteLocalService websiteLocalService) {
429                    this.websiteLocalService = websiteLocalService;
430            }
431    
432            /**
433             * Returns the website persistence.
434             *
435             * @return the website persistence
436             */
437            public WebsitePersistence getWebsitePersistence() {
438                    return websitePersistence;
439            }
440    
441            /**
442             * Sets the website persistence.
443             *
444             * @param websitePersistence the website persistence
445             */
446            public void setWebsitePersistence(WebsitePersistence websitePersistence) {
447                    this.websitePersistence = websitePersistence;
448            }
449    
450            /**
451             * Returns the counter local service.
452             *
453             * @return the counter local service
454             */
455            public com.liferay.counter.service.CounterLocalService getCounterLocalService() {
456                    return counterLocalService;
457            }
458    
459            /**
460             * Sets the counter local service.
461             *
462             * @param counterLocalService the counter local service
463             */
464            public void setCounterLocalService(
465                    com.liferay.counter.service.CounterLocalService counterLocalService) {
466                    this.counterLocalService = counterLocalService;
467            }
468    
469            /**
470             * Returns the class name local service.
471             *
472             * @return the class name local service
473             */
474            public com.liferay.portal.service.ClassNameLocalService getClassNameLocalService() {
475                    return classNameLocalService;
476            }
477    
478            /**
479             * Sets the class name local service.
480             *
481             * @param classNameLocalService the class name local service
482             */
483            public void setClassNameLocalService(
484                    com.liferay.portal.service.ClassNameLocalService classNameLocalService) {
485                    this.classNameLocalService = classNameLocalService;
486            }
487    
488            /**
489             * Returns the class name persistence.
490             *
491             * @return the class name persistence
492             */
493            public ClassNamePersistence getClassNamePersistence() {
494                    return classNamePersistence;
495            }
496    
497            /**
498             * Sets the class name persistence.
499             *
500             * @param classNamePersistence the class name persistence
501             */
502            public void setClassNamePersistence(
503                    ClassNamePersistence classNamePersistence) {
504                    this.classNamePersistence = classNamePersistence;
505            }
506    
507            /**
508             * Returns the list type local service.
509             *
510             * @return the list type local service
511             */
512            public com.liferay.portal.service.ListTypeLocalService getListTypeLocalService() {
513                    return listTypeLocalService;
514            }
515    
516            /**
517             * Sets the list type local service.
518             *
519             * @param listTypeLocalService the list type local service
520             */
521            public void setListTypeLocalService(
522                    com.liferay.portal.service.ListTypeLocalService listTypeLocalService) {
523                    this.listTypeLocalService = listTypeLocalService;
524            }
525    
526            /**
527             * Returns the list type persistence.
528             *
529             * @return the list type persistence
530             */
531            public ListTypePersistence getListTypePersistence() {
532                    return listTypePersistence;
533            }
534    
535            /**
536             * Sets the list type persistence.
537             *
538             * @param listTypePersistence the list type persistence
539             */
540            public void setListTypePersistence(ListTypePersistence listTypePersistence) {
541                    this.listTypePersistence = listTypePersistence;
542            }
543    
544            /**
545             * Returns the user local service.
546             *
547             * @return the user local service
548             */
549            public com.liferay.portal.service.UserLocalService getUserLocalService() {
550                    return userLocalService;
551            }
552    
553            /**
554             * Sets the user local service.
555             *
556             * @param userLocalService the user local service
557             */
558            public void setUserLocalService(
559                    com.liferay.portal.service.UserLocalService userLocalService) {
560                    this.userLocalService = userLocalService;
561            }
562    
563            /**
564             * Returns the user persistence.
565             *
566             * @return the user persistence
567             */
568            public UserPersistence getUserPersistence() {
569                    return userPersistence;
570            }
571    
572            /**
573             * Sets the user persistence.
574             *
575             * @param userPersistence the user persistence
576             */
577            public void setUserPersistence(UserPersistence userPersistence) {
578                    this.userPersistence = userPersistence;
579            }
580    
581            /**
582             * Returns the user finder.
583             *
584             * @return the user finder
585             */
586            public UserFinder getUserFinder() {
587                    return userFinder;
588            }
589    
590            /**
591             * Sets the user finder.
592             *
593             * @param userFinder the user finder
594             */
595            public void setUserFinder(UserFinder userFinder) {
596                    this.userFinder = userFinder;
597            }
598    
599            public void afterPropertiesSet() {
600                    persistedModelLocalServiceRegistry.register("com.liferay.portal.model.Website",
601                            websiteLocalService);
602            }
603    
604            public void destroy() {
605                    persistedModelLocalServiceRegistry.unregister(
606                            "com.liferay.portal.model.Website");
607            }
608    
609            /**
610             * Returns the OSGi service identifier.
611             *
612             * @return the OSGi service identifier
613             */
614            @Override
615            public String getOSGiServiceIdentifier() {
616                    return WebsiteLocalService.class.getName();
617            }
618    
619            protected Class<?> getModelClass() {
620                    return Website.class;
621            }
622    
623            protected String getModelClassName() {
624                    return Website.class.getName();
625            }
626    
627            /**
628             * Performs a SQL query.
629             *
630             * @param sql the sql query
631             */
632            protected void runSQL(String sql) {
633                    try {
634                            DataSource dataSource = websitePersistence.getDataSource();
635    
636                            DB db = DBManagerUtil.getDB();
637    
638                            sql = db.buildSQL(sql);
639                            sql = PortalUtil.transformSQL(sql);
640    
641                            SqlUpdate sqlUpdate = SqlUpdateFactoryUtil.getSqlUpdate(dataSource,
642                                            sql, new int[0]);
643    
644                            sqlUpdate.update();
645                    }
646                    catch (Exception e) {
647                            throw new SystemException(e);
648                    }
649            }
650    
651            @BeanReference(type = com.liferay.portal.service.WebsiteLocalService.class)
652            protected WebsiteLocalService websiteLocalService;
653            @BeanReference(type = WebsitePersistence.class)
654            protected WebsitePersistence websitePersistence;
655            @BeanReference(type = com.liferay.counter.service.CounterLocalService.class)
656            protected com.liferay.counter.service.CounterLocalService counterLocalService;
657            @BeanReference(type = com.liferay.portal.service.ClassNameLocalService.class)
658            protected com.liferay.portal.service.ClassNameLocalService classNameLocalService;
659            @BeanReference(type = ClassNamePersistence.class)
660            protected ClassNamePersistence classNamePersistence;
661            @BeanReference(type = com.liferay.portal.service.ListTypeLocalService.class)
662            protected com.liferay.portal.service.ListTypeLocalService listTypeLocalService;
663            @BeanReference(type = ListTypePersistence.class)
664            protected ListTypePersistence listTypePersistence;
665            @BeanReference(type = com.liferay.portal.service.UserLocalService.class)
666            protected com.liferay.portal.service.UserLocalService userLocalService;
667            @BeanReference(type = UserPersistence.class)
668            protected UserPersistence userPersistence;
669            @BeanReference(type = UserFinder.class)
670            protected UserFinder userFinder;
671            @BeanReference(type = PersistedModelLocalServiceRegistry.class)
672            protected PersistedModelLocalServiceRegistry persistedModelLocalServiceRegistry;
673    }