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