| BlogsEntryUrlTitleUpgradeColumnImpl.java |
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.v5_1_0.util;
21
22 import com.liferay.portal.kernel.util.Validator;
23 import com.liferay.portal.upgrade.util.BaseUpgradeColumnImpl;
24 import com.liferay.portal.upgrade.util.UpgradeColumn;
25 import com.liferay.portlet.blogs.service.BlogsEntryLocalServiceUtil;
26
27 import java.util.HashSet;
28 import java.util.Set;
29
30 /**
31 * <a href="BlogsEntryUrlTitleUpgradeColumnImpl.java.html"><b><i>View Source</i>
32 * </b></a>
33 *
34 * @author Brian Wing Shun Chan
35 *
36 */
37 public class BlogsEntryUrlTitleUpgradeColumnImpl extends BaseUpgradeColumnImpl {
38
39 public BlogsEntryUrlTitleUpgradeColumnImpl(
40 UpgradeColumn entryIdColumn, UpgradeColumn titleColumn) {
41
42 super("urlTitle");
43
44 _entryIdColumn = entryIdColumn;
45 _titleColumn = titleColumn;
46 _urlTitles = new HashSet<String>();
47 }
48
49 public Object getNewValue(Object oldValue) throws Exception {
50 String oldUrlTitle = (String)oldValue;
51
52 String newUrlTitle = oldUrlTitle;
53
54 if (Validator.isNull(oldUrlTitle)) {
55 long entryId = ((Long)_entryIdColumn.getOldValue()).longValue();
56
57 String title = (String)_titleColumn.getOldValue();
58
59 newUrlTitle = getUrlTitle(entryId, title);
60
61 _urlTitles.add(newUrlTitle);
62 }
63
64 return newUrlTitle;
65 }
66
67 protected String getUrlTitle(long entryId, String title) {
68 String urlTitle = BlogsEntryLocalServiceUtil.getUrlTitle(
69 entryId, title);
70
71 String newUrlTitle = new String(urlTitle);
72
73 for (int i = 1;; i++) {
74 if (!_urlTitles.contains(newUrlTitle)) {
75 break;
76 }
77
78 newUrlTitle = urlTitle + "_" + i;
79 }
80
81 return newUrlTitle;
82 }
83
84 private UpgradeColumn _entryIdColumn;
85 private UpgradeColumn _titleColumn;
86 private Set<String> _urlTitles;
87
88 }