001
014
015 package com.liferay.portal.repository.liferayrepository;
016
017 import com.liferay.portal.kernel.bean.BeanReference;
018 import com.liferay.portal.kernel.repository.LocalRepository;
019 import com.liferay.portal.kernel.repository.Repository;
020 import com.liferay.portal.kernel.repository.RepositoryFactory;
021 import com.liferay.portal.service.RepositoryLocalService;
022 import com.liferay.portal.service.RepositoryService;
023 import com.liferay.portal.service.ResourceLocalService;
024 import com.liferay.portlet.documentlibrary.service.DLAppHelperLocalService;
025 import com.liferay.portlet.documentlibrary.service.DLFileEntryLocalService;
026 import com.liferay.portlet.documentlibrary.service.DLFileEntryService;
027 import com.liferay.portlet.documentlibrary.service.DLFileEntryTypeLocalService;
028 import com.liferay.portlet.documentlibrary.service.DLFileVersionLocalService;
029 import com.liferay.portlet.documentlibrary.service.DLFileVersionService;
030 import com.liferay.portlet.documentlibrary.service.DLFolderLocalService;
031 import com.liferay.portlet.documentlibrary.service.DLFolderService;
032
033
036 public class LiferayRepositoryFactory implements RepositoryFactory {
037
038 @Override
039 public LocalRepository createLocalRepository(long repositoryId) {
040 long[] repositoryLocation = getRepositoryLocation(repositoryId);
041
042 return createLocalRepositoryInstance(repositoryLocation);
043 }
044
045 @Override
046 public Repository createRepository(long repositoryId) {
047 long[] repositoryLocation = getRepositoryLocation(repositoryId);
048
049 return createRepositoryInstance(repositoryLocation);
050 }
051
052 protected LocalRepository createLocalRepositoryInstance(
053 long[] repositoryLocation) {
054
055 long groupId = repositoryLocation[0];
056 long repositoryId = repositoryLocation[1];
057 long dlFolderId = repositoryLocation[2];
058
059 return new LiferayLocalRepository(
060 _repositoryLocalService, _repositoryService,
061 _dlAppHelperLocalService, _dlFileEntryLocalService,
062 _dlFileEntryService, _dlFileEntryTypeLocalService,
063 _dlFileVersionLocalService, _dlFileVersionService,
064 _dlFolderLocalService, _dlFolderService, _resourceLocalService,
065 groupId, repositoryId, dlFolderId);
066 }
067
068 protected Repository createRepositoryInstance(long[] repositoryLocation) {
069 long groupId = repositoryLocation[0];
070 long repositoryId = repositoryLocation[1];
071 long dlFolderId = repositoryLocation[2];
072
073 return new LiferayRepository(
074 _repositoryLocalService, _repositoryService,
075 _dlAppHelperLocalService, _dlFileEntryLocalService,
076 _dlFileEntryService, _dlFileEntryTypeLocalService,
077 _dlFileVersionLocalService, _dlFileVersionService,
078 _dlFolderLocalService, _dlFolderService, _resourceLocalService,
079 groupId, repositoryId, dlFolderId);
080 }
081
082 protected long[] getRepositoryLocation(long repositoryId) {
083 long dlFolderId = 0;
084 long groupId = 0;
085
086 com.liferay.portal.model.Repository repository =
087 _repositoryLocalService.fetchRepository(repositoryId);
088
089 if (repository == null) {
090 groupId = repositoryId;
091 }
092 else {
093 groupId = repository.getGroupId();
094 dlFolderId = repository.getDlFolderId();
095 }
096
097 return new long[] {groupId, repositoryId, dlFolderId};
098 }
099
100 @BeanReference(type = DLAppHelperLocalService.class)
101 private DLAppHelperLocalService _dlAppHelperLocalService;
102
103 @BeanReference(type = DLFileEntryLocalService.class)
104 private DLFileEntryLocalService _dlFileEntryLocalService;
105
106 @BeanReference(type = DLFileEntryService.class)
107 private DLFileEntryService _dlFileEntryService;
108
109 @BeanReference(type = DLFileEntryTypeLocalService.class)
110 private DLFileEntryTypeLocalService _dlFileEntryTypeLocalService;
111
112 @BeanReference(type = DLFileVersionLocalService.class)
113 private DLFileVersionLocalService _dlFileVersionLocalService;
114
115 @BeanReference(type = DLFileVersionService.class)
116 private DLFileVersionService _dlFileVersionService;
117
118 @BeanReference(type = DLFolderLocalService.class)
119 private DLFolderLocalService _dlFolderLocalService;
120
121 @BeanReference(type = DLFolderService.class)
122 private DLFolderService _dlFolderService;
123
124 @BeanReference(type = RepositoryLocalService.class)
125 private RepositoryLocalService _repositoryLocalService;
126
127 @BeanReference(type = RepositoryService.class)
128 private RepositoryService _repositoryService;
129
130 @BeanReference(type = ResourceLocalService.class)
131 private ResourceLocalService _resourceLocalService;
132
133 }