001    /**
002     * Copyright (c) 2000-2010 Liferay, Inc. All rights reserved.
003     *
004     * This library is free software; you can redistribute it and/or modify it under
005     * the terms of the GNU Lesser General Public License as published by the Free
006     * Software Foundation; either version 2.1 of the License, or (at your option)
007     * any later version.
008     *
009     * This library is distributed in the hope that it will be useful, but WITHOUT
010     * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
011     * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
012     * details.
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.UpgradeColumn;
021    import com.liferay.portal.kernel.upgrade.util.UpgradeTable;
022    import com.liferay.portal.kernel.upgrade.util.UpgradeTableFactoryUtil;
023    import com.liferay.portal.kernel.upgrade.util.ValueMapper;
024    import com.liferay.portal.upgrade.util.PKUpgradeColumnImpl;
025    import com.liferay.portal.upgrade.v4_3_0.util.AvailableMappersUtil;
026    import com.liferay.portal.upgrade.v4_3_0.util.ShoppingCartItemIdUpgradeColumnImpl;
027    import com.liferay.portal.upgrade.v4_3_0.util.ShoppingCartItemIdsUpgradeColumnImpl;
028    import com.liferay.portal.upgrade.v4_3_0.util.ShoppingCartTable;
029    import com.liferay.portal.upgrade.v4_3_0.util.ShoppingCategoryTable;
030    import com.liferay.portal.upgrade.v4_3_0.util.ShoppingCouponLimitCategoriesUpgradeColumnImpl;
031    import com.liferay.portal.upgrade.v4_3_0.util.ShoppingCouponTable;
032    import com.liferay.portal.upgrade.v4_3_0.util.ShoppingItemPriceTable;
033    import com.liferay.portal.upgrade.v4_3_0.util.ShoppingItemTable;
034    import com.liferay.portal.upgrade.v4_3_0.util.ShoppingOrderItemTable;
035    import com.liferay.portal.upgrade.v4_3_0.util.ShoppingOrderTable;
036    
037    import java.sql.Types;
038    
039    /**
040     * @author Brian Wing Shun Chan
041     */
042    public class UpgradeShopping extends UpgradeProcess {
043    
044            protected void doUpgrade() throws Exception {
045    
046                    // ShoppingCategory
047    
048                    UpgradeColumn upgradeGroupIdColumn = new SwapUpgradeColumnImpl(
049                            "groupId", AvailableMappersUtil.getGroupIdMapper());
050    
051                    UpgradeColumn upgradeUserIdColumn = new SwapUpgradeColumnImpl(
052                            "userId", new Integer(Types.VARCHAR),
053                            AvailableMappersUtil.getUserIdMapper());
054    
055                    PKUpgradeColumnImpl upgradePKColumn = new PKUpgradeColumnImpl(
056                            "categoryId", true);
057    
058                    UpgradeTable upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
059                            ShoppingCategoryTable.TABLE_NAME,
060                            ShoppingCategoryTable.TABLE_COLUMNS, upgradePKColumn,
061                            upgradeGroupIdColumn, upgradeUserIdColumn);
062    
063                    upgradeTable.setCreateSQL(ShoppingCategoryTable.TABLE_SQL_CREATE);
064    
065                    upgradeTable.updateTable();
066    
067                    ValueMapper categoryIdMapper = new DefaultPKMapper(
068                            upgradePKColumn.getValueMapper());
069    
070                    AvailableMappersUtil.setShoppingCategoryIdMapper(categoryIdMapper);
071    
072                    UpgradeColumn upgradeParentCategoryIdColumn = new SwapUpgradeColumnImpl(
073                            "parentCategoryId", categoryIdMapper);
074    
075                    upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
076                            ShoppingCategoryTable.TABLE_NAME,
077                            ShoppingCategoryTable.TABLE_COLUMNS, upgradeParentCategoryIdColumn);
078    
079                    upgradeTable.updateTable();
080    
081                    UpgradeColumn upgradeCategoryIdColumn = new SwapUpgradeColumnImpl(
082                            "categoryId", categoryIdMapper);
083    
084                    // ShoppingItem
085    
086                    upgradePKColumn = new PKUpgradeColumnImpl("itemId", true);
087    
088                    upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
089                            ShoppingItemTable.TABLE_NAME, ShoppingItemTable.TABLE_COLUMNS,
090                            upgradePKColumn, upgradeCategoryIdColumn, upgradeUserIdColumn);
091    
092                    upgradeTable.setCreateSQL(ShoppingItemTable.TABLE_SQL_CREATE);
093    
094                    upgradeTable.updateTable();
095    
096                    ValueMapper itemIdMapper = upgradePKColumn.getValueMapper();
097    
098                    AvailableMappersUtil.setShoppingItemIdMapper(itemIdMapper);
099    
100                    UpgradeColumn upgradeItemIdColumn = new SwapUpgradeColumnImpl(
101                            "itemId", itemIdMapper);
102    
103                    // ShoppingItemField
104    
105                    upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
106                            ShoppingItemTable.TABLE_NAME, ShoppingItemTable.TABLE_COLUMNS,
107                            new PKUpgradeColumnImpl("itemFieldId", false), upgradeItemIdColumn);
108    
109                    upgradeTable.setCreateSQL(ShoppingItemTable.TABLE_SQL_CREATE);
110    
111                    upgradeTable.updateTable();
112    
113                    // ShoppingItemPrice
114    
115                    upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
116                            ShoppingItemPriceTable.TABLE_NAME,
117                            ShoppingItemPriceTable.TABLE_COLUMNS,
118                            new PKUpgradeColumnImpl("itemPriceId", false), upgradeItemIdColumn);
119    
120                    upgradeTable.setCreateSQL(ShoppingItemPriceTable.TABLE_SQL_CREATE);
121    
122                    upgradeTable.updateTable();
123    
124                    // ShoppingOrder
125    
126                    upgradePKColumn = new PKUpgradeColumnImpl(
127                            "orderId", new Integer(Types.VARCHAR), true);
128    
129                    upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
130                            ShoppingOrderTable.TABLE_NAME, ShoppingOrderTable.TABLE_COLUMNS,
131                            upgradePKColumn, upgradeGroupIdColumn, upgradeUserIdColumn);
132    
133                    upgradeTable.setCreateSQL(ShoppingOrderTable.TABLE_SQL_CREATE);
134    
135                    upgradeTable.updateTable();
136    
137                    ValueMapper orderIdMapper = upgradePKColumn.getValueMapper();
138    
139                    UpgradeColumn upgradeOrderIdColumn = new SwapUpgradeColumnImpl(
140                            "orderId", new Integer(Types.VARCHAR), orderIdMapper);
141    
142                    // ShoppingOrderItem
143    
144                    UpgradeColumn upgradeCartItemIdColumn =
145                            new ShoppingCartItemIdUpgradeColumnImpl(itemIdMapper);
146    
147                    upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
148                            ShoppingOrderItemTable.TABLE_NAME,
149                            ShoppingOrderItemTable.TABLE_COLUMNS,
150                            new PKUpgradeColumnImpl("orderItemId", false),
151                            upgradeOrderIdColumn, upgradeCartItemIdColumn);
152    
153                    upgradeTable.setCreateSQL(ShoppingOrderItemTable.TABLE_SQL_CREATE);
154    
155                    upgradeTable.updateTable();
156    
157                    // ShoppingCart
158    
159                    UpgradeColumn upgradeItemIdsColumn =
160                            new ShoppingCartItemIdsUpgradeColumnImpl(itemIdMapper);
161    
162                    upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
163                            ShoppingCartTable.TABLE_NAME, ShoppingCartTable.TABLE_COLUMNS,
164                            new PKUpgradeColumnImpl(
165                                    "cartId", new Integer(Types.VARCHAR), false),
166                            upgradeGroupIdColumn, upgradeUserIdColumn, upgradeItemIdsColumn);
167    
168                    upgradeTable.setCreateSQL(ShoppingCartTable.TABLE_SQL_CREATE);
169    
170                    upgradeTable.updateTable();
171    
172                    // ShoppingCoupon
173    
174                    UpgradeColumn upgradeLimitCategoriesColumn =
175                            new ShoppingCouponLimitCategoriesUpgradeColumnImpl(
176                                    categoryIdMapper);
177    
178                    upgradeTable = UpgradeTableFactoryUtil.getUpgradeTable(
179                            ShoppingCouponTable.TABLE_NAME, ShoppingCouponTable.TABLE_COLUMNS,
180                            new PKUpgradeColumnImpl(
181                                    "couponId", new Integer(Types.VARCHAR), false),
182                            upgradeGroupIdColumn, upgradeUserIdColumn,
183                            upgradeLimitCategoriesColumn);
184    
185                    upgradeTable.setCreateSQL(ShoppingCouponTable.TABLE_SQL_CREATE);
186    
187                    upgradeTable.updateTable();
188            }
189    
190    }