1
22
23 package com.liferay.portal.upgrade.v4_3_0.util;
24
25 import com.liferay.documentlibrary.service.DLLocalServiceUtil;
26 import com.liferay.portal.kernel.log.Log;
27 import com.liferay.portal.kernel.log.LogFactoryUtil;
28 import com.liferay.portal.upgrade.util.PKUpgradeColumnImpl;
29 import com.liferay.portal.upgrade.util.UpgradeColumn;
30 import com.liferay.portal.upgrade.util.ValueMapper;
31 import com.liferay.portal.upgrade.util.ValueMapperFactory;
32
33 import java.util.HashSet;
34 import java.util.Set;
35
36
42 public class DLFileEntryIdUpgradeColumnImpl extends PKUpgradeColumnImpl {
43
44 public DLFileEntryIdUpgradeColumnImpl(
45 UpgradeColumn companyIdColumn, UpgradeColumn folderIdColumn,
46 UpgradeColumn nameColumn) {
47
48 super("fileEntryId", false);
49
50 _companyIdColumn = companyIdColumn;
51 _folderIdColumn = folderIdColumn;
52 _nameColumn = nameColumn;
53 _dlFileEntryIdMapper = ValueMapperFactory.getValueMapper();
54 _movedFolderIds = new HashSet<Long>();
55 }
56
57 public Object getNewValue(Object oldValue) throws Exception {
58 Object newValue = super.getNewValue(oldValue);
59
60 String oldCompanyId = (String)_companyIdColumn.getOldValue();
61 Long oldFolderId = (Long)_folderIdColumn.getOldValue();
62
63 Long newCompanyId = (Long)_companyIdColumn.getNewValue();
64 Long newFolderId = (Long)_folderIdColumn.getNewValue();
65
66 String name = (String)_nameColumn.getOldValue();
67
68 String oldPageIdValue =
69 "{folderId=" + oldFolderId + ", name=" + name + "}";
70
71 _dlFileEntryIdMapper.mapValue(oldPageIdValue, newValue);
72
73 if (!_movedFolderIds.contains(oldFolderId)) {
74 try {
75 DLLocalServiceUtil.move(
76 "/" + oldCompanyId + "/documentlibrary/" + oldFolderId,
77 "/" + newCompanyId + "/documentlibrary/" + newFolderId);
78 }
79 catch (Exception e) {
80 _log.error(e.getMessage());
81 }
82
83 _movedFolderIds.add(oldFolderId);
84 }
85
86 return newValue;
87 }
88
89 public ValueMapper getValueMapper() {
90 return _dlFileEntryIdMapper;
91 }
92
93 private static Log _log =
94 LogFactoryUtil.getLog(DLFileEntryIdUpgradeColumnImpl.class);
95
96 private UpgradeColumn _companyIdColumn;
97 private UpgradeColumn _folderIdColumn;
98 private UpgradeColumn _nameColumn;
99 private ValueMapper _dlFileEntryIdMapper;
100 private Set<Long> _movedFolderIds;
101
102 }