1   /**
2    * Copyright (c) 2000-2010 Liferay, Inc. All rights reserved.
3    *
4    * The contents of this file are subject to the terms of the Liferay Enterprise
5    * Subscription License ("License"). You may not use this file except in
6    * compliance with the License. You can obtain a copy of the License by
7    * contacting Liferay, Inc. See the License for the specific language governing
8    * permissions and limitations under the License, including but not limited to
9    * distribution rights of the Software.
10   *
11   *
12   *
13   */
14  
15  package com.liferay.portal.upgrade.v4_3_0;
16  
17  import com.liferay.portal.kernel.upgrade.UpgradeProcess;
18  import com.liferay.portal.kernel.upgrade.util.DefaultPKMapper;
19  import com.liferay.portal.kernel.upgrade.util.SwapUpgradeColumnImpl;
20  import com.liferay.portal.kernel.upgrade.util.TempUpgradeColumnImpl;
21  import com.liferay.portal.kernel.upgrade.util.UpgradeColumn;
22  import com.liferay.portal.kernel.upgrade.util.UpgradeTable;
23  import com.liferay.portal.kernel.upgrade.util.UpgradeTableFactoryUtil;
24  import com.liferay.portal.kernel.upgrade.util.ValueMapper;
25  import com.liferay.portal.upgrade.util.PKUpgradeColumnImpl;
26  import com.liferay.portal.upgrade.v4_3_0.util.AccountTable;
27  import com.liferay.portal.upgrade.v4_3_0.util.AvailableMappersUtil;
28  import com.liferay.portal.upgrade.v4_3_0.util.ContactTable;
29  import com.liferay.portal.upgrade.v4_3_0.util.CyrusUserTable;
30  import com.liferay.portal.upgrade.v4_3_0.util.CyrusVirtualTable;
31  import com.liferay.portal.upgrade.v4_3_0.util.PasswordTrackerTable;
32  import com.liferay.portal.upgrade.v4_3_0.util.UserPortraitIdUpgradeColumnImpl;
33  import com.liferay.portal.upgrade.v4_3_0.util.UserTable;
34  
35  import java.sql.Types;
36  
37  /**
38   * <a href="UpgradeUser.java.html"><b><i>View Source</i></b></a>
39   *
40   * @author Alexander Chow
41   * @author Brian Wing Shun Chan
42   * @author Bruno Farache
43   */
44  public class UpgradeUser extends UpgradeProcess {
45  
46      protected void doUpgrade() throws Exception {
47  
48          // User_
49  
50          PKUpgradeColumnImpl upgradePKColumn =
51              new PKUpgradeColumnImpl("userId", new Integer(Types.VARCHAR), true);
52  
53          UpgradeColumn upgradeCompanyIdColumn = new TempUpgradeColumnImpl(
54              "companyId", new Integer(Types.VARCHAR));
55  
56          UpgradeColumn upgradeContactIdColumn = new TempUpgradeColumnImpl(
57              "contactId", new Integer(Types.VARCHAR));
58  
59          UpgradeColumn upgradeUserPortraitIdColumn =
60              new UserPortraitIdUpgradeColumnImpl(
61                  upgradePKColumn, AvailableMappersUtil.getImageIdMapper());
62  
63          UpgradeTable upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
64              UserTable.TABLE_NAME, UserTable.TABLE_COLUMNS, upgradePKColumn,
65              upgradeCompanyIdColumn, upgradeContactIdColumn,
66              upgradeUserPortraitIdColumn);
67  
68          upgradeTable.updateTable();
69  
70          ValueMapper userIdMapper = new DefaultPKMapper(
71              upgradePKColumn.getValueMapper());
72  
73          AvailableMappersUtil.setUserIdMapper(userIdMapper);
74  
75          UpgradeColumn upgradeUserIdColumn = new SwapUpgradeColumnImpl(
76              "userId", new Integer(Types.VARCHAR), userIdMapper);
77  
78          // Account
79  
80          upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
81              AccountTable.TABLE_NAME, AccountTable.TABLE_COLUMNS,
82              upgradeUserIdColumn);
83  
84          upgradeTable.setCreateSQL(AccountTable.TABLE_SQL_CREATE);
85  
86          upgradeTable.updateTable();
87  
88          // Contact
89  
90          UpgradeColumn upgradeAccountIdColumn = new TempUpgradeColumnImpl(
91              "accountId", new Integer(Types.VARCHAR));
92  
93          UpgradeColumn upgradeParentContactIdColumn = new TempUpgradeColumnImpl(
94              "parentContactId", new Integer(Types.VARCHAR));
95  
96          UpgradeColumn upgradePrefixIdColumn = new TempUpgradeColumnImpl(
97              "prefixId", new Integer(Types.VARCHAR));
98  
99          UpgradeColumn upgradeSuffixIdColumn = new TempUpgradeColumnImpl(
100             "suffixId", new Integer(Types.VARCHAR));
101 
102         upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
103             ContactTable.TABLE_NAME, ContactTable.TABLE_COLUMNS,
104             upgradeContactIdColumn, upgradeCompanyIdColumn, upgradeUserIdColumn,
105             upgradeAccountIdColumn, upgradeParentContactIdColumn,
106             upgradePrefixIdColumn, upgradeSuffixIdColumn);
107 
108         upgradeTable.updateTable();
109 
110         // CyrusUser
111 
112         upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
113             CyrusUserTable.TABLE_NAME, CyrusUserTable.TABLE_COLUMNS,
114             upgradeUserIdColumn);
115 
116         upgradeTable.updateTable();
117 
118         // CyrusVirtual
119 
120         upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
121             CyrusVirtualTable.TABLE_NAME, CyrusVirtualTable.TABLE_COLUMNS,
122             upgradeUserIdColumn);
123 
124         upgradeTable.updateTable();
125 
126         // PasswordTracker
127 
128         upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
129             PasswordTrackerTable.TABLE_NAME, PasswordTrackerTable.TABLE_COLUMNS,
130             new PKUpgradeColumnImpl("passwordTrackerId", false),
131             upgradeUserIdColumn);
132 
133         upgradeTable.setCreateSQL(PasswordTrackerTable.TABLE_SQL_CREATE);
134 
135         upgradeTable.updateTable();
136     }
137 
138 }