001    /**
002     * Copyright (c) 2000-2010 Liferay, Inc. All rights reserved.
003     *
004     * The contents of this file are subject to the terms of the Liferay Enterprise
005     * Subscription License ("License"). You may not use this file except in
006     * compliance with the License. You can obtain a copy of the License by
007     * contacting Liferay, Inc. See the License for the specific language governing
008     * permissions and limitations under the License, including but not limited to
009     * distribution rights of the Software.
010     *
011     *
012     *
013     */
014    
015    package com.liferay.portal.upgrade.v4_3_0;
016    
017    import com.liferay.portal.kernel.upgrade.UpgradeProcess;
018    import com.liferay.portal.kernel.upgrade.util.DefaultPKMapper;
019    import com.liferay.portal.kernel.upgrade.util.SwapUpgradeColumnImpl;
020    import com.liferay.portal.kernel.upgrade.util.TempUpgradeColumnImpl;
021    import com.liferay.portal.kernel.upgrade.util.UpgradeColumn;
022    import com.liferay.portal.kernel.upgrade.util.UpgradeTable;
023    import com.liferay.portal.kernel.upgrade.util.UpgradeTableFactoryUtil;
024    import com.liferay.portal.kernel.upgrade.util.ValueMapper;
025    import com.liferay.portal.upgrade.util.PKUpgradeColumnImpl;
026    import com.liferay.portal.upgrade.v4_3_0.util.AvailableMappersUtil;
027    import com.liferay.portal.upgrade.v4_3_0.util.DLFileEntryIdUpgradeColumnImpl;
028    import com.liferay.portal.upgrade.v4_3_0.util.DLFileEntryTable;
029    import com.liferay.portal.upgrade.v4_3_0.util.DLFileRankTable;
030    import com.liferay.portal.upgrade.v4_3_0.util.DLFileShortcutTable;
031    import com.liferay.portal.upgrade.v4_3_0.util.DLFileVersionTable;
032    import com.liferay.portal.upgrade.v4_3_0.util.DLFolderTable;
033    
034    import java.sql.Types;
035    
036    /**
037     * @author Brian Wing Shun Chan
038     */
039    public class UpgradeDocumentLibrary extends UpgradeProcess {
040    
041            protected void doUpgrade() throws Exception {
042    
043                    // DLFolder
044    
045                    UpgradeColumn upgradeCompanyIdColumn = new SwapUpgradeColumnImpl(
046                            "companyId", new Integer(Types.VARCHAR),
047                            AvailableMappersUtil.getCompanyIdMapper());
048    
049                    UpgradeColumn upgradeGroupIdColumn = new SwapUpgradeColumnImpl(
050                            "groupId", AvailableMappersUtil.getGroupIdMapper());
051    
052                    UpgradeColumn upgradeUserIdColumn = new SwapUpgradeColumnImpl(
053                            "userId", new Integer(Types.VARCHAR),
054                            AvailableMappersUtil.getUserIdMapper());
055    
056                    PKUpgradeColumnImpl upgradePKColumn = new PKUpgradeColumnImpl(
057                            "folderId", true);
058    
059                    UpgradeTable upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
060                            DLFolderTable.TABLE_NAME, DLFolderTable.TABLE_COLUMNS,
061                            upgradePKColumn, upgradeGroupIdColumn, upgradeUserIdColumn);
062    
063                    upgradeTable.setCreateSQL(DLFolderTable.TABLE_SQL_CREATE);
064    
065                    upgradeTable.updateTable();
066    
067                    ValueMapper folderIdMapper = new DefaultPKMapper(
068                            upgradePKColumn.getValueMapper());
069    
070                    AvailableMappersUtil.setDLFolderIdMapper(folderIdMapper);
071    
072                    UpgradeColumn upgradeParentFolderIdColumn = new SwapUpgradeColumnImpl(
073                            "parentFolderId", folderIdMapper);
074    
075                    upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
076                            DLFolderTable.TABLE_NAME, DLFolderTable.TABLE_COLUMNS,
077                            upgradeParentFolderIdColumn);
078    
079                    upgradeTable.updateTable();
080    
081                    UpgradeColumn upgradeFolderIdColumn = new SwapUpgradeColumnImpl(
082                            "folderId", folderIdMapper);
083    
084                    UpgradeColumn upgradeToFolderIdColumn = new SwapUpgradeColumnImpl(
085                            "toFolderId", folderIdMapper);
086    
087                    // DLFileEntry
088    
089                    UpgradeColumn upgradeNameColumn = new TempUpgradeColumnImpl("name");
090    
091                    PKUpgradeColumnImpl fileEntryIdColumn =
092                            new DLFileEntryIdUpgradeColumnImpl(
093                                    upgradeCompanyIdColumn, upgradeFolderIdColumn,
094                                    upgradeNameColumn);
095    
096                    UpgradeColumn upgradeVersionUserIdColumn = new SwapUpgradeColumnImpl(
097                            "versionUserId", new Integer(Types.VARCHAR),
098                            AvailableMappersUtil.getUserIdMapper());
099    
100                    upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
101                            DLFileEntryTable.TABLE_NAME, DLFileEntryTable.TABLE_COLUMNS,
102                            upgradeCompanyIdColumn, upgradeFolderIdColumn, upgradeNameColumn,
103                            fileEntryIdColumn, upgradeUserIdColumn, upgradeVersionUserIdColumn);
104    
105                    upgradeTable.setCreateSQL(DLFileEntryTable.TABLE_SQL_CREATE);
106    
107                    upgradeTable.updateTable();
108    
109                    ValueMapper fileEntryIdMapper = fileEntryIdColumn.getValueMapper();
110    
111                    AvailableMappersUtil.setDLFileEntryIdMapper(fileEntryIdMapper);
112    
113                    // DLFileRank
114    
115                    upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
116                            DLFileRankTable.TABLE_NAME, DLFileRankTable.TABLE_COLUMNS,
117                            new PKUpgradeColumnImpl("fileRankId", false),
118                            upgradeUserIdColumn, upgradeFolderIdColumn);
119    
120                    upgradeTable.setCreateSQL(DLFileRankTable.TABLE_SQL_CREATE);
121    
122                    upgradeTable.updateTable();
123    
124                    // DLFileShortcut
125    
126                    upgradePKColumn = new PKUpgradeColumnImpl("fileShortcutId", true);
127    
128                    upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
129                            DLFileShortcutTable.TABLE_NAME, DLFileShortcutTable.TABLE_COLUMNS,
130                            upgradePKColumn, upgradeUserIdColumn, upgradeFolderIdColumn,
131                            upgradeToFolderIdColumn);
132    
133                    upgradeTable.setCreateSQL(DLFileShortcutTable.TABLE_SQL_CREATE);
134    
135                    upgradeTable.updateTable();
136    
137                    ValueMapper fileShortcutIdMapper = upgradePKColumn.getValueMapper();
138    
139                    AvailableMappersUtil.setDLFileShortcutIdMapper(fileShortcutIdMapper);
140    
141                    // DLFileVersion
142    
143                    upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
144                            DLFileVersionTable.TABLE_NAME, DLFileVersionTable.TABLE_COLUMNS,
145                            new PKUpgradeColumnImpl("fileVersionId", false),
146                            upgradeUserIdColumn, upgradeFolderIdColumn);
147    
148                    upgradeTable.setCreateSQL(DLFileVersionTable.TABLE_SQL_CREATE);
149    
150                    upgradeTable.updateTable();
151            }
152    
153    }