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.util;
21  
22  import com.liferay.portal.kernel.util.GetterUtil;
23  import com.liferay.portal.upgrade.StagnantRowException;
24  import com.liferay.portal.upgrade.util.BaseUpgradeColumnImpl;
25  import com.liferay.portal.upgrade.util.UpgradeColumn;
26  import com.liferay.portal.upgrade.util.ValueMapper;
27  
28  /**
29   * <a href="LayoutOwnerIdUpgradeColumnImpl.java.html"><b><i>View Source</i></b>
30   * </a>
31   *
32   * @author Brian Wing Shun Chan
33   *
34   */
35  public class LayoutOwnerIdUpgradeColumnImpl extends BaseUpgradeColumnImpl {
36  
37      public LayoutOwnerIdUpgradeColumnImpl(
38          String name, UpgradeColumn upgradeColumn, ValueMapper groupIdMapper) {
39  
40          super(name);
41  
42          _name = name;
43          _upgradeColumn = upgradeColumn;
44          _groupIdMapper = groupIdMapper;
45      }
46  
47      public Object getNewValue(Object oldValue) throws Exception {
48          _groupId = null;
49          _privateLayout = null;
50  
51          String ownerId = (String)_upgradeColumn.getOldValue();
52  
53          if (_name.equals("groupId")) {
54              if (ownerId.startsWith("PUB.") || ownerId.startsWith("PRI.")) {
55                  Long groupId = new Long(GetterUtil.getLong(
56                      ownerId.substring(4, ownerId.length())));
57  
58                  _groupId = (Long)_groupIdMapper.getNewValue(groupId);
59  
60                  return _groupId;
61              }
62              else {
63                  throw new StagnantRowException(ownerId);
64              }
65          }
66          else {
67              if (ownerId.startsWith("PUB.")) {
68                  _privateLayout = Boolean.FALSE;
69  
70                  return _privateLayout;
71              }
72              else if (ownerId.startsWith("PRI.")) {
73                  _privateLayout = Boolean.TRUE;
74  
75                  return _privateLayout;
76              }
77              else {
78                  throw new StagnantRowException(ownerId);
79              }
80          }
81      }
82  
83      public Long getGroupId() {
84          return _groupId;
85      }
86  
87      public Boolean isPrivateLayout() {
88          return _privateLayout;
89      }
90  
91      private String _name;
92      private UpgradeColumn _upgradeColumn;
93      private ValueMapper _groupIdMapper;
94      private Long _groupId;
95      private Boolean _privateLayout;
96  
97  }