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.util;
16  
17  import com.liferay.portal.kernel.upgrade.StagnantRowException;
18  import com.liferay.portal.kernel.upgrade.util.ValueMapper;
19  
20  /**
21   * <a href="LazyPKUpgradeColumnImpl.java.html"><b><i>View Source</i></b></a>
22   *
23   * @author Brian Wing Shun Chan
24   */
25  public class LazyPKUpgradeColumnImpl extends PKUpgradeColumnImpl {
26  
27      public LazyPKUpgradeColumnImpl(String name) {
28          super(name, true);
29      }
30  
31      public LazyPKUpgradeColumnImpl(String name, Integer oldColumnType) {
32          super(name, oldColumnType, true);
33      }
34  
35      public Object getNewValue(Object oldValue) throws Exception {
36          ValueMapper valueMapper = getValueMapper();
37  
38          Long newValue = null;
39  
40          try {
41              newValue = (Long)valueMapper.getNewValue(oldValue);
42          }
43          catch (StagnantRowException sre) {
44              newValue = new Long(increment());
45  
46              valueMapper.mapValue(oldValue, newValue);
47          }
48  
49          return newValue;
50      }
51  
52  }