001
014
015 package com.liferay.portal.cache.key;
016
017 import com.liferay.portal.kernel.cache.key.CacheKeyGenerator;
018 import com.liferay.portal.kernel.util.StringBundler;
019
020
024 public class HashCodeCacheKeyGenerator extends BaseCacheKeyGenerator {
025
026 @Override
027 public CacheKeyGenerator clone() {
028 return new HashCodeCacheKeyGenerator();
029 }
030
031 public Long getCacheKey(String key) {
032 long hashCode = 0;
033
034 for (int i = 0; i < key.length(); i++) {
035 hashCode = 31 * hashCode + key.charAt(i);
036 }
037
038 return hashCode;
039 }
040
041 public Long getCacheKey(String[] keys) {
042 long hashCode = 0;
043
044 for (String key : keys) {
045 if (key == null) {
046 continue;
047 }
048
049 for (int i = 0; i < key.length(); i++) {
050 hashCode = 31 * hashCode + key.charAt(i);
051 }
052 }
053
054 return hashCode;
055 }
056
057 public Long getCacheKey(StringBundler sb) {
058 long hashCode = 0;
059
060 for (int i = 0; i < sb.index(); i++) {
061 String key = sb.stringAt(i);
062
063 for (int j = 0; j < key.length(); j++) {
064 hashCode = 31 * hashCode + key.charAt(j);
065 }
066 }
067
068 return hashCode;
069 }
070
071 }