1   /**
2    * Copyright (c) 2000-2010 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   *
12   *
13   */
14  
15  package com.liferay.portal.upgrade.v4_3_0.util;
16  
17  import com.liferay.portal.kernel.upgrade.util.BaseUpgradeColumnImpl;
18  import com.liferay.portal.kernel.upgrade.util.UpgradeColumn;
19  import com.liferay.portal.kernel.upgrade.util.ValueMapper;
20  import com.liferay.portal.util.PortletKeys;
21  
22  /**
23   * <a href="PrefsPlidUpgradeColumnImpl.java.html"><b><i>View Source</i></b></a>
24   *
25   * @author Brian Wing Shun Chan
26   */
27  public class PrefsPlidUpgradeColumnImpl extends BaseUpgradeColumnImpl {
28  
29      public PrefsPlidUpgradeColumnImpl(
30          PrefsOwnerIdUpgradeColumnImpl ownerIdColumn,
31          UpgradeColumn layoutIdColumn, ValueMapper layoutPlidMapper) {
32  
33          super("plid");
34  
35          _ownerIdColumn = ownerIdColumn;
36          _layoutIdColumn = layoutIdColumn;
37          _layoutPlidMapper = layoutPlidMapper;
38      }
39  
40      public Object getNewValue(Object oldValue) throws Exception {
41          Long oldGroupId = _ownerIdColumn.getOldGroupId();
42          Long newGroupId = _ownerIdColumn.getNewGroupId();
43          Boolean privateLayout = _ownerIdColumn.isPrivateLayout();
44          String layoutId = (String)_layoutIdColumn.getOldValue();
45  
46          if ((!layoutId.equals("SHARED")) && (oldGroupId != null) &&
47              (newGroupId != null) && (privateLayout != null)) {
48  
49              String oldOwnerId = null;
50  
51              if (privateLayout.booleanValue()) {
52                  oldOwnerId = "PRI.";
53              }
54              else {
55                  oldOwnerId = "PUB.";
56              }
57  
58              oldOwnerId += oldGroupId.longValue();
59  
60              String oldPlidValue =
61                  "{layoutId=" + layoutId + ", ownerId=" + oldOwnerId + "}";
62  
63              return _layoutPlidMapper.getNewValue(oldPlidValue);
64          }
65          else {
66              return new Long(PortletKeys.PREFS_PLID_SHARED);
67          }
68      }
69  
70      private PrefsOwnerIdUpgradeColumnImpl _ownerIdColumn;
71      private UpgradeColumn _layoutIdColumn;
72      private ValueMapper _layoutPlidMapper;
73  
74  }