1
19
20 package com.liferay.portal.upgrade.v4_3_0;
21
22 import com.liferay.portal.kernel.log.Log;
23 import com.liferay.portal.kernel.log.LogFactoryUtil;
24 import com.liferay.portal.model.Contact;
25 import com.liferay.portal.model.Organization;
26 import com.liferay.portal.model.impl.EmailAddressImpl;
27 import com.liferay.portal.upgrade.UpgradeException;
28 import com.liferay.portal.upgrade.UpgradeProcess;
29 import com.liferay.portal.upgrade.util.DefaultUpgradeTableImpl;
30 import com.liferay.portal.upgrade.util.PKUpgradeColumnImpl;
31 import com.liferay.portal.upgrade.util.SwapUpgradeColumnImpl;
32 import com.liferay.portal.upgrade.util.UpgradeColumn;
33 import com.liferay.portal.upgrade.util.UpgradeTable;
34 import com.liferay.portal.upgrade.v4_3_0.util.AvailableMappersUtil;
35 import com.liferay.portal.upgrade.v4_3_0.util.ClassNameIdUpgradeColumnImpl;
36 import com.liferay.portal.upgrade.v4_3_0.util.ClassPKContainer;
37 import com.liferay.portal.upgrade.v4_3_0.util.ClassPKUpgradeColumnImpl;
38 import com.liferay.portal.upgrade.v4_3_0.util.ValueMapperUtil;
39 import com.liferay.portal.util.PortalUtil;
40
41 import java.sql.Types;
42
43 import java.util.HashMap;
44 import java.util.Map;
45
46
53 public class UpgradeEmailAddress extends UpgradeProcess {
54
55 public void upgrade() throws UpgradeException {
56 _log.info("Upgrading");
57
58 try {
59 doUpgrade();
60 }
61 catch (Exception e) {
62 throw new UpgradeException(e);
63 }
64 }
65
66 protected void doUpgrade() throws Exception {
67
68
70 UpgradeColumn upgradeUserIdColumn = new SwapUpgradeColumnImpl(
71 "userId", new Integer(Types.VARCHAR),
72 AvailableMappersUtil.getUserIdMapper());
73
74 PKUpgradeColumnImpl upgradePKColumn = new PKUpgradeColumnImpl(
75 "emailAddressId", true);
76
77 ClassNameIdUpgradeColumnImpl classNameIdColumn =
78 new ClassNameIdUpgradeColumnImpl();
79
80 Map<Long, ClassPKContainer> classPKContainers =
81 new HashMap<Long, ClassPKContainer>();
82
83 classPKContainers.put(
84 new Long(PortalUtil.getClassNameId(Contact.class.getName())),
85 new ClassPKContainer(
86 AvailableMappersUtil.getContactIdMapper(), false));
87
88 classPKContainers.put(
89 new Long(PortalUtil.getClassNameId(Organization.class.getName())),
90 new ClassPKContainer(
91 AvailableMappersUtil.getOrganizationIdMapper(), true));
92
93 UpgradeColumn upgradeClassPKColumn = new ClassPKUpgradeColumnImpl(
94 classNameIdColumn, classPKContainers);
95
96 UpgradeTable upgradeTable = new DefaultUpgradeTableImpl(
97 EmailAddressImpl.TABLE_NAME, EmailAddressImpl.TABLE_COLUMNS,
98 upgradePKColumn, upgradeUserIdColumn, classNameIdColumn,
99 upgradeClassPKColumn);
100
101 upgradeTable.setCreateSQL(EmailAddressImpl.TABLE_SQL_CREATE);
102
103 upgradeTable.updateTable();
104
105 ValueMapperUtil.persist(
106 upgradePKColumn.getValueMapper(), "email-address-id");
107 }
108
109 private static Log _log = LogFactoryUtil.getLog(UpgradeEmailAddress.class);
110
111 }