io.seldon.memcache.MemCacheKeys.java Source code

Java tutorial

Introduction

Here is the source code for io.seldon.memcache.MemCacheKeys.java

Source

/*
 * Seldon -- open source prediction engine
 * =======================================
 *
 * Copyright 2011-2015 Seldon Technologies Ltd and Rummble Ltd (http://www.seldon.io/)
 *
 * ********************************************************************************************
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *        http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 * ********************************************************************************************
 */

package io.seldon.memcache;

import io.seldon.recommendation.CFAlgorithm;
import io.seldon.util.CollectionTools;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Set;

import org.apache.commons.lang.StringUtils;

public class MemCacheKeys {

    private enum keys {
        UserTrustNetwork, ContentTrustNetwork, RummbleClient, SemanticVector, RecommendationNetwork, ConsumerBean, ItemBean, ItemsBeanNew, ItemSimilarityGraphBean, OpinionBean, OpinionsBean, RecommendationsBean, TokenBean, UserBean, UsersBean, UsterTrustGraphBean, DimensionBean, ActionBean, ActionsBean, ItemActionsBean, UserInternalId, ItemInternalId, UserClientId, ItemClientId, DimensionsBean, ItemsBeanByNameNew, ItemAttrType, ItemType, ActionType, ItemDimensions, InternalActionsBean, FacebookFriends, FacebookLikes, DBPediaSearch, RecommendedUsers, DimensionByItemType, DemographicBean, DBPediaHits, ItemSemanticAttribute, CooccurenceNetwork, ClusterCountForItems, ClustersForUser, TopClusterCounts, TopGlobalClusterCounts, TopClusterCountsForDimension, TopClusterCountsForTag, WebHitsForUser, ClusterCount, ClusterCountDecay, SharingRecommendation, ActionHistory, RankedItems, ABTesting, DynamicParameters, ShortTermClusters, SharingRecommendationsForItemSet, RecommendedItems, ExcludedItemsForRecommendations, RecommendationUUIDNew, RecommendationUUIDDim, RecentRecsForUsers, RecentItemsJSON, RecentItemsDimJSON, RecentItemsWithTagsJSON, ItemCluster, RecommendationUserMaxCounter, DBPediaHasBeenSearched, SocialPredictRecommendedItems, DimensionForAttrName, ItemTags, UserTags, ElphPrediction, itemRecommender, itemSimilarity, TagsForItem, TagItemCount, TagsItemCounts, SimilarUsers, InteractionBean, InteractionsBean, FacebookUsersAlgRecKey, FacebookUsersRecKey, FacebookUsersDecayFunctionKey, SharingRecommendationForKeywords, MostPopularItems, PopularItemsJSON, ActionFullHistory, ExplicitItemsIncluder, ItemAttrAndDims, ItemBeanLocale, StaticRecommendations, Explanations
    };

    public static String getUserTrustNetworkKey(String client, long user, int type) {
        return "" + keys.UserTrustNetwork + ":" + client + ":" + user + ":" + type;
    }

    public static String getRecommendationsKey(String client, long user, int type) {
        return "" + keys.RecommendationNetwork + ":" + client + ":" + type + ":" + user;
    }

    public static String getContentTrustNetworkKey(String client, long user, int type) {
        return "" + keys.ContentTrustNetwork + ":" + client + ":" + user + ":" + type;
    }

    public static String getRummbleClientKey(String name) {
        return "" + keys.RummbleClient + ":" + name;
    }

    public static String getSemanticVectorKey(String client, String prefix, long user) {
        return "" + keys.SemanticVector + ":" + client + ":" + prefix + ":" + user;
    }

    public static String getConsumerBeanKey(String client, String key) {
        return "" + keys.ConsumerBean + ":" + client + ":" + key;
    }

    public static String getItemsBeanKey(String client, boolean full, String sort, int dimension) {
        return "" + keys.ItemsBeanNew + ":" + client + ":" + full + ":" + sort + ":" + dimension;
    }

    public static String getItemsBeanKey(String client, String keywords, boolean full) {
        return "" + keys.ItemsBeanNew + ":" + client + ":" + keywords + ":" + full;
    }

