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