1
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
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 }