    public static String getItemBeanKey(String client, String id, boolean full) {
        return "" + keys.ItemsBeanNew + ":" + client + ":" + id + ":" + full;
    }

    public static String getItemBeanKeyWithLocale(String client, String id, boolean full, String locale) {
        return "" + keys.ItemBeanLocale + ":" + client + ":" + id + ":" + full + ":" + locale;
    }

    public static String getItemSimilarityGraphBeanKey(String client, String id) {
        return "" + keys.ItemSimilarityGraphBean + ":" + client + ":" + id;
    }

    public static String getTokenBeanKey(String key) {
        return "" + keys.TokenBean + ":" + key;
    }

    public static String getUserBeanKey(String client, String id, boolean full) {
        return "" + keys.UserBean + ":" + client + ":" + id + ":" + full;
    }

    public static String getUsersBeanKey(String client, boolean full) {
        return "" + keys.UsersBean + ":" + client + ":" + full;
    }

    public static String getUserTrustGraphBeanKey(String client, String id) {
        return "" + keys.UsterTrustGraphBean + ":" + client + ":" + id;
    }

    public static String getRecommendationsBeanKey(String client, CFAlgorithm algorithm, String id, String keywords,
            boolean full, int dimension) {
        return "" + keys.RecommendationsBean + ":" + client + ":" + algorithm.toString() + ":" + id + ":" + keywords
                + ":" + full + ":" + dimension;
    }

    public static String getRecommendationsBeanKey(String client, CFAlgorithm algorithm, String id, Integer type,
            int dimensionId, boolean full) {
        return "" + keys.RecommendationsBean + ":" + client + ":" + algorithm.toString() + ":" + id + ":" + type
                + ":" + dimensionId + ":" + full;
    }

    public static String getRecommendedItemsKey(String client, CFAlgorithm algorithm, String userId, int typeId,
            int dimensionId, boolean full) {
        return "" + keys.RecommendedItems + ":" + client + ":" + algorithm.toString() + ":" + userId + ":" + typeId
                + ":" + dimensionId + ":" + full;
    }

    public static String getRecommendedItemsPerAlgKey(String client, String algName, Long user, int dimensionId) {
        return "" + keys.RecommendedItems + ":" + client + ":" + algName + ":" + user.toString() + ":"
                + dimensionId;
    }

    public static String getDimensionBeanKey(String client, int id) {
        return "" + keys.DimensionBean + ":" + client + ":" + id;
    }

    public static String getDimensionBeanKey(String client, int attr, int val) {
        return "" + keys.DimensionBean + ":" + client + ":" + attr + ":" + val;
    }

    public static String getDimensionBeanKey(String client, String attrName, String valName) {
        return "" + keys.DimensionBean + ":" + client + ":" + attrName + ":" + valName;
    }

    public static String getDemographicBeanKey(String client, String attrName, String valName) {
        return "" + keys.DemographicBean + ":" + client + ":" + attrName + ":" + valName;
    }

    public static String getActionBeanKey(String client, long actionId, boolean full, boolean ext) {
        return "" + keys.ActionBean + ":" + client + ":" + ext + ":" + actionId;
    }

    public static String getUserActionsBeanKey(String client, String userId, boolean full, boolean ext) {
        return "" + keys.ActionsBean + ":" + client + ":" + ":" + full + ":" + ext + ":" + userId;
    }

    public static String getUserItemActionBeanKey(String client, String userId, String itemId, boolean full,
            boolean ext) {
        return "" + keys.ActionsBean + ":" + client + ":" + userId + ":" + itemId + ":" + full + ":" + ext;
    }

    public static String getItemActionsBeanKey(String client, String itemId, boolean full, boolean ext) {
        return "" + keys.ItemActionsBean + ":" + client + ":" + full + ":" + ext + ":" + itemId;
    }

    public static String getUserInternalId(String client, String id) {
        return "" + keys.UserInternalId + ":" + client + ":" + id;
    }

    public static String getItemInternalId(String client, String id) {
        return "" + keys.ItemInternalId + ":" + client + ":" + id;
    }

    public static String getUserClientId(String client, long id) {
        return "" + keys.UserClientId + ":" + client + ":" + id;
    }

