1   /**
2    * Copyright (c) 2000-2010 Liferay, Inc. All rights reserved.
3    *
4    * This library is free software; you can redistribute it and/or modify it under
5    * the terms of the GNU Lesser General Public License as published by the Free
6    * Software Foundation; either version 2.1 of the License, or (at your option)
7    * any later version.
8    *
9    * This library is distributed in the hope that it will be useful, but WITHOUT
10   * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11   * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
12   * details.
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.UpgradeColumn;
21  import com.liferay.portal.kernel.upgrade.util.UpgradeTable;
22  import com.liferay.portal.kernel.upgrade.util.UpgradeTableFactoryUtil;
23  import com.liferay.portal.kernel.upgrade.util.ValueMapper;
24  import com.liferay.portal.upgrade.util.PKUpgradeColumnImpl;
25  import com.liferay.portal.upgrade.v4_3_0.util.AvailableMappersUtil;
26  import com.liferay.portal.upgrade.v4_3_0.util.BookmarksEntryTable;
27  import com.liferay.portal.upgrade.v4_3_0.util.BookmarksFolderTable;
28  
29  import java.sql.Types;
30  
31  /**
32   * <a href="UpgradeBookmarks.java.html"><b><i>View Source</i></b></a>
33   *
34   * @author Alexander Chow
35   * @author Brian Wing Shun Chan
36   */
37  public class UpgradeBookmarks extends UpgradeProcess {
38  
39      protected void doUpgrade() throws Exception {
40  
41          // BookmarksFolder
42  
43          UpgradeColumn upgradeGroupIdColumn = new SwapUpgradeColumnImpl(
44              "groupId", AvailableMappersUtil.getGroupIdMapper());
45  
46          UpgradeColumn upgradeUserIdColumn = new SwapUpgradeColumnImpl(
47              "userId", new Integer(Types.VARCHAR),
48              AvailableMappersUtil.getUserIdMapper());
49  
50          PKUpgradeColumnImpl upgradePKColumn = new PKUpgradeColumnImpl(
51              "folderId", true);
52  
53          UpgradeTable upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
54              BookmarksFolderTable.TABLE_NAME, BookmarksFolderTable.TABLE_COLUMNS,
55              upgradePKColumn, upgradeGroupIdColumn, upgradeUserIdColumn);
56  
57          upgradeTable.setCreateSQL(BookmarksFolderTable.TABLE_SQL_CREATE);
58  
59          upgradeTable.updateTable();
60  
61          ValueMapper folderIdMapper = new DefaultPKMapper(
62              upgradePKColumn.getValueMapper());
63  
64          AvailableMappersUtil.setBookmarksFolderIdMapper(folderIdMapper);
65  
66          UpgradeColumn upgradeParentFolderIdColumn = new SwapUpgradeColumnImpl(
67              "parentFolderId", folderIdMapper);
68  
69          upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
70              BookmarksFolderTable.TABLE_NAME, BookmarksFolderTable.TABLE_COLUMNS,
71              upgradeParentFolderIdColumn);
72  
73          upgradeTable.updateTable();
74  
75          UpgradeColumn upgradeFolderIdColumn = new SwapUpgradeColumnImpl(
76              "folderId", folderIdMapper);
77  
78          // BookmarksEntry
79  
80          upgradePKColumn = new PKUpgradeColumnImpl("entryId", true);
81  
82          upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
83              BookmarksEntryTable.TABLE_NAME, BookmarksEntryTable.TABLE_COLUMNS,
84              upgradePKColumn, upgradeFolderIdColumn, upgradeUserIdColumn);
85  
86          upgradeTable.setCreateSQL(BookmarksEntryTable.TABLE_SQL_CREATE);
87  
88          upgradeTable.updateTable();
89  
90          ValueMapper entryIdMapper = upgradePKColumn.getValueMapper();
91  
92          AvailableMappersUtil.setBookmarksEntryIdMapper(entryIdMapper);
93      }
94  
95  }