001
014
015 package com.liferay.portal.upgrade.v5_0_0.util;
016
017 import com.liferay.portal.kernel.upgrade.util.BaseUpgradeColumnImpl;
018 import com.liferay.portal.kernel.upgrade.util.UpgradeColumn;
019 import com.liferay.portal.kernel.util.StringBundler;
020 import com.liferay.portal.kernel.util.StringPool;
021
022 import java.util.HashSet;
023 import java.util.Set;
024
025
028 public class IGFolderNameColumnImpl extends BaseUpgradeColumnImpl {
029
030 public IGFolderNameColumnImpl(
031 UpgradeColumn groupIdColumn, UpgradeColumn parentFolderIdColumn) {
032
033 super("name", null);
034
035 _groupIdColumn = groupIdColumn;
036 _parentFolderIdColumn = parentFolderIdColumn;
037 }
038
039 public Set<String> getDistintNames() {
040 return _distinctNames;
041 }
042
043 @Override
044 public Object getNewValue(Object oldValue) throws Exception {
045 String newName = (String)oldValue;
046
047 while (_distinctNames.contains(_getKey(newName))) {
048 _counter++;
049
050 newName = newName + StringPool.SPACE + _counter;
051 }
052
053 _distinctNames.add(_getKey(newName));
054
055 return newName;
056 }
057
058 private String _getKey(String name) {
059 StringBundler sb = new StringBundler(5);
060
061 sb.append(_groupIdColumn.getOldValue());
062 sb.append(StringPool.UNDERLINE);
063 sb.append(_parentFolderIdColumn.getOldValue());
064 sb.append(StringPool.UNDERLINE);
065 sb.append(name);
066
067 return sb.toString();
068 }
069
070 private int _counter = 0;
071 private Set<String> _distinctNames = new HashSet<String>();
072 private UpgradeColumn _groupIdColumn;
073 private UpgradeColumn _parentFolderIdColumn;
074
075 }