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.IGImageIdUpgradeColumnImpl;
35  import com.liferay.portal.upgrade.v4_3_0.util.IGLargeImageIdUpgradeColumnImpl;
36  import com.liferay.portal.upgrade.v4_3_0.util.IGSmallImageIdUpgradeColumnImpl;
37  import com.liferay.portlet.imagegallery.model.impl.IGFolderImpl;
38  import com.liferay.portlet.imagegallery.model.impl.IGImageImpl;
39  
40  import java.sql.Types;
41  
42  /**
43   * <a href="UpgradeImageGallery.java.html"><b><i>View Source</i></b></a>
44   *
45   * @author Brian Wing Shun Chan
46   *
47   */
48  public class UpgradeImageGallery extends UpgradeProcess {
49  
50      public void upgrade() throws UpgradeException {
51          _log.info("Upgrading");
52  
53          try {
54              doUpgrade();
55          }
56          catch (Exception e) {
57              throw new UpgradeException(e);
58          }
59      }
60  
61      protected void doUpgrade() throws Exception {
62  
63          // IGFolder
64  
65          UpgradeColumn upgradeCompanyIdColumn = new SwapUpgradeColumnImpl(
66              "companyId", new Integer(Types.VARCHAR),
67              AvailableMappersUtil.getCompanyIdMapper());
68  
69          UpgradeColumn upgradeGroupIdColumn = new SwapUpgradeColumnImpl(
70              "groupId", AvailableMappersUtil.getGroupIdMapper());
71  
72          UpgradeColumn upgradeUserIdColumn = new SwapUpgradeColumnImpl(
73              "userId", new Integer(Types.VARCHAR),
74              AvailableMappersUtil.getUserIdMapper());
75  
76          PKUpgradeColumnImpl upgradePKColumn = new PKUpgradeColumnImpl(
77              "folderId", true);
78  
79          UpgradeTable upgradeTable = new DefaultUpgradeTableImpl(
80              IGFolderImpl.TABLE_NAME, IGFolderImpl.TABLE_COLUMNS,
81              upgradePKColumn, upgradeGroupIdColumn, upgradeUserIdColumn);
82  
83          upgradeTable.setCreateSQL(IGFolderImpl.TABLE_SQL_CREATE);
84  
85          upgradeTable.updateTable();
86  
87          ValueMapper folderIdMapper = new DefaultPKMapper(
88              upgradePKColumn.getValueMapper());
89  
90          AvailableMappersUtil.setIGFolderIdMapper(folderIdMapper);
91  
92          UpgradeColumn upgradeParentFolderIdColumn = new SwapUpgradeColumnImpl(
93              "parentFolderId", folderIdMapper);
94  
95          upgradeTable = new DefaultUpgradeTableImpl(
96              IGFolderImpl.TABLE_NAME, IGFolderImpl.TABLE_COLUMNS,
97              upgradeParentFolderIdColumn);
98  
99          upgradeTable.updateTable();
100 
101         UpgradeColumn upgradeFolderIdColumn = new SwapUpgradeColumnImpl(
102             "folderId", folderIdMapper);
103 
104         // IGImage
105 
106         PKUpgradeColumnImpl upgradeImageIdColumn =
107             new IGImageIdUpgradeColumnImpl(upgradeCompanyIdColumn);
108 
109         UpgradeColumn upgradeSmallImageIdColumn =
110             new IGSmallImageIdUpgradeColumnImpl(
111                 upgradeCompanyIdColumn, upgradeImageIdColumn,
112                 AvailableMappersUtil.getImageIdMapper());
113 
114         UpgradeColumn upgradeLargeImageIdColumn =
115             new IGLargeImageIdUpgradeColumnImpl(
116                 upgradeCompanyIdColumn, upgradeImageIdColumn,
117                 AvailableMappersUtil.getImageIdMapper());
118 
119         upgradeTable = new DefaultUpgradeTableImpl(
120             IGImageImpl.TABLE_NAME, IGImageImpl.TABLE_COLUMNS,
121             upgradeCompanyIdColumn, upgradeImageIdColumn, upgradeUserIdColumn,
122             upgradeFolderIdColumn, upgradeSmallImageIdColumn,
123             upgradeLargeImageIdColumn);
124 
125         upgradeTable.setCreateSQL(IGImageImpl.TABLE_SQL_CREATE);
126 
127         upgradeTable.updateTable();
128 
129         ValueMapper imageIdMapper = upgradeImageIdColumn.getValueMapper();
130 
131         AvailableMappersUtil.setIGImageIdMapper(imageIdMapper);
132     }
133 
134     private static Log _log = LogFactoryUtil.getLog(UpgradeImageGallery.class);
135 
136 }