/**Copyright 2010 Research Studios Austria Forschungsgesellschaft mBH * * This file is part of easyrec. * * easyrec is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * easyrec is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with easyrec. If not, see <http://www.gnu.org/licenses/>. */ package org.easyrec.service.domain; import org.easyrec.model.core.*; import org.easyrec.model.core.transfer.IAConstraintVO; import java.util.HashMap; import java.util.List; import java.util.Set; /** * Provides methods to convert a typed (string based) VO into an integer based VO. * <p/> * <p><b>Company: </b> * SAT, Research Studios Austria</p> * <p/> * <p><b>Copyright: </b> * (c) 2007</p> * <p/> * <p><b>last modified:</b><br/> * $Author: dmann $<br/> * $Date: 2011-12-20 15:22:22 +0100 (Di, 20 Dez 2011) $<br/> * $Revision: 18685 $</p> * * @author Roman Cerny */ public interface TypeMappingService { // constants for all possible types (well known types; convenience constants) public final static String ACTION_TYPE_ADD_TO_PLAYLIST = "ADD_TO_PLAYLIST"; public final static String ACTION_TYPE_BUY = "BUY"; public final static String ACTION_TYPE_PREVIEW = "PREVIEW"; public final static String ACTION_TYPE_RATE = "RATE"; public final static String ACTION_TYPE_SEARCH = "SEARCH"; public final static String ACTION_TYPE_VIEW = "VIEW"; public final static String ACTION_TYPE_CHOOSE_TOPIC = "CHOOSE_TOPIC"; public final static String AGGREGATE_TYPE_AVERAGE = "AVERAGE"; public final static String AGGREGATE_TYPE_FIRST = "FIRST"; public final static String AGGREGATE_TYPE_MAXIMUM = "MAXIMUM"; public final static String AGGREGATE_TYPE_MOST_FREQUENT = "MOST_FREQUENT"; public final static String AGGREGATE_TYPE_NEWEST = "NEWEST"; public final static String AGGREGATE_TYPE_OLDEST = "OLDEST"; public final static String ASSOC_TYPE_BOUGHT_TOGETHER = "BOUGHT_TOGETHER"; public final static String ASSOC_TYPE_COLL_TOGETHER = "COLL_TOGETHER"; public final static String ASSOC_TYPE_IS_ELEMENT_OF = "IS_ELEMENT_OF"; public final static String ASSOC_TYPE_IS_SIMILAR_TO = "IS_SIMILAR_TO"; public final static String ASSOC_TYPE_LIKES = "LIKES"; public final static String ASSOC_TYPE_RATED_TOGETHER = "RATED_TOGETHER"; public final static String ASSOC_TYPE_SEARCHED_TOGETHER = "SEARCHED_TOGETHER"; public final static String ASSOC_TYPE_SOUNDS_SIMILAR = "SOUNDS_SIMILAR"; public final static String ASSOC_TYPE_VIEWED_TOGETHER = "VIEWED_TOGETHER"; public final static String ASSOC_TYPE_GOOD_RATED_TOGETHER = "GOOD_RATED_TOGETHER"; public final static String ASSOC_TYPE_USER_TO_ITEM = "USER_TO_ITEM"; public final static String ITEM_TYPE_ALBUM = "ALBUM"; public final static String ITEM_TYPE_ARTIST = "ARTIST"; public final static String ITEM_TYPE_ASSET = "ASSET"; public final static String ITEM_TYPE_CLUSTER = "CLUSTER"; public final static String ITEM_TYPE_GENRE_CLUSTER = "GENRE_CLUSTER"; public final static String ITEM_TYPE_PLAYLIST = "PLAYLIST"; public final static String ITEM_TYPE_PROTOTYPE_TRACK = "PROTOTYPE_TRACK"; public final static String ITEM_TYPE_SOUND_CLUSTER = "SOUND_CLUSTER"; public final static String ITEM_TYPE_TRACK = "TRACK"; public final static String ITEM_TYPE_USER = "USER"; public final static String SOURCE_TYPE_AMG = "AMG"; public final static String SOURCE_TYPE_FE = "FE"; public final static String SOURCE_TYPE_RMG = "RMG"; public final static String SOURCE_TYPE_ARM = "ARM"; public final static String VIEW_TYPE_ADMIN = "ADMIN"; public final static String VIEW_TYPE_COMMUNITY = "COMMUNITY"; public final static String VIEW_TYPE_SYSTEM = "SYSTEM"; // convert single model objects public ActionVO<Integer, String> convertActionVO(Integer tenantId, ActionVO<Integer, Integer> action); public ActionVO<Integer, Integer> convertTypedActionVO(Integer tenantId, ActionVO<Integer, String> typedAction); public AssociatedItemVO<Integer, String> convertAssociatedItemVO(Integer tenantId, AssociatedItemVO<Integer, Integer> associatedItem); public AssociatedItemVO<Integer, Integer> convertTypedAssociatedItemVO(Integer tenantId, AssociatedItemVO<Integer, String> typedAssociatedItem); public IAConstraintVO<Integer, String> convertIAConstraintVO(Integer tenantId, IAConstraintVO<Integer, Integer> constraint); public IAConstraintVO<Integer, Integer> convertTypedIAConstraintVO(Integer tenantId, IAConstraintVO<Integer, String> typedConstraint); public ItemAssocVO<Integer, String> convertItemAssocVO(Integer tenantId, ItemAssocVO<Integer,Integer> itemAssoc); public ItemAssocVO<Integer,Integer> convertTypedItemAssocVO(Integer tenantId, ItemAssocVO<Integer, String> typedItemAssoc); public ItemVO<Integer, String> convertItemVO(Integer tenantId, ItemVO<Integer, Integer> item); public ItemVO<Integer, Integer> convertTypedItemVO(Integer tenantId, ItemVO<Integer, String> typedItem); public RankedItemVO<Integer, String> convertRankedItemVO(Integer tenantId, RankedItemVO<Integer, Integer> rankedItem); public RankedItemVO<Integer, Integer> convertTypedRankedItemVO(Integer tenantId, RankedItemVO<Integer, String> typedRankedItem); public RatingVO<Integer, String> convertRatingVO(Integer tenantId, RatingVO<Integer, Integer> rating); public RatingVO<Integer, Integer> convertTypedRatingVO(Integer tenantId, RatingVO<Integer, String> typedRating); public RecommendationVO<Integer, String> convertRecommendationVO(Integer tenantId, RecommendationVO<Integer, Integer> recommendation); public RecommendationVO<Integer, Integer> convertTypedRecommendationVO( Integer tenantId, RecommendationVO<Integer, String> typedRecommendation); public RecommendedItemVO<Integer, String> convertRecommendedItemVO(Integer tenantId, RecommendedItemVO<Integer, Integer> recommendedItem); public RecommendedItemVO<Integer, Integer> convertTypedRecommendedItemVO(Integer tenantId, RecommendedItemVO<Integer, String> typedRecommendedItem); // convert lists of model objects public List<ActionVO<Integer, String>> convertListOfActionVOs(Integer tenantId, List<ActionVO<Integer, Integer>> inList); public List<ActionVO<Integer, Integer>> convertListOfTypedActionVOs(Integer tenantId, List<ActionVO<Integer, String>> inList); public List<AssociatedItemVO<Integer, String>> convertListOfAssociatedItemVOs(Integer tenantId, List<AssociatedItemVO<Integer, Integer>> inList); public List<AssociatedItemVO<Integer, Integer>> convertListOfTypedAssociatedItemVOs( Integer tenantId, List<AssociatedItemVO<Integer, String>> inList); public List<IAConstraintVO<Integer, String>> convertListOfIAConstraintVOs(Integer tenantId, List<IAConstraintVO<Integer, Integer>> inList); public List<IAConstraintVO<Integer, Integer>> convertListOfTypedIAConstraintVOs(Integer tenantId, List<IAConstraintVO<Integer, String>> inList); public List<ItemAssocVO<Integer, String>> convertListOfItemAssocVOs( Integer tenantId, List<ItemAssocVO<Integer,Integer>> inList); public List<ItemAssocVO<Integer,Integer>> convertListOfTypedItemAssocVOs( Integer tenantId, List<ItemAssocVO<Integer, String>> inList); public List<ItemVO<Integer, String>> convertListOfItemVOs(Integer tenantId, List<ItemVO<Integer, Integer>> inList); public List<ItemVO<Integer, Integer>> convertListOfTypedItemVOs(Integer tenantId, List<ItemVO<Integer, String>> inList); public List<RankedItemVO<Integer, String>> convertListOfRankedItemVOs(Integer tenantId, List<RankedItemVO<Integer, Integer>> inList); public List<RankedItemVO<Integer, Integer>> convertListOfTypedRankedItemVOs(Integer tenantId, List<RankedItemVO<Integer, String>> inList); public List<RatingVO<Integer, String>> convertListOfRatingVOs(Integer tenantId, List<RatingVO<Integer, Integer>> inList); public List<RatingVO<Integer, Integer>> convertListOfTypedRatingVOs(Integer tenantId, List<RatingVO<Integer, String>> inList); public List<RecommendationVO<Integer, String>> convertListOfRecommendationVO( Integer tenantId, List<RecommendationVO<Integer, Integer>> inList); public List<RecommendationVO<Integer, Integer>> convertListOfTypedRecommendationVO( Integer tenantId, List<RecommendationVO<Integer, String>> inList); public List<RecommendedItemVO<Integer, String>> convertListOfRecommendedItemVOs(Integer tenantId, List<RecommendedItemVO<Integer, Integer>> inList); public List<RecommendedItemVO<Integer, Integer>> convertListOfTypedRecommendedItemVOs(Integer tenantId, List<RecommendedItemVO<Integer, String>> inList); public List<RecommendedItemVO<Integer, String>> convertListOfRecommendedItemVOs( List<RecommendedItemVO<Integer, Integer>> inList); public List<RecommendedItemVO<Integer, Integer>> convertListOfTypedRecommendedItemVOs( List<RecommendedItemVO<Integer, String>> inList); // get integer based id of type public Integer getIdOfActionType(Integer tenantId, String actionType); public Integer getIdOfAggregateType(Integer tenantId, String aggregateType); public Integer getIdOfAssocType(Integer tenantId, String assocType); public Integer getIdOfAssocType(Integer tenantId, String assocType, Boolean visible); public Integer getIdOfItemType(Integer tenantId, String itemType); public Integer getIdOfItemType(Integer tenantId, String itemType, Boolean visible); public Integer getIdOfSourceType(Integer tenantId, String sourceType); public Integer getIdOfViewType(Integer tenantId, String viewType); // get string based id of type public String getActionTypeById(Integer tenantId, Integer actionTypeId); public String getAggregateTypeById(Integer tenantId, Integer aggregateTypeId); public String getAssocTypeById(Integer tenantId, Integer assocTypeId); public String getItemTypeById(Integer tenantId, Integer itemTypeId); public String getSourceTypeById(Integer tenantId, Integer sourceTypeId); public String getViewTypeById(Integer tenantId, Integer viewTypeId); // get mappings of types public HashMap<String, Integer> getActionTypeMapping(Integer tenantId); public HashMap<String, Integer> getAggregateTypeMapping(Integer tenantId); public HashMap<String, Integer> getAssocTypeMapping(Integer tenantId); public HashMap<String, Integer> getItemTypeMapping(Integer tenantId); public HashMap<String, Integer> getSourceTypeMapping(Integer tenantId); public HashMap<String, Integer> getViewTypeMapping(Integer tenantId); // get set of types public Set<String> getActionTypes(Integer tenantId); public Set<String> getAggregateTypes(Integer tenantId); public Set<String> getAssocTypes(Integer tenantId); public Set<String> getAssocTypes(Integer tenantId, Boolean visible); public Set<String> getItemTypes(Integer tenantId); public Set<String> getItemTypes(Integer tenantId, Boolean visible); public Set<String> getSourceTypes(Integer tenantId); public Set<String> getViewTypes(Integer tenantId); }