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
43 public class DLFileEntryIdUpgradeColumnImpl extends PKUpgradeColumnImpl {
44
45 public DLFileEntryIdUpgradeColumnImpl(
46 UpgradeColumn companyIdColumn, UpgradeColumn folderIdColumn,
47 UpgradeColumn nameColumn) {
48
49 super("fileEntryId", false);
50
51 _companyIdColumn = companyIdColumn;
52 _folderIdColumn = folderIdColumn;
53 _nameColumn = nameColumn;
54 _dlFileEntryIdMapper = ValueMapperFactory.getValueMapper();
55 _movedFolderIds = new HashSet<Long>();
56 }
57
58 public Object getNewValue(Object oldValue) throws Exception {
59 Object newValue = super.getNewValue(oldValue);
60
61 String oldCompanyId = (String)_companyIdColumn.getOldValue();
62 Long oldFolderId = (Long)_folderIdColumn.getOldValue();
63
64 Long newCompanyId = (Long)_companyIdColumn.getNewValue();
65 Long newFolderId = (Long)_folderIdColumn.getNewValue();
66
67 String name = (String)_nameColumn.getOldValue();
68
69 String oldPageIdValue =
70 "{folderId=" + oldFolderId + ", name=" + name + "}";
71
72 _dlFileEntryIdMapper.mapValue(oldPageIdValue, newValue);
73
74 if (!_movedFolderIds.contains(oldFolderId)) {
75 try {
76 DLLocalServiceUtil.move(
77 "/" + oldCompanyId + "/documentlibrary/" + oldFolderId,
78 "/" + newCompanyId + "/documentlibrary/" + newFolderId);
79 }
80 catch (Exception e) {
81 _log.error(e.getMessage());
82 }
83
84 _movedFolderIds.add(oldFolderId);
85 }
86
87 return newValue;
88 }
89
90 public ValueMapper getValueMapper() {
91 return _dlFileEntryIdMapper;
92 }
93
94 private static Log _log =
95 LogFactoryUtil.getLog(DLFileEntryIdUpgradeColumnImpl.class);
96
97 private UpgradeColumn _companyIdColumn;
98 private UpgradeColumn _folderIdColumn;
99 private UpgradeColumn _nameColumn;
100 private ValueMapper _dlFileEntryIdMapper;
101 private Set<Long> _movedFolderIds;
102
103 }