Rev 2367 | Blame | Compare with Previous | Last modification | View Log | RSS feed
package in.shop2020.ui.util;import in.shop2020.metamodel.core.Helpdoc;import in.shop2020.metamodel.util.CreationUtils;import in.shop2020.util.Utils;import java.io.BufferedWriter;import java.io.File;import java.io.FileOutputStream;import java.io.OutputStreamWriter;import java.util.LinkedHashMap;import java.util.Map;import java.util.TreeMap;import org.apache.velocity.Template;import org.apache.velocity.VelocityContext;import org.apache.velocity.app.Velocity;/*** Command line utility to generate glossary files for our site** @author rajveer**/public class HelpdocsGenerator {public static void main(String[] args) throws Exception {HelpdocsGenerator generator = new HelpdocsGenerator();generator.generateHelpdocFiles();generator.generateGlossaryFile();}private void generateGlossaryFile() {try {Map<Long, Helpdoc> helpdocs = CreationUtils.getHelpdocs();VelocityContext context = new VelocityContext();String templateFile = Utils.VTL_SRC_PATH + "glossary.vm";Map<String, Map<String, String>> params = new LinkedHashMap<String, Map<String,String>>();Map<String, String> section1 = new TreeMap<String, String>();Map<String, String> section2 = new TreeMap<String, String>();Map<String, String> section3 = new TreeMap<String, String>();Map<String, String> section4 = new TreeMap<String, String>();params.put("0 - 9", section1);params.put("A - H", section2);params.put("I - P", section3);params.put("Q - Z", section4);for(Helpdoc helpdoc: helpdocs.values()){String docname = helpdoc.getName();char firstChar = docname.toUpperCase().charAt(0);if(firstChar >= '0' && firstChar <= '9'){section1.put(docname, getFileName(docname));}if(firstChar >= 'A' && firstChar <= 'H'){section2.put(docname, getFileName(docname));}if(firstChar >= 'I' && firstChar <= 'P'){section3.put(docname, getFileName(docname));}if(firstChar >= 'Q' && firstChar <= 'Z'){section4.put(docname, getFileName(docname));}}context.put("params", params);String exportFileName = Utils.EXPORT_HELPDOCS_PATH + "glossary";File exportFile = new File(exportFileName);if(!exportFile.exists()) {exportFile.createNewFile();}BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(exportFile)));Template template = Velocity.getTemplate(templateFile);template.merge(context, writer);writer.flush();writer.close();} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}private void generateHelpdocFiles() {try {Map<Long, Helpdoc> helpdocs = CreationUtils.getHelpdocs();VelocityContext context = new VelocityContext();String templateFile = Utils.VTL_SRC_PATH + "helpdoc.vm";for(Helpdoc helpdoc: helpdocs.values()){context.put("helpdoc", helpdoc);String exportFileName = Utils.EXPORT_HELPDOCS_PATH + getFileName(helpdoc.getName());File exportFile = new File(exportFileName);if(!exportFile.exists()) {exportFile.createNewFile();}BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(exportFile)));Template template = Velocity.getTemplate(templateFile);template.merge(context, writer);writer.flush();writer.close();}} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}private String getFileName(String name){return name.toLowerCase().replace(' ', '-').replaceAll("/", "");}}