Rev 5566 | Blame | Compare with Previous | Last modification | View Log | RSS feed
package in.shop2020.util;import java.text.MessageFormat;import java.util.ArrayList;import java.util.Collections;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;public class LevelHierarchy {private static final int MAX_LIMIT = 60;private String alphabeticalTemplate = "Product starting with <b>{0}</b>";private String levelOneTitle = "Accessories Compatibility Index";//All urls will start with <i>generated</i> for SEOsprivate String levelOneUrlTemplate;private String levelTwoTitle;private String path = Utils.EXPORT_PATH;private List<String> data;private Map<String, List<List<String>>> dataMap;private String[] indentation = {"", " ", " ", " "," "};public LevelHierarchy(String alphabeticalTemplate, String levelOneTitle,String levelTwoTitle, Map<String, List<List<String>>> dataMap) {super();this.alphabeticalTemplate = alphabeticalTemplate;this.levelOneTitle = levelOneTitle;this.levelTwoTitle = levelTwoTitle;this.dataMap = dataMap;}public void generatePages() {String hyphenatedTitle = levelOneTitle.toLowerCase().replaceAll(" +", "-");StringBuilder sb = new StringBuilder();String levelOneFileName = Utils.EXPORT_PARTNERS_CONTENT_PATH + hyphenatedTitle + ".html";List<String> sortedList = new ArrayList<String>(dataMap.keySet());Collections.sort(sortedList);for(String key : sortedList){List<List<String>> list = dataMap.get(key);sb.append("<h3>").append(MessageFormat.format(alphabeticalTemplate, key)).append("</h3>");int counts = list.size()/MAX_LIMIT + (list.size()%MAX_LIMIT==0 ? 0 : 1);counts = counts > MAX_LIMIT ? MAX_LIMIT : counts;Iterator<List<String>> it = list.listIterator();for(int i=1; i<=counts; i++){sb.append("<a style='padding:5px 3px 15px 3px;display:inline-block' href='/generated/").append(hyphenatedTitle).append("-" + key).append("-").append(i).append("'>").append(i).append("</a> ");StringBuilder sb1 = new StringBuilder();String levelTwoFileName = Utils.EXPORT_PARTNERS_CONTENT_PATH + hyphenatedTitle + "-" + key + "-" + i + ".html";for(int j=0; j<MAX_LIMIT; j++){if(it.hasNext()){List<String> tuple = it.next();String name = tuple.get(0);String url = tuple.get(1);sb1.append(indentation[1] + "<div>\n");sb1.append(indentation[2] + "<a href='" + url + "'>" + name + "</a>\n");sb1.append(indentation[1] + "</div>\n");}else {break;}}try {DBUtils.store(sb1.toString(), levelTwoFileName);} catch (Exception e) {e.printStackTrace();}}}try {DBUtils.store(sb.toString(), levelOneFileName);} catch (Exception e) {e.printStackTrace();}}public String getAlphabeticalTemplate() {return alphabeticalTemplate;}public List<String> getData() {return data;}public void setData(List<String> data) {this.data = data;}public void setAlphabeticalTemplate(String alphabeticalTemplate) {this.alphabeticalTemplate = alphabeticalTemplate;}public String getLevelOneTitle() {return levelOneTitle;}public void setLevelOneTitle(String levelOneTitle) {this.levelOneTitle = levelOneTitle;}public String getLevelOneUrlTemplate() {return levelOneUrlTemplate;}public void setLevelOneUrlTemplate(String levelOneUrlTemplate) {this.levelOneUrlTemplate = levelOneUrlTemplate;}public String getLevelTwoTitle() {return levelTwoTitle;}public void setLevelTwoTitle(String levelTwoTitle) {this.levelTwoTitle = levelTwoTitle;}public Map<String, List<List<String>>> getDataMap() {return dataMap;}public void setDataMap(Map<String, List<List<String>>> dataMap) {this.dataMap = dataMap;}public String getPath() {return path;}public void setPath(String path) {this.path = path;}public static void main(String args[]){String alphabeticalTemplate = "Product starting with <b>{0}</b>";String levelOneTitle = "Accessories Compatibility Index";String levelTwoTitle = "";Map<String, List<List<String>>> dataMap = new HashMap<String, List<List<String>>> ();List<List<String>> m1 = new ArrayList<List<String>>();List<List<String>> m2 = new ArrayList<List<String>>();List<String>m11 = new ArrayList<String>();List<String>m12 = new ArrayList<String>();m11.add("abc");m11.add("abc-d");m12.add("abc");m12.add("abc-d");dataMap.put("a", m1);LevelHierarchy lh = new LevelHierarchy(alphabeticalTemplate, levelOneTitle, levelTwoTitle, dataMap);lh.generatePages();}}