1   /**
2    * Copyright (c) 2000-2009 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   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
12   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
13   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
14   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
15   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
16   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
17   * SOFTWARE.
18   */
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.upgrade.UpgradeException;
25  import com.liferay.portal.upgrade.UpgradeProcess;
26  import com.liferay.portal.upgrade.util.DefaultPKMapper;
27  import com.liferay.portal.upgrade.util.DefaultUpgradeTableImpl;
28  import com.liferay.portal.upgrade.util.PKUpgradeColumnImpl;
29  import com.liferay.portal.upgrade.util.SwapUpgradeColumnImpl;
30  import com.liferay.portal.upgrade.util.TempUpgradeColumnImpl;
31  import com.liferay.portal.upgrade.util.UpgradeColumn;
32  import com.liferay.portal.upgrade.util.UpgradeTable;
33  import com.liferay.portal.upgrade.util.ValueMapper;
34  import com.liferay.portal.upgrade.v4_3_0.util.AvailableMappersUtil;
35  import com.liferay.portal.upgrade.v4_3_0.util.DLFileEntryIdUpgradeColumnImpl;
36  import com.liferay.portlet.documentlibrary.model.impl.DLFileEntryImpl;
37  import com.liferay.portlet.documentlibrary.model.impl.DLFileRankImpl;
38  import com.liferay.portlet.documentlibrary.model.impl.DLFileShortcutImpl;
39  import com.liferay.portlet.documentlibrary.model.impl.DLFileVersionImpl;
40  import com.liferay.portlet.documentlibrary.model.impl.DLFolderImpl;
41  
42  import java.sql.Types;
43  
44  /**
45   * <a href="UpgradeDocumentLibrary.java.html"><b><i>View Source</i></b></a>
46   *
47   * @author Brian Wing Shun Chan
48   *
49   */
50  public class UpgradeDocumentLibrary extends UpgradeProcess {
51  
52      public void upgrade() throws UpgradeException {
53          _log.info("Upgrading");
54  
55          try {
56              doUpgrade();
57          }
58          catch (Exception e) {
59              throw new UpgradeException(e);
60          }
61      }
62  
63      protected void doUpgrade() throws Exception {
64  
65          // DLFolder
66  
67          UpgradeColumn upgradeCompanyIdColumn = new SwapUpgradeColumnImpl(
68              "companyId", new Integer(Types.VARCHAR),
69              AvailableMappersUtil.getCompanyIdMapper());
70  
71          UpgradeColumn upgradeGroupIdColumn = new SwapUpgradeColumnImpl(
72              "groupId", AvailableMappersUtil.getGroupIdMapper());
73  
74          UpgradeColumn upgradeUserIdColumn = new SwapUpgradeColumnImpl(
75              "userId", new Integer(Types.VARCHAR),
76              AvailableMappersUtil.getUserIdMapper());
77  
78          PKUpgradeColumnImpl upgradePKColumn = new PKUpgradeColumnImpl(
79              "folderId", true);
80  
81          UpgradeTable upgradeTable = new DefaultUpgradeTableImpl(
82              DLFolderImpl.TABLE_NAME, DLFolderImpl.TABLE_COLUMNS,
83              upgradePKColumn, upgradeGroupIdColumn, upgradeUserIdColumn);
84  
85          upgradeTable.setCreateSQL(DLFolderImpl.TABLE_SQL_CREATE);
86  
87          upgradeTable.updateTable();
88  
89          ValueMapper folderIdMapper = new DefaultPKMapper(
90              upgradePKColumn.getValueMapper());
91  
92          AvailableMappersUtil.setDLFolderIdMapper(folderIdMapper);
93  
94          UpgradeColumn upgradeParentFolderIdColumn = new SwapUpgradeColumnImpl(
95              "parentFolderId", folderIdMapper);
96  
97          upgradeTable = new DefaultUpgradeTableImpl(
98              DLFolderImpl.TABLE_NAME, DLFolderImpl.TABLE_COLUMNS,
99              upgradeParentFolderIdColumn);
100 
101         upgradeTable.updateTable();
102 
103         UpgradeColumn upgradeFolderIdColumn = new SwapUpgradeColumnImpl(
104             "folderId", folderIdMapper);
105 
106         UpgradeColumn upgradeToFolderIdColumn = new SwapUpgradeColumnImpl(
107             "toFolderId", folderIdMapper);
108 
109         // DLFileEntry
110 
111         UpgradeColumn upgradeNameColumn = new TempUpgradeColumnImpl("name");
112 
113         PKUpgradeColumnImpl fileEntryIdColumn =
114             new DLFileEntryIdUpgradeColumnImpl(
115                 upgradeCompanyIdColumn, upgradeFolderIdColumn,
116                 upgradeNameColumn);
117 
118         UpgradeColumn upgradeVersionUserIdColumn = new SwapUpgradeColumnImpl(
119             "versionUserId", new Integer(Types.VARCHAR),
120             AvailableMappersUtil.getUserIdMapper());
121 
122         upgradeTable = new DefaultUpgradeTableImpl(
123             DLFileEntryImpl.TABLE_NAME, DLFileEntryImpl.TABLE_COLUMNS,
124             upgradeCompanyIdColumn, upgradeFolderIdColumn, upgradeNameColumn,
125             fileEntryIdColumn, upgradeUserIdColumn, upgradeVersionUserIdColumn);
126 
127         upgradeTable.setCreateSQL(DLFileEntryImpl.TABLE_SQL_CREATE);
128 
129         upgradeTable.updateTable();
130 
131         ValueMapper fileEntryIdMapper = fileEntryIdColumn.getValueMapper();
132 
133         AvailableMappersUtil.setDLFileEntryIdMapper(fileEntryIdMapper);
134 
135         // DLFileRank
136 
137         upgradeTable = new DefaultUpgradeTableImpl(
138             DLFileRankImpl.TABLE_NAME, DLFileRankImpl.TABLE_COLUMNS,
139             new PKUpgradeColumnImpl("fileRankId", false),
140             upgradeUserIdColumn, upgradeFolderIdColumn);
141 
142         upgradeTable.setCreateSQL(DLFileRankImpl.TABLE_SQL_CREATE);
143 
144         upgradeTable.updateTable();
145 
146         // DLFileShortcut
147 
148         upgradePKColumn = new PKUpgradeColumnImpl("fileShortcutId", true);
149 
150         upgradeTable = new DefaultUpgradeTableImpl(
151             DLFileShortcutImpl.TABLE_NAME, DLFileShortcutImpl.TABLE_COLUMNS,
152             upgradePKColumn, upgradeUserIdColumn, upgradeFolderIdColumn,
153             upgradeToFolderIdColumn);
154 
155         upgradeTable.setCreateSQL(DLFileShortcutImpl.TABLE_SQL_CREATE);
156 
157         upgradeTable.updateTable();
158 
159         ValueMapper fileShortcutIdMapper = upgradePKColumn.getValueMapper();
160 
161         AvailableMappersUtil.setDLFileShortcutIdMapper(fileShortcutIdMapper);
162 
163         // DLFileVersion
164 
165         upgradeTable = new DefaultUpgradeTableImpl(
166             DLFileVersionImpl.TABLE_NAME, DLFileVersionImpl.TABLE_COLUMNS,
167             new PKUpgradeColumnImpl("fileVersionId", false),
168             upgradeUserIdColumn, upgradeFolderIdColumn);
169 
170         upgradeTable.setCreateSQL(DLFileVersionImpl.TABLE_SQL_CREATE);
171 
172         upgradeTable.updateTable();
173     }
174 
175     private static Log _log =
176         LogFactoryUtil.getLog(UpgradeDocumentLibrary.class);
177 
178 }