Subversion Repositories SmartDukaan

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
5566 amit.gupta 1
package in.shop2020.util;
2
 
3
import java.text.MessageFormat;
4
import java.util.ArrayList;
5
import java.util.Collections;
6
import java.util.HashMap;
7
import java.util.Iterator;
8
import java.util.List;
9
import java.util.Map;
10
 
11
 
12
 
13
public class LevelHierarchy {
14
	private static final int MAX_LIMIT = 60;
15
 
16
 
17
	private String alphabeticalTemplate = "Product starting with <b>{0}</b>";
18
	private String levelOneTitle = "Accessories Compatibility Index";
19
	//All urls will start with <i>generated</i> for SEOs 
20
	private String levelOneUrlTemplate;
21
	private String levelTwoTitle;
22
	private String path = Utils.EXPORT_PATH;
23
	private List<String> data; 
24
	private Map<String, Map<String, String>> dataMap;
25
	private String[] indentation = {"", "    ", "        ", "            ","                "};
26
 
27
	public LevelHierarchy(String alphabeticalTemplate, String levelOneTitle,
28
			String levelTwoTitle, Map<String, Map<String, String>> dataMap) {
29
		super();
30
		this.alphabeticalTemplate = alphabeticalTemplate;
31
		this.levelOneTitle = levelOneTitle;
32
		this.levelTwoTitle = levelTwoTitle;
33
		this.dataMap = dataMap;
34
	}
35
 
36
	public void generatePages() {
37
		String hyphenatedTitle = levelOneTitle.toLowerCase().replaceAll(" +", "-");
38
		StringBuilder sb = new StringBuilder();
39
		String levelOneFileName = Utils.EXPORT_PARTNERS_CONTENT_PATH + hyphenatedTitle + ".html";
40
		List<String> sortedList = new ArrayList<String>(dataMap.keySet()); 
41
		Collections.sort(sortedList);
42
		for(String key : sortedList){
43
			Map<String, String> map = dataMap.get(key);
44
			sb.append("<h3>").append(MessageFormat.format(alphabeticalTemplate, key)).append("</h3>");
45
			int counts =  map.size()/MAX_LIMIT + (map.size()%MAX_LIMIT==0 ? 0 : 1);
46
			counts = counts > MAX_LIMIT ? MAX_LIMIT : counts;
47
			Iterator<String> it = map.keySet().iterator();
48
			for(int i=1; i<=counts; i++){
49
				sb.append("<a style='padding:5px 3px 15px 3px;display:inline-block' href='/generated/").append(hyphenatedTitle)
50
				.append("-" + key).append("-").append(i).append("'>").append(i).append("</a> ");
51
				StringBuilder sb1 = new StringBuilder();
52
				String levelTwoFileName = Utils.EXPORT_PARTNERS_CONTENT_PATH + hyphenatedTitle + "-" + key + "-" + i + ".html";
53
				for(int j=0; j<MAX_LIMIT; j++){
54
					if(it.hasNext()){
55
						String name = it.next();
56
						String url = map.get(name);
57
						sb1.append(indentation[1] + "<div>\n");
58
						sb1.append(indentation[2] + "<a href='" + url + "'>" + name + "</a>\n");
59
						sb1.append(indentation[1] + "</div>\n");
60
					}else {
61
						break;
62
					}
63
				}
64
				try	{
65
					DBUtils.store(sb1.toString(), levelTwoFileName);
66
 
67
				} catch (Exception e) {
68
					e.printStackTrace();
69
				}
70
			}
71
		}
72
		try	{
73
			DBUtils.store(sb.toString(), levelOneFileName);
74
 
75
		} catch (Exception e) {
76
			e.printStackTrace();
77
		}
78
 
79
	}
80
 
81
	public String getAlphabeticalTemplate() {
82
		return alphabeticalTemplate;
83
	}
84
	public List<String> getData() {
85
		return data;
86
	}
87
	public void setData(List<String> data) {
88
		this.data = data;
89
	}
90
	public void setAlphabeticalTemplate(String alphabeticalTemplate) {
91
		this.alphabeticalTemplate = alphabeticalTemplate;
92
	}
93
	public String getLevelOneTitle() {
94
		return levelOneTitle;
95
	}
96
	public void setLevelOneTitle(String levelOneTitle) {
97
		this.levelOneTitle = levelOneTitle;
98
	}
99
	public String getLevelOneUrlTemplate() {
100
		return levelOneUrlTemplate;
101
	}
102
	public void setLevelOneUrlTemplate(String levelOneUrlTemplate) {
103
		this.levelOneUrlTemplate = levelOneUrlTemplate;
104
	}
105
	public String getLevelTwoTitle() {
106
		return levelTwoTitle;
107
	}
108
	public void setLevelTwoTitle(String levelTwoTitle) {
109
		this.levelTwoTitle = levelTwoTitle;
110
	}
111
 
112
	public Map<String, Map<String, String>> getDataMap() {
113
		return dataMap;
114
	}
115
 
116
	public void setDataMap(Map<String, Map<String, String>> dataMap) {
117
		this.dataMap = dataMap;
118
	}
119
	public String getPath() {
120
		return path;
121
	}
122
	public void setPath(String path) {
123
		this.path = path;
124
	}
125
 
126
	public static void main(String args[]){
127
		String alphabeticalTemplate = "Product starting with <b>{0}</b>";
128
		String levelOneTitle = "Accessories Compatibility Index";
129
		String levelTwoTitle = "";
130
		Map<String, Map<String,String>> dataMap = new HashMap<String, Map<String,String>>();
131
		Map<String, String> m1 = new HashMap<String, String>();
132
		Map<String, String> m2 = new HashMap<String, String>();
133
		m1.put("abc", "abc-d");
134
		m1.put("abd", "abd-d");
135
		m2.put("bbc", "bbc-d");
136
		m2.put("bbd", "bbb-d");
137
		dataMap.put("a", m1);
138
		dataMap.put("b", m2);
139
		LevelHierarchy lh = new LevelHierarchy(alphabeticalTemplate, levelOneTitle, levelTwoTitle, dataMap);
140
		lh.generatePages();
141
	}
142
 
143
}