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.SwapUpgradeColumnImpl;
19  import com.liferay.portal.kernel.upgrade.util.UpgradeColumn;
20  import com.liferay.portal.kernel.upgrade.util.UpgradeTable;
21  import com.liferay.portal.kernel.upgrade.util.UpgradeTableFactoryUtil;
22  import com.liferay.portal.upgrade.v4_3_0.util.AvailableMappersUtil;
23  import com.liferay.portal.upgrade.v4_3_0.util.ValueMapperUtil;
24  
25  import java.sql.Types;
26  
27  /**
28   * <a href="UpgradeMappingTables.java.html"><b><i>View Source</i></b></a>
29   *
30   * @author Brian Wing Shun Chan
31   */
32  public class UpgradeMappingTables extends UpgradeProcess {
33  
34      protected void doUpgrade() throws Exception {
35  
36          // Mappings
37  
38          UpgradeColumn upgradeGroupIdColumn = new SwapUpgradeColumnImpl(
39              "groupId", AvailableMappersUtil.getGroupIdMapper());
40  
41          UpgradeColumn upgradeOrganizationIdColumn = new SwapUpgradeColumnImpl(
42              "organizationId", AvailableMappersUtil.getOrganizationIdMapper());
43  
44          UpgradeColumn upgradeRoleIdColumn = new SwapUpgradeColumnImpl(
45              "roleId", AvailableMappersUtil.getRoleIdMapper());
46  
47          UpgradeColumn upgradeUserGroupIdColumn = new SwapUpgradeColumnImpl(
48              "userGroupId", AvailableMappersUtil.getUserGroupIdMapper());
49  
50          UpgradeColumn upgradeUserIdColumn = new SwapUpgradeColumnImpl(
51              "userId", new Integer(Types.VARCHAR),
52              AvailableMappersUtil.getUserIdMapper());
53  
54          // Groups_Orgs
55  
56          UpgradeTable upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
57              _TABLE_GROUPS_ORGS, _COLUMNS_GROUPS_ORGS, upgradeGroupIdColumn,
58              upgradeOrganizationIdColumn);
59  
60          upgradeTable.setCreateSQL(_CREATE_GROUPS_ORGS);
61  
62          upgradeTable.updateTable();
63  
64          // Groups_Permissions
65  
66          upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
67              _TABLE_GROUPS_PERMISSIONS, _COLUMNS_GROUPS_PERMISSIONS,
68              upgradeGroupIdColumn);
69  
70          upgradeTable.setCreateSQL(_CREATE_GROUPS_PERMISSIONS);
71  
72          upgradeTable.updateTable();
73  
74          // Groups_Roles
75  
76          upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
77              _TABLE_GROUPS_ROLES, _COLUMNS_GROUPS_ROLES,
78              upgradeGroupIdColumn, upgradeRoleIdColumn);
79  
80          upgradeTable.setCreateSQL(_CREATE_GROUPS_ROLES);
81  
82          upgradeTable.updateTable();
83  
84          // Groups_UserGroups
85  
86          upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
87              _TABLE_GROUPS_USERGROUPS, _COLUMNS_GROUPS_USERGROUPS,
88              upgradeGroupIdColumn, upgradeUserGroupIdColumn);
89  
90          upgradeTable.setCreateSQL(_CREATE_GROUPS_USERGROUPS);
91  
92          upgradeTable.updateTable();
93  
94          // Roles_Permissions
95  
96          upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
97              _TABLE_ROLES_PERMISSIONS, _COLUMNS_ROLES_PERMISSIONS,
98              upgradeRoleIdColumn);
99  
100         upgradeTable.setCreateSQL(_CREATE_ROLES_PERMISSIONS);
101 
102         upgradeTable.updateTable();
103 
104         // Users_Groups
105 
106         upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
107             _TABLE_USERS_GROUPS, _COLUMNS_USERS_GROUPS, upgradeUserIdColumn,
108             upgradeGroupIdColumn);
109 
110         upgradeTable.setCreateSQL(_CREATE_USERS_GROUPS);
111 
112         upgradeTable.updateTable();
113 
114         // Users_Orgs
115 
116         upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
117             _TABLE_USERS_ORGS, _COLUMNS_USERS_ORGS, upgradeUserIdColumn,
118             upgradeOrganizationIdColumn);
119 
120         upgradeTable.setCreateSQL(_CREATE_USERS_ORGS);
121 
122         upgradeTable.updateTable();
123 
124         // Users_Permissions
125 
126         upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
127             _TABLE_USERS_PERMISSIONS, _COLUMNS_USERS_PERMISSIONS,
128             upgradeUserIdColumn);
129 
130         upgradeTable.setCreateSQL(_CREATE_USERS_PERMISSIONS);
131 
132         upgradeTable.updateTable();
133 
134         // Users_Roles
135 
136         upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
137             _TABLE_USERS_ROLES, _COLUMNS_USERS_ROLES, upgradeUserIdColumn,
138             upgradeRoleIdColumn);
139 
140         upgradeTable.setCreateSQL(_CREATE_USERS_ROLES);
141 
142         upgradeTable.updateTable();
143 
144         // Users_UserGroups
145 
146         upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
147             _TABLE_USERS_USERGROUPS, _COLUMNS_USERS_USERGROUPS,
148             upgradeUserIdColumn, upgradeUserGroupIdColumn);
149 
150         upgradeTable.setCreateSQL(_CREATE_USERS_USERGROUPS);
151 
152         upgradeTable.updateTable();
153 
154         // Persist value mappers in case the portal was customized with
155         // additional tables that referenced these ids. This allows developers
156         // to retrieve the keys at a later point and build scripts to upgrade
157         // the other tables.
158 
159         ValueMapperUtil.persist(
160             AvailableMappersUtil.getBlogsEntryIdMapper(), "blogs-entry-id");
161 
162         ValueMapperUtil.persist(
163             AvailableMappersUtil.getBookmarksFolderIdMapper(),
164             "bookmarks-folder-id");
165 
166         ValueMapperUtil.persist(
167             AvailableMappersUtil.getBookmarksEntryIdMapper(),
168             "bookmarks-entry-id");
169 
170         ValueMapperUtil.persist(
171             AvailableMappersUtil.getCalEventIdMapper(), "cal-event-id");
172 
173         ValueMapperUtil.persist(
174             AvailableMappersUtil.getCompanyIdMapper(), "company-id");
175 
176         ValueMapperUtil.persist(
177             AvailableMappersUtil.getContactIdMapper(), "contact-id");
178 
179         ValueMapperUtil.persist(
180             AvailableMappersUtil.getDLFileEntryIdMapper(), "dl-file-entry-id");
181 
182         ValueMapperUtil.persist(
183             AvailableMappersUtil.getDLFileShortcutIdMapper(),
184             "dl-file-shortcut-id");
185 
186         ValueMapperUtil.persist(
187             AvailableMappersUtil.getDLFolderIdMapper(), "dl-folder-id");
188 
189         ValueMapperUtil.persist(
190             AvailableMappersUtil.getGroupIdMapper(), "group-id");
191 
192         ValueMapperUtil.persist(
193             AvailableMappersUtil.getIGFolderIdMapper(), "ig-folder-id");
194 
195         ValueMapperUtil.persist(
196             AvailableMappersUtil.getIGImageIdMapper(), "ig-image-id");
197 
198         ValueMapperUtil.persist(
199             AvailableMappersUtil.getImageIdMapper(), "image-id");
200 
201         ValueMapperUtil.persist(
202             AvailableMappersUtil.getJournalArticleIdMapper(),
203             "journal-article-id");
204 
205         ValueMapperUtil.persist(
206             AvailableMappersUtil.getJournalStructureIdMapper(),
207             "journal-structure-id");
208 
209         ValueMapperUtil.persist(
210             AvailableMappersUtil.getJournalTemplateIdMapper(),
211             "journal-template-id");
212 
213         ValueMapperUtil.persist(
214             AvailableMappersUtil.getLayoutPlidMapper(), "layout-plid");
215 
216         ValueMapperUtil.persist(
217             AvailableMappersUtil.getMBCategoryIdMapper(), "mb-category-id");
218 
219         ValueMapperUtil.persist(
220             AvailableMappersUtil.getMBMessageIdMapper(), "mb-message-id");
221 
222         ValueMapperUtil.persist(
223             AvailableMappersUtil.getMBThreadIdMapper(), "mb-thread-id");
224 
225         ValueMapperUtil.persist(
226             AvailableMappersUtil.getOrganizationIdMapper(), "organization-id");
227 
228         ValueMapperUtil.persist(
229             AvailableMappersUtil.getPollsQuestionIdMapper(),
230             "polls-question-id");
231 
232         ValueMapperUtil.persist(
233             AvailableMappersUtil.getRoleIdMapper(), "role-id");
234 
235         ValueMapperUtil.persist(
236             AvailableMappersUtil.getShoppingCategoryIdMapper(),
237             "shopping-category-id");
238 
239         ValueMapperUtil.persist(
240             AvailableMappersUtil.getShoppingItemIdMapper(), "shopping-item-id");
241 
242         ValueMapperUtil.persist(
243             AvailableMappersUtil.getUserGroupIdMapper(), "user-group-id");
244 
245         ValueMapperUtil.persist(
246             AvailableMappersUtil.getUserIdMapper(), "user-id");
247 
248         ValueMapperUtil.persist(
249             AvailableMappersUtil.getWikiNodeIdMapper(), "wiki-node-id");
250 
251         ValueMapperUtil.persist(
252             AvailableMappersUtil.getWikiPageIdMapper(), "wiki-page-id");
253     }
254 
255     private static final String _TABLE_GROUPS_ORGS = "Groups_Orgs";
256 
257     private static final String _TABLE_GROUPS_ROLES = "Groups_Roles";
258 
259     private static final String _TABLE_GROUPS_PERMISSIONS =
260         "Groups_Permissions";
261 
262     private static final String _TABLE_GROUPS_USERGROUPS = "Groups_UserGroups";
263 
264     private static final String _TABLE_ROLES_PERMISSIONS = "Roles_Permissions";
265 
266     private static final String _TABLE_USERS_GROUPS = "Users_Groups";
267 
268     private static final String _TABLE_USERS_ORGS = "Users_Orgs";
269 
270     private static final String _TABLE_USERS_PERMISSIONS = "Users_Permissions";
271 
272     private static final String _TABLE_USERS_ROLES = "Users_Roles";
273 
274     private static final String _TABLE_USERS_USERGROUPS = "Users_UserGroups";
275 
276     private static final Object[][] _COLUMNS_GROUPS_ORGS = {
277         {"groupId", new Integer(Types.BIGINT)},
278         {"organizationId", new Integer(Types.BIGINT)}
279     };
280 
281     private static final Object[][] _COLUMNS_GROUPS_PERMISSIONS = {
282         {"groupId", new Integer(Types.BIGINT)},
283         {"permissionId", new Integer(Types.BIGINT)}
284     };
285 
286     private static final Object[][] _COLUMNS_GROUPS_ROLES = {
287         {"groupId", new Integer(Types.BIGINT)},
288         {"roleId", new Integer(Types.BIGINT)}
289     };
290 
291     private static final Object[][] _COLUMNS_GROUPS_USERGROUPS = {
292         {"groupId", new Integer(Types.BIGINT)},
293         {"userGroupId", new Integer(Types.BIGINT)}
294     };
295 
296     private static final Object[][] _COLUMNS_ROLES_PERMISSIONS = {
297         {"roleId", new Integer(Types.BIGINT)},
298         {"permissionId", new Integer(Types.BIGINT)}
299     };
300 
301     private static final Object[][] _COLUMNS_USERS_GROUPS = {
302         {"userId", new Integer(Types.BIGINT)},
303         {"groupId", new Integer(Types.BIGINT)}
304     };
305 
306     private static final Object[][] _COLUMNS_USERS_ORGS = {
307         {"userId", new Integer(Types.BIGINT)},
308         {"organizationId", new Integer(Types.BIGINT)}
309     };
310 
311     private static final Object[][] _COLUMNS_USERS_PERMISSIONS = {
312         {"userId", new Integer(Types.BIGINT)},
313         {"permissionId", new Integer(Types.BIGINT)}
314     };
315 
316     private static final Object[][] _COLUMNS_USERS_ROLES = {
317         {"userId", new Integer(Types.BIGINT)},
318         {"roleId", new Integer(Types.BIGINT)}
319     };
320 
321     private static final Object[][] _COLUMNS_USERS_USERGROUPS = {
322         {"userId", new Integer(Types.BIGINT)},
323         {"userGroupId", new Integer(Types.BIGINT)}
324     };
325 
326     private static final String _CREATE_GROUPS_ORGS =
327         "create table Groups_Orgs (" +
328             "groupId LONG not null," +
329             "organizationId LONG not null," +
330             "primary key (groupId, organizationId)" +
331         ")";
332 
333     private static final String _CREATE_GROUPS_PERMISSIONS =
334         "create table Groups_Permissions (" +
335             "groupId LONG not null," +
336             "permissionId LONG not null," +
337             "primary key (groupId, permissionId)" +
338         ")";
339 
340     private static final String _CREATE_GROUPS_ROLES =
341         "create table Groups_Roles (" +
342             "groupId LONG not null," +
343             "roleId LONG not null," +
344             "primary key (groupId, roleId)" +
345         ")";
346 
347     private static final String _CREATE_GROUPS_USERGROUPS =
348         "create table Groups_UserGroups (" +
349             "groupId LONG not null," +
350             "userGroupId LONG not null," +
351             "primary key (groupId, userGroupId)" +
352         ")";
353 
354     private static final String _CREATE_ROLES_PERMISSIONS =
355         "create table Roles_Permissions (" +
356             "roleId LONG not null," +
357             "permissionId LONG not null," +
358             "primary key (roleId, permissionId)" +
359         ")";
360 
361     private static final String _CREATE_USERS_GROUPS =
362         "create table Users_Groups (" +
363             "userId LONG not null," +
364             "groupId LONG not null," +
365             "primary key (userId, groupId)" +
366         ")";
367 
368     private static final String _CREATE_USERS_ORGS =
369         "create table Users_Orgs (" +
370             "userId LONG not null," +
371             "organizationId LONG not null," +
372             "primary key (userId, organizationId)" +
373         ")";
374 
375     private static final String _CREATE_USERS_PERMISSIONS =
376         "create table Users_Permissions (" +
377             "userId LONG not null," +
378             "permissionId LONG not null," +
379             "primary key (userId, permissionId)" +
380         ")";
381 
382     private static final String _CREATE_USERS_ROLES =
383         "create table Users_Roles (" +
384             "userId LONG not null," +
385             "roleId LONG not null," +
386             "primary key (userId, roleId)" +
387         ")";
388 
389     private static final String _CREATE_USERS_USERGROUPS =
390         "create table Users_UserGroups (" +
391             "userId LONG not null," +
392             "userGroupId LONG not null," +
393             "primary key (userId, userGroupId)" +
394         ")";
395 
396 }