    public static String getItemClientId(String client, long id) {
        return "" + keys.ItemClientId + ":" + client + ":" + id;
    }

    public static String getDimensionsBeanKey(String client) {
        return "" + keys.DimensionsBean + ":" + client;
    }

    public static String getItemsBeanKeyByName(String client, boolean full, String name, int dimension) {
        return "" + keys.ItemsBeanByNameNew + ":" + client + ":" + full + ":" + name + ":" + dimension;
    }

    public static String getItemAttrType(String client, int itemType, String name) {
        return "" + keys.ItemAttrType + ":" + client + ":" + itemType + ":" + name;
    }

    public static String getItemTypeByName(String client, String name) {
        return "" + keys.ItemType + ":" + client + ":" + name;
    }

    public static String getItemTypeById(String client, int id) {
        return "" + keys.ItemType + ":" + client + ":" + id;
    }

    public static String getActionTypeByName(String client, String name) {
        return "" + keys.ActionType + ":" + client + ":" + name;
    }

    public static String getActionTypeById(String client, int id) {
        return "" + keys.ActionType + ":" + client + ":" + id;
    }

    public static String getItemDimensions(String client, long itemId) {
        return "" + keys.ItemDimensions + ":" + client + ":" + itemId;
    }

    public static String getItemCluster(String client, long itemId) {
        return "" + keys.ItemCluster + ":" + client + ":" + itemId;
    }

    public static String getInternalUserItemActionBeanKey(String client, long userId, long itemId, boolean full,
            boolean ext) {
        return "" + keys.InternalActionsBean + ":" + client + ":" + userId + ":" + itemId + ":" + full + ":" + ext;
    }

    public static String getDimensionBeanByItemTypeKey(String client, int itemType) {
        return "" + keys.DimensionByItemType + ":" + client + ":" + itemType;
    }

    public static String getFacebookFriends(String client, long userId) {
        return "" + keys.FacebookFriends + ":" + client + ":" + userId;
    }

    public static String getFacebookLikes(String client, long userId) {
        return "" + keys.FacebookLikes + ":" + client + ":" + userId;
    }

    public static String getDBPediaHits(String client, String query) {
        return "" + keys.DBPediaHits + ":" + client + ":" + query;
    }

    public static String getRecommendedUsers(String client, String userId, String itemId, String linkType,
            String keywords) {
        return "" + keys.RecommendedUsers + ":" + client + ":" + userId + ":" + itemId + ":" + linkType + ":"
                + keywords;
    }

    public static String getUsersBeanKey(String client, boolean full, String name) {
        return "" + keys.UsersBean + ":" + client + ":" + full + ":" + name;
    }

    public static String getDemographicBeanKey(String client, int id) {
        return "" + keys.DemographicBean + ":" + client + ":" + id;
    }

    public static String getActionType(String client, int id) {
        return "" + keys.ActionType + ":" + client + ":" + id;
    }

    public static String getActionTypes(String client) {
        return "" + keys.ActionType + ":" + client;
    }

    public static String getItemTypes(String client) {
        return "" + keys.ItemType + ":" + client;
    }

    public static String getItemSemanticAttributes(String client, long itemId) {
        return "" + keys.ItemSemanticAttribute + ":" + client + ":" + itemId;
    }

    public static String getCooccurenceNetworkKey(String client, long user) {
        return "" + keys.CooccurenceNetwork + ":" + client + ":" + user;
    }

    public static String getClusterCountForItems(String client, int clusterId, List<Long> items, long version) {
        ArrayList<Long> itemKeys = new ArrayList<>(items);
        Collections.sort(itemKeys); // to provide consistent order
        StringBuffer b = new StringBuffer("" + keys.ClusterCountForItems);
        b.append(":");
        b.append(client);
        b.append(":");
        b.append(clusterId);
        b.append(":");
        b.append(version);
        for (Long item : itemKeys)
            b.append(":").append(item);
        return b.toString();
    }

    public static String getClustersForUser(String client, long userId) {
        return "" + keys.ClustersForUser + ":" + client + ":" + userId;
    }

    public static String getShortTermClustersForUser(String client, long userId) {
        return "" + keys.ShortTermClusters + ":" + client + ":" + userId;
    }

