Subversion Repositories SmartDukaan

Rev

Rev 3607 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
3561 rajveer 1
package in.shop2020.serving.cache;
2
import in.shop2020.serving.cache.EhcacheWrapper.CacheKeys;
3
import in.shop2020.serving.services.ContentServingService;
4
import in.shop2020.serving.utils.SnippetType;
5
 
6
import java.util.HashMap;
7
import java.util.List;
8
import java.util.Map;
9
 
10
import net.sf.ehcache.CacheManager;
11
 
12
import org.apache.log4j.Logger;
13
 
14
public class SnippetCacheWrapper
15
{
16
    private static Logger log = Logger.getLogger(SnippetCacheWrapper.class);
17
    private static EhcacheWrapper<String, String> categorySnippetCache = new EhcacheWrapper<String, String>(
18
    		EhcacheWrapper.CATEGORY_SNIPPET_CACHE_NAME, CacheManager.create());
19
    private static EhcacheWrapper<String, String> searchSnippetCache = new EhcacheWrapper<String, String>(
20
            EhcacheWrapper.SEARCH_SNIPPET_CACHE_NAME, CacheManager.create());
21
    private static EhcacheWrapper<String, Map<SnippetType, String>> productSnippetsCache = new EhcacheWrapper<String, Map<SnippetType, String>>(
22
            EhcacheWrapper.PRODUCT_PAGE_SNIPPET_CACHE_NAME, CacheManager.create());            
23
    private static EhcacheWrapper<String, Object> showcasePageSnippetsCache = new EhcacheWrapper<String, Object>(
24
    		EhcacheWrapper.SHOWCASE_PAGE_SNIPPET_CACHE_NAME, CacheManager.create());
25
    private static EhcacheWrapper<String, List<String>> homeSnippetCache = new EhcacheWrapper<String, List<String>>(
26
            EhcacheWrapper.HOME_PAGE_SNIPPET_CACHE_NAME, CacheManager.create());
12132 amit.gupta 27
    private static EhcacheWrapper<String, String> privateDalSnippetCache = new EhcacheWrapper<String, String>(
28
    		EhcacheWrapper.PRIVATE_DEAL_SNIPPET, CacheManager.create());
3561 rajveer 29
 
30
    public static Object getSnippet(CacheKeys cacheType, String docId, long sourceId){
31
 
32
    	switch (cacheType) {
33
    	case HOME_PAGE_SNIPPET_CACHE_KEY:
34
			return getHomeSnippet(docId);
35
    	case SHOWCASE_PAGE_SNIPPET_CACHE_KEY:
36
			return getShowcaseSnippet(docId);
37
    	case PRODUCT_PAGE_SNIPPET_CACHE_KEY:
38
			return getProductSnippet(docId, sourceId);
39
    	case CATEGORY_SNIPPET_CACHE_KEY:
40
			return getCategorySnippet(docId, sourceId);
41
		case SEARCH_SNIPPET_CACHE_KEY:
42
			return getSearchSnippet(docId, sourceId);
12132 amit.gupta 43
		case PRIVATE_DEAL_SNIPPET_KEY:
44
			return getPrivateDealSnippet(docId, sourceId);
45
 
46
 
3561 rajveer 47
 
48
		default:
49
			break;
50
		}
51
 
52
		return sourceId;
53
    }
54
 
55
	private static String getSearchSnippet(String docId, long sourceId) {
56
        String snippet = searchSnippetCache.get(docId);
57
        if (snippet == null) {
58
        	snippet = ContentServingService.getSnippet(SnippetType.SEARCH_SNIPPET, docId, sourceId);
59
            if (sourceId == -1 && snippet != null) {
60
                searchSnippetCache.put(docId, snippet);
61
            }
62
        }
63
        else {
64
            log.info("Loading search snippet from cache : " + docId);
65
        }
66
        return snippet;
67
	}
12132 amit.gupta 68
 
69
	private static String getPrivateDealSnippet(String docId, long sourceId) {
70
		String snippet = privateDalSnippetCache.get(docId);
71
		if (snippet == null) {
72
			snippet = ContentServingService.getSnippet(SnippetType.PRIVATE_DEAL_SNIPPET, docId, sourceId);
73
			if (sourceId == -1 && snippet != null) {
74
				privateDalSnippetCache.put(docId, snippet);
75
			}
76
		}
77
		else {
78
			log.info("Loading search snippet from cache : " + docId);
79
		}
80
		return snippet;
81
	}
3561 rajveer 82
 
83
	private static String getCategorySnippet(String docId, long sourceId)
84
    {
85
        String snippet = categorySnippetCache.get(docId);
86
        if (snippet == null) {
3607 chandransh 87
        	snippet = ContentServingService.getSnippet(SnippetType.CATEGORY_SNIPPET, docId, sourceId);
3561 rajveer 88
            if (sourceId == -1 && snippet != null) {
89
            	categorySnippetCache.put(docId, snippet);
90
            }
91
        }
92
        else {
93
            log.info("Loading category snippet from cache : " + docId);
94
        }
95
        return snippet;
96
	}	
97
 
98
	private static Map<SnippetType, String> getProductSnippet(String docId, long sourceId) {
99
	    Map<SnippetType, String> snippets = null;
100
	    if(sourceId == -1){
101
	    	snippets = productSnippetsCache.get(docId);
102
	    }
103
	    if (snippets == null) {
104
	        log.info("Getting product snippet for :" + docId);
105
	        snippets = new HashMap<SnippetType, String>();
106
	        snippets.put(SnippetType.PRODUCT_PROPERTIES_SNIPPET, ContentServingService.getSnippet(SnippetType.PRODUCT_PROPERTIES_SNIPPET, docId, sourceId));
107
	        snippets.put(SnippetType.PRODUCT_DETAIL_SNIPPET, ContentServingService.getSnippet(SnippetType.PRODUCT_DETAIL_SNIPPET, docId, sourceId));
108
	        snippets.put(SnippetType.SLIDE_GUIDE_SNIPPET, ContentServingService.getSnippet(SnippetType.SLIDE_GUIDE_SNIPPET, docId, sourceId));
109
	        if(sourceId == -1){
110
	        	productSnippetsCache.put(docId, snippets);
111
	        }
112
	        return snippets;
113
	    }
114
		return snippets;
115
	}
116
 
117
 
118
	private static Object getShowcaseSnippet(String docId) {
119
		// TODO Auto-generated method stub
120
		return null;
121
	}
122
 
123
    private static Object getHomeSnippet(String docId) {
124
		// TODO Auto-generated method stub
125
		return null;
126
	}
127
 
128
 
129
 
130
}