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.UpgradeColumn;
31  import com.liferay.portal.upgrade.util.UpgradeTable;
32  import com.liferay.portal.upgrade.util.ValueMapper;
33  import com.liferay.portal.upgrade.v4_3_0.util.AvailableMappersUtil;
34  import com.liferay.portal.upgrade.v4_3_0.util.ShoppingCartItemIdUpgradeColumnImpl;
35  import com.liferay.portal.upgrade.v4_3_0.util.ShoppingCartItemIdsUpgradeColumnImpl;
36  import com.liferay.portal.upgrade.v4_3_0.util.ShoppingCouponLimitCategoriesUpgradeColumnImpl;
37  import com.liferay.portlet.shopping.model.impl.ShoppingCartImpl;
38  import com.liferay.portlet.shopping.model.impl.ShoppingCategoryImpl;
39  import com.liferay.portlet.shopping.model.impl.ShoppingCouponImpl;
40  import com.liferay.portlet.shopping.model.impl.ShoppingItemFieldImpl;
41  import com.liferay.portlet.shopping.model.impl.ShoppingItemImpl;
42  import com.liferay.portlet.shopping.model.impl.ShoppingItemPriceImpl;
43  import com.liferay.portlet.shopping.model.impl.ShoppingOrderImpl;
44  import com.liferay.portlet.shopping.model.impl.ShoppingOrderItemImpl;
45  
46  import java.sql.Types;
47  
48  /**
49   * <a href="UpgradeShopping.java.html"><b><i>View Source</i></b></a>
50   *
51   * @author Brian Wing Shun Chan
52   *
53   */
54  public class UpgradeShopping extends UpgradeProcess {
55  
56      public void upgrade() throws UpgradeException {
57          _log.info("Upgrading");
58  
59          try {
60              doUpgrade();
61          }
62          catch (Exception e) {
63              throw new UpgradeException(e);
64          }
65      }
66  
67      protected void doUpgrade() throws Exception {
68  
69          // ShoppingCategory
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              "categoryId", true);
80  
81          UpgradeTable upgradeTable = new DefaultUpgradeTableImpl(
82              ShoppingCategoryImpl.TABLE_NAME, ShoppingCategoryImpl.TABLE_COLUMNS,
83              upgradePKColumn, upgradeGroupIdColumn, upgradeUserIdColumn);
84  
85          upgradeTable.setCreateSQL(ShoppingCategoryImpl.TABLE_SQL_CREATE);
86  
87          upgradeTable.updateTable();
88  
89          ValueMapper categoryIdMapper = new DefaultPKMapper(
90              upgradePKColumn.getValueMapper());
91  
92          AvailableMappersUtil.setShoppingCategoryIdMapper(categoryIdMapper);
93  
94          UpgradeColumn upgradeParentCategoryIdColumn = new SwapUpgradeColumnImpl(
95              "parentCategoryId", categoryIdMapper);
96  
97          upgradeTable = new DefaultUpgradeTableImpl(
98              ShoppingCategoryImpl.TABLE_NAME, ShoppingCategoryImpl.TABLE_COLUMNS,
99              upgradeParentCategoryIdColumn);
100 
101         upgradeTable.updateTable();
102 
103         UpgradeColumn upgradeCategoryIdColumn = new SwapUpgradeColumnImpl(
104             "categoryId", categoryIdMapper);
105 
106         // ShoppingItem
107 
108         upgradePKColumn = new PKUpgradeColumnImpl("itemId", true);
109 
110         upgradeTable = new DefaultUpgradeTableImpl(
111             ShoppingItemImpl.TABLE_NAME, ShoppingItemImpl.TABLE_COLUMNS,
112             upgradePKColumn, upgradeCategoryIdColumn, upgradeUserIdColumn);
113 
114         upgradeTable.setCreateSQL(ShoppingItemImpl.TABLE_SQL_CREATE);
115 
116         upgradeTable.updateTable();
117 
118         ValueMapper itemIdMapper = upgradePKColumn.getValueMapper();
119 
120         AvailableMappersUtil.setShoppingItemIdMapper(itemIdMapper);
121 
122         UpgradeColumn upgradeItemIdColumn = new SwapUpgradeColumnImpl(
123             "itemId", itemIdMapper);
124 
125         // ShoppingItemField
126 
127         upgradeTable = new DefaultUpgradeTableImpl(
128             ShoppingItemFieldImpl.TABLE_NAME,
129             ShoppingItemFieldImpl.TABLE_COLUMNS,
130             new PKUpgradeColumnImpl("itemFieldId", false), upgradeItemIdColumn);
131 
132         upgradeTable.setCreateSQL(ShoppingItemFieldImpl.TABLE_SQL_CREATE);
133 
134         upgradeTable.updateTable();
135 
136         // ShoppingItemPrice
137 
138         upgradeTable = new DefaultUpgradeTableImpl(
139             ShoppingItemPriceImpl.TABLE_NAME,
140             ShoppingItemPriceImpl.TABLE_COLUMNS,
141             new PKUpgradeColumnImpl("itemPriceId", false), upgradeItemIdColumn);
142 
143         upgradeTable.setCreateSQL(ShoppingItemPriceImpl.TABLE_SQL_CREATE);
144 
145         upgradeTable.updateTable();
146 
147         // ShoppingOrder
148 
149         upgradePKColumn = new PKUpgradeColumnImpl(
150             "orderId", new Integer(Types.VARCHAR), true);
151 
152         upgradeTable = new DefaultUpgradeTableImpl(
153             ShoppingOrderImpl.TABLE_NAME, ShoppingOrderImpl.TABLE_COLUMNS,
154             upgradePKColumn, upgradeGroupIdColumn, upgradeUserIdColumn);
155 
156         upgradeTable.setCreateSQL(ShoppingOrderImpl.TABLE_SQL_CREATE);
157 
158         upgradeTable.updateTable();
159 
160         ValueMapper orderIdMapper = upgradePKColumn.getValueMapper();
161 
162         UpgradeColumn upgradeOrderIdColumn = new SwapUpgradeColumnImpl(
163             "orderId", new Integer(Types.VARCHAR), orderIdMapper);
164 
165         // ShoppingOrderItem
166 
167         UpgradeColumn upgradeCartItemIdColumn =
168             new ShoppingCartItemIdUpgradeColumnImpl(itemIdMapper);
169 
170         upgradeTable = new DefaultUpgradeTableImpl(
171             ShoppingOrderItemImpl.TABLE_NAME,
172             ShoppingOrderItemImpl.TABLE_COLUMNS,
173             new PKUpgradeColumnImpl("orderItemId", false),
174             upgradeOrderIdColumn, upgradeCartItemIdColumn);
175 
176         upgradeTable.setCreateSQL(ShoppingOrderItemImpl.TABLE_SQL_CREATE);
177 
178         upgradeTable.updateTable();
179 
180         // ShoppingCart
181 
182         UpgradeColumn upgradeItemIdsColumn =
183             new ShoppingCartItemIdsUpgradeColumnImpl(itemIdMapper);
184 
185         upgradeTable = new DefaultUpgradeTableImpl(
186             ShoppingCartImpl.TABLE_NAME, ShoppingCartImpl.TABLE_COLUMNS,
187             new PKUpgradeColumnImpl(
188                 "cartId", new Integer(Types.VARCHAR), false),
189             upgradeGroupIdColumn, upgradeUserIdColumn, upgradeItemIdsColumn);
190 
191         upgradeTable.setCreateSQL(ShoppingCartImpl.TABLE_SQL_CREATE);
192 
193         upgradeTable.updateTable();
194 
195         // ShoppingCoupon
196 
197         UpgradeColumn upgradeLimitCategoriesColumn =
198             new ShoppingCouponLimitCategoriesUpgradeColumnImpl(
199                 categoryIdMapper);
200 
201         upgradeTable = new DefaultUpgradeTableImpl(
202             ShoppingCouponImpl.TABLE_NAME, ShoppingCouponImpl.TABLE_COLUMNS,
203             new PKUpgradeColumnImpl(
204                 "couponId", new Integer(Types.VARCHAR), false),
205             upgradeGroupIdColumn, upgradeUserIdColumn,
206             upgradeLimitCategoriesColumn);
207 
208         upgradeTable.setCreateSQL(ShoppingCouponImpl.TABLE_SQL_CREATE);
209 
210         upgradeTable.updateTable();
211     }
212 
213     private static Log _log = LogFactoryUtil.getLog(UpgradeShopping.class);
214 
215 }