001
014
015 package com.liferay.portal.repository.liferayrepository;
016
017 import com.liferay.document.library.kernel.model.DLFileEntryType;
018 import com.liferay.document.library.kernel.model.DLFolderConstants;
019 import com.liferay.document.library.kernel.service.DLAppHelperLocalService;
020 import com.liferay.document.library.kernel.service.DLFileEntryLocalService;
021 import com.liferay.document.library.kernel.service.DLFileEntryService;
022 import com.liferay.document.library.kernel.service.DLFileEntryTypeLocalService;
023 import com.liferay.document.library.kernel.service.DLFileEntryTypeLocalServiceUtil;
024 import com.liferay.document.library.kernel.service.DLFileShortcutLocalService;
025 import com.liferay.document.library.kernel.service.DLFileShortcutService;
026 import com.liferay.document.library.kernel.service.DLFileVersionLocalService;
027 import com.liferay.document.library.kernel.service.DLFileVersionService;
028 import com.liferay.document.library.kernel.service.DLFolderLocalService;
029 import com.liferay.document.library.kernel.service.DLFolderService;
030 import com.liferay.dynamic.data.mapping.kernel.DDMFormValues;
031 import com.liferay.dynamic.data.mapping.kernel.DDMStructure;
032 import com.liferay.dynamic.data.mapping.kernel.StorageEngineManagerUtil;
033 import com.liferay.portal.kernel.exception.PortalException;
034 import com.liferay.portal.kernel.repository.capabilities.Capability;
035 import com.liferay.portal.kernel.repository.capabilities.CapabilityProvider;
036 import com.liferay.portal.kernel.service.RepositoryLocalService;
037 import com.liferay.portal.kernel.service.RepositoryService;
038 import com.liferay.portal.kernel.service.ResourceLocalService;
039 import com.liferay.portal.kernel.service.ServiceContext;
040 import com.liferay.portal.kernel.util.ParamUtil;
041 import com.liferay.portal.kernel.util.SortedArrayList;
042 import com.liferay.portal.kernel.util.StringUtil;
043
044 import java.util.ArrayList;
045 import java.util.HashMap;
046 import java.util.List;
047
048
051 public abstract class LiferayRepositoryBase implements CapabilityProvider {
052
053 public LiferayRepositoryBase(
054 RepositoryLocalService repositoryLocalService,
055 RepositoryService repositoryService,
056 DLAppHelperLocalService dlAppHelperLocalService,
057 DLFileEntryLocalService dlFileEntryLocalService,
058 DLFileEntryService dlFileEntryService,
059 DLFileEntryTypeLocalService dlFileEntryTypeLocalService,
060 DLFileShortcutLocalService dlFileShortcutLocalService,
061 DLFileShortcutService dlFileShortcutService,
062 DLFileVersionLocalService dlFileVersionLocalService,
063 DLFileVersionService dlFileVersionService,
064 DLFolderLocalService dlFolderLocalService,
065 DLFolderService dlFolderService,
066 ResourceLocalService resourceLocalService, long groupId,
067 long repositoryId, long dlFolderId) {
068
069 this.repositoryLocalService = repositoryLocalService;
070 this.repositoryService = repositoryService;
071 this.dlAppHelperLocalService = dlAppHelperLocalService;
072 this.dlFileEntryLocalService = dlFileEntryLocalService;
073 this.dlFileEntryService = dlFileEntryService;
074 this.dlFileEntryTypeLocalService = dlFileEntryTypeLocalService;
075 this.dlFileShortcutLocalService = dlFileShortcutLocalService;
076 this.dlFileShortcutService = dlFileShortcutService;
077 this.dlFileVersionLocalService = dlFileVersionLocalService;
078 this.dlFileVersionService = dlFileVersionService;
079 this.dlFolderLocalService = dlFolderLocalService;
080 this.dlFolderService = dlFolderService;
081 this.resourceLocalService = resourceLocalService;
082 _groupId = groupId;
083 _repositoryId = repositoryId;
084 _dlFolderId = dlFolderId;
085 }
086
087 @Override
088 public <T extends Capability> T getCapability(Class<T> capabilityClass) {
089 throw new IllegalArgumentException(
090 String.format(
091 "Capability %s is not supported by repository %s",
092 capabilityClass.getName(), getRepositoryId()));
093 }
094
095 public long getRepositoryId() {
096 return _repositoryId;
097 }
098
099 @Override
100 public <T extends Capability> boolean isCapabilityProvided(
101 Class<T> capabilityClass) {
102
103 return false;
104 }
105
106 protected HashMap<String, DDMFormValues> getDDMFormValuesMap(
107 ServiceContext serviceContext, long fileEntryTypeId)
108 throws PortalException {
109
110 HashMap<String, DDMFormValues> ddmFormValuesMap = new HashMap<>();
111
112 if (fileEntryTypeId <= 0) {
113 return ddmFormValuesMap;
114 }
115
116 DLFileEntryType fileEntryType =
117 DLFileEntryTypeLocalServiceUtil.getFileEntryType(fileEntryTypeId);
118
119 List<DDMStructure> ddmStructures = fileEntryType.getDDMStructures();
120
121 for (DDMStructure ddmStructure : ddmStructures) {
122 String namespace = String.valueOf(ddmStructure.getStructureId());
123
124 DDMFormValues ddmFormValues =
125 (DDMFormValues)serviceContext.getAttribute(
126 DDMFormValues.class.getName() +
127 ddmStructure.getStructureId());
128
129 if (ddmFormValues == null) {
130 ddmFormValues = StorageEngineManagerUtil.getDDMFormValues(
131 ddmStructure.getStructureId(), namespace, serviceContext);
132 }
133
134 ddmFormValuesMap.put(ddmStructure.getStructureKey(), ddmFormValues);
135 }
136
137 return ddmFormValuesMap;
138 }
139
140 protected long getDefaultFileEntryTypeId(
141 ServiceContext serviceContext, long folderId)
142 throws PortalException {
143
144 folderId = dlFolderLocalService.getFolderId(
145 serviceContext.getCompanyId(), folderId);
146
147 return dlFileEntryTypeLocalService.getDefaultFileEntryTypeId(folderId);
148 }
149
150 protected long getGroupId() {
151 return _groupId;
152 }
153
154 protected SortedArrayList<Long> getLongList(
155 ServiceContext serviceContext, String name) {
156
157 String value = ParamUtil.getString(serviceContext, name);
158
159 if (value == null) {
160 return new SortedArrayList<>();
161 }
162
163 long[] longArray = StringUtil.split(value, 0L);
164
165 SortedArrayList<Long> longList = new SortedArrayList<>();
166
167 for (long longValue : longArray) {
168 longList.add(longValue);
169 }
170
171 return longList;
172 }
173
174 protected boolean isDefaultRepository() {
175 if (_groupId == _repositoryId) {
176 return true;
177 }
178 else {
179 return false;
180 }
181 }
182
183 protected long toFolderId(long folderId) {
184 if (folderId == DLFolderConstants.DEFAULT_PARENT_FOLDER_ID) {
185 return _dlFolderId;
186 }
187 else {
188 return folderId;
189 }
190 }
191
192 protected List<Long> toFolderIds(List<Long> folderIds) {
193 List<Long> toFolderIds = new ArrayList<>(folderIds.size());
194
195 for (long folderId : folderIds) {
196 toFolderIds.add(toFolderId(folderId));
197 }
198
199 return toFolderIds;
200 }
201
202 protected DLAppHelperLocalService dlAppHelperLocalService;
203 protected DLFileEntryLocalService dlFileEntryLocalService;
204 protected DLFileEntryService dlFileEntryService;
205 protected DLFileEntryTypeLocalService dlFileEntryTypeLocalService;
206 protected DLFileShortcutLocalService dlFileShortcutLocalService;
207 protected DLFileShortcutService dlFileShortcutService;
208 protected DLFileVersionLocalService dlFileVersionLocalService;
209 protected DLFileVersionService dlFileVersionService;
210 protected DLFolderLocalService dlFolderLocalService;
211 protected DLFolderService dlFolderService;
212 protected RepositoryLocalService repositoryLocalService;
213 protected RepositoryService repositoryService;
214 protected ResourceLocalService resourceLocalService;
215
216 private final long _dlFolderId;
217 private long _groupId;
218 private final long _repositoryId;
219
220 }