    public static String getWebHitsForUser(String client, long userId, String linkType) {
        return "" + keys.WebHitsForUser + ":" + client + ":" + userId + ":" + linkType;
    }

    public static String getClusterCountKey(String client, long clusterId, long itemId, long clusterTimestamp) {
        return "" + keys.ClusterCount + ":" + client + ":" + clusterId + ":" + itemId + ":" + clusterTimestamp;
    }

    public static String getClusterCountDecayKey(String client, long clusterId, long itemId,
            long clusterTimestamp) {
        return "" + keys.ClusterCountDecay + ":" + client + ":" + clusterId + ":" + itemId + ":" + clusterTimestamp;
    }

    public static String getSharingRecommendationKey(String client, long userId, long itemId, String linkType) {
        return "" + keys.SharingRecommendation + ":" + client + ":" + userId + ":" + itemId + ":" + linkType;
    }

    public static String getSharingRecommendationKey(String client, long userId, List<Long> items) {
        ArrayList<Long> itemKeys = new ArrayList<>(items);
        Collections.sort(itemKeys);
        return "" + keys.SharingRecommendation + ":" + client + ":" + userId + ":"
                + CollectionTools.join(itemKeys, ",");
    }

    public static String getActionHistory(String client, long userId) {
        return "" + keys.ActionHistory + ":" + client + ":" + userId;
    }

    public static String getActionFullHistory(String client, long userId) {
        return "" + keys.ActionFullHistory + ":" + client + ":" + userId;
    }

    public static String getRankedItemsKey(String client, long cfalgorithm, String userId, List<String> items) {
        ArrayList<String> itemKeys = new ArrayList<>(items);
        Collections.sort(itemKeys);
        return "" + keys.RankedItems + ":" + client + ":" + cfalgorithm + ":" + userId + ":"
                + CollectionTools.join(itemKeys, ",");
    }

    public static String getABTestingUser(String consumer, String clientUserId, String testKey) {
        return "" + keys.ABTesting + ":" + consumer + ":" + testKey + ":" + clientUserId;
    }

    public static String getDynamicParameters(String consumer) {
        return "" + keys.DynamicParameters + ":" + consumer;
    }

    public static String getSharingRecommendationsForItemSetKey(String client, long userId) {
        return "" + keys.SharingRecommendationsForItemSet.name() + ":" + client + ":" + userId;
    }

    public static String getTopClusterCounts(String client, int clusterId, int limit) {
        return "" + keys.TopClusterCounts.name() + ":" + client + ":" + clusterId + ":" + limit;
    }

    public static String getTopClusterCounts(String client, int limit) {
        return "" + keys.TopGlobalClusterCounts.name() + ":" + client + ":" + limit;
    }

    public static String getTopClusterCountsForDimension(String client, int clusterId, Set<Integer> dimensions,
            int limit) {
        return "" + keys.TopClusterCounts.name() + ":" + client + ":" + clusterId + ":"
                + StringUtils.join(dimensions, ",") + ":" + limit;
    }

    public static String getTopClusterCountsForTwoDimensions(String client, int clusterId, Set<Integer> dimensions,
            int dim2, int limit) {
        return "" + keys.TopClusterCounts.name() + ":" + client + ":" + clusterId + ":"
                + StringUtils.join(dimensions, ",") + ":" + dim2 + ":" + limit;
    }

    public static String getTopClusterCountsForDimensionAlg(String client, String alg, int clusterId,
            Set<Integer> dimensions, int limit) {
        return "" + keys.TopClusterCounts.name() + ":" + client + ":" + alg + ":" + clusterId + ":"
                + StringUtils.join(dimensions, ",") + ":" + limit;
    }

    public static String getTopClusterCountsForTagAndDimension(String client, String tag, int tagAttrId,
            Set<Integer> dimensions, int limit) {
        return "" + keys.TopClusterCountsForTag.name() + ":" + client + ":" + tag + ":" + tagAttrId + ":"
                + StringUtils.join(dimensions, ",") + ":" + limit;
    }

    public static String getTopClusterCountsForTagAndTwoDimensions(String client, String tag, int tagAttrId,
            Set<Integer> dimensions, int dimension2, int limit) {
        return "" + keys.TopClusterCountsForTag.name() + ":" + client + ":" + tag + ":" + tagAttrId + ":"
                + StringUtils.join(dimensions, ",") + ":" + dimension2 + ":" + limit;
    }

    public static String getTopClusterCountsForTag(String client, String tag, int tagAttrId, int limit) {
        return "" + keys.TopClusterCountsForTag.name() + ":" + client + ":" + tag + ":" + tagAttrId + ":" + limit;
    }

    public static String getTopClusterCountsForDimension(String client, Set<Integer> dimensions, int limit) {
        return "" + keys.TopGlobalClusterCounts.name() + ":" + client + ":" + StringUtils.join(dimensions, ",")
                + ":" + limit;
    }

    public static String getTopClusterCountsForTwoDimensions(String client, Set<Integer> dimensions, int dimension2,
            int limit) {
        return "" + keys.TopGlobalClusterCounts.name() + ":" + client + ":" + StringUtils.join(dimensions, ",")
                + ":" + dimension2 + ":" + limit;
    }

    public static String getExcludedItemsForRecommendations(String client, String userId) {
        return "" + keys.ExcludedItemsForRecommendations.name() + ":" + client + ":" + userId;
    }

    public static String getRecommendationListUUID(String client, String userId, int counter, String recTag) {
        return "" + keys.RecommendationUUIDNew.name() + ":" + client + ":" + userId + ":" + counter + ":" + recTag;
    }

    public static String getRecommendationListUUIDWithDimension(String client, int dimension, String userId,
            int counter) {
        return "" + keys.RecommendationUUIDDim.name() + ":" + client + ":" + userId + ":" + dimension + ":"
                + counter;
    }

    public static String getRecommendationListUserCounter(String client, Set<Integer> dimensions, String userId) {
        return "" + keys.RecommendationUserMaxCounter.name() + ":" + client + ":" + userId + ":"
                + StringUtils.join(dimensions, ",");
    }

    public static String getRecentRecsForUser(String client, String userId, Set<Integer> dimensions) {
        return "" + keys.RecentRecsForUsers.name() + ":" + client + ":" + userId + ":"
                + StringUtils.join(dimensions, ",");
    }

    public static String getRecentItems(String client, Set<Integer> dimensions, int size) {
        return "" + keys.RecentItemsJSON.name() + ":" + client + ":" + StringUtils.join(dimensions, ",") + ":"
                + size;
    }

    public static String getRecentItemsInDimension(String client, Set<Integer> dimensions, int dimId, int size) {
        return "" + keys.RecentItemsDimJSON.name() + ":" + client + ":" + StringUtils.join(dimensions, ",") + ":"
                + dimId + ":" + size;
    }

    public static String getRecentItemsWithTags(String client, int tagAttrId, int tagKey, int size) {
        return "" + keys.RecentItemsWithTagsJSON.name() + ":" + client + ":" + ":" + tagAttrId + ":" + tagKey + ":"
                + size;
    }

    public static String getPopularItems(String client, Set<Integer> dimensions, int size) {
        return "" + keys.PopularItemsJSON.name() + ":" + client + ":" + StringUtils.join(dimensions, ",") + ":"
                + size;
    }

    public static String getDbpediaHasBeenSearched(String client, long itemId) {
        return "" + keys.DBPediaHasBeenSearched.name() + ":" + client + ":" + itemId;
    }

    public static String getSocialPredictRecommendedItems(String client, long userId, long itemsHashCode) {
        return "" + keys.SocialPredictRecommendedItems.name() + ":" + client + ":" + userId + ":" + itemsHashCode;
    }

    public static String getDimensionForAttrName(String client, long itemId, String category) {
        return "" + keys.DimensionForAttrName + ":" + client + ":" + itemId + ":" + category;
    }

    public static String getItemTags(String client, int numItems, int dimension) {
        return "" + keys.ItemTags.name() + ":" + client + ":" + numItems + ":" + dimension;
    }

    public static String getUserTags(String client, long userId) {
        return "" + keys.UserTags.name() + ":" + client + ":" + userId;
    }

    public static String getElphPrediction(String client, List<Long> recentItems) {
        return "" + keys.ElphPrediction + ":" + client + ":" + CollectionTools.join(recentItems, ",");
    }

    public static String getItemRecommender(String client, long userId, int dimension, int max) {
        return "" + keys.itemRecommender + ":" + client + ":" + userId + ":" + dimension + ":" + max;
    }

    public static String getItemSimilarity(String client, long itemId, Set<Integer> dimensions, int max) {
        return "" + keys.itemSimilarity + ":" + client + ":" + itemId + ":" + StringUtils.join(dimensions, ",")
                + ":" + max;
    }

    public static String getItemTags(String client, long itemId, int attrId) {
        return "" + keys.TagsForItem + ":" + client + ":" + itemId + ":" + attrId;
    }

    public static String getTagsItemCounts(String client, Set<String> tags, int dimension) {
        ArrayList<String> tlist = new ArrayList<>(tags);
        Collections.sort(tlist);
        String normalizedTagKey = CollectionTools.join(tlist, ":");
        return "" + keys.TagsItemCounts + ":" + client + ":" + dimension + ":" + normalizedTagKey;
    }

    public static String getTagItemCount(String client, String tag, int dimension) {
        return "" + keys.TagItemCount + ":" + client + ":" + dimension + ":" + tag;
    }

    public static String getSimilarUsers(String client, long userId, int type, int filterType) {
        return "" + keys.SimilarUsers + ":" + client + ":" + userId + ":" + type + ":" + filterType;
    }

    public static String getSharingRecommendationForKeywords(String client, long userId, List<String> keywords) {
        ArrayList<String> keywordSet = new ArrayList<>(keywords);
        Collections.sort(keywordSet);
        return "" + keys.SharingRecommendationForKeywords + ":" + client + ":" + userId
                + CollectionTools.join(keywordSet, ",");
    }

    public static String getInteractionBeanKey(String client, String user1, String user2, int type, int subType) {
        return "" + keys.InteractionBean + ":" + user1 + ":" + user2 + ":" + type + ":" + subType;
    }

    public static String getInteractionsBeanKey(String client, String user1, int type) {
        return "" + keys.InteractionsBean + ":" + user1 + ":" + type;
    }

    public static String getFacebookUsersAlgRecKey(String service, String client, String algName, String userId,
            int algParams) {
        return "" + keys.FacebookUsersAlgRecKey + ":" + service + ":" + client + ":" + algName + ":" + userId + ":"
                + algParams;
    }

    public static String getFacebookUsersRecKey(String service, String client, String userId, Integer strategyCode,
            int algParamsCode) {
        return "" + keys.FacebookUsersRecKey + ":" + service + ":" + client + ":" + userId + ":" + strategyCode
                + ":" + algParamsCode;
    }

    public static String getFacebookUsersDecayFunctionKey(String service, String client, String userId,
            String decayFunctionType) {
        return "" + keys.FacebookUsersDecayFunctionKey + ":" + service + ":" + client + ":" + userId + ":"
                + decayFunctionType;
    }

    public static String getFacebookUsersImpressionsKey(String decayFunctionType, String service, String client,
            String userId) {
        return "" + keys.FacebookUsersDecayFunctionKey + ":" + decayFunctionType + ":" + service + ":" + client
                + ":" + userId;
    }

    public static String getMostPopularItems(String client, int dimension) {
        return "" + keys.MostPopularItems + ":" + client + ":" + dimension;
    }

    public static String getMostPopularItems(String client) {
        return "" + keys.MostPopularItems + ":" + client;
    }

    public static String getExplicitItemsIncluderKey(String client, Set<Long> items) {
        return "" + keys.ExplicitItemsIncluder + ":" + client + ":" + items.hashCode();
    }

    public static String getItemAttrDims(String client, long itemId) {
        return "" + keys.ItemAttrAndDims + ":" + client + ":" + itemId;
    }

    public static String getStaticRecommendationsKey(String client, long userId, Set<Integer> dimensions, int max) {
        return "" + keys.StaticRecommendations + ":" + client + ":" + userId + ":"
                + StringUtils.join(dimensions, ",") + ":" + max;
    }

    public static String getExplanationsKey(String clientName, String algKey, String locale) {
        return "" + keys.Explanations + ":" + clientName + ":" + algKey + ":" + locale;
    }

}