use of com.github.jknack.handlebars.Context in project ballerina by ballerina-lang.
the class BalGenerationUtils method writeBallerina.
/**
* Write ballerina definition of a <code>object</code> to a file as described by <code>template.</code>
*
* @param object Context object to be used by the template parser
* @param templateDir Directory with all the templates required for generating the source file
* @param templateName Name of the parent template to be used
* @param outPath Destination path for writing the resulting source file
* @throws IOException when file operations fail
*/
public static void writeBallerina(Object object, String templateDir, String templateName, String outPath) throws IOException {
PrintWriter writer = null;
try {
Template template = compileTemplate(templateDir, templateName);
Context context = Context.newBuilder(object).resolver(FieldValueResolver.INSTANCE).build();
writer = new PrintWriter(outPath, "UTF-8");
writer.println(template.apply(context));
} finally {
if (writer != null) {
writer.close();
}
}
}
use of com.github.jknack.handlebars.Context in project ballerina by ballerina-lang.
the class CodeGenerator method writeBallerina.
/**
* Write ballerina definition of a <code>object</code> to a file as described by <code>template.</code>
*
* @param object Context object to be used by the template parser
* @param templateDir Directory with all the templates required for generating the source file
* @param templateName Name of the parent template to be used
* @param outPath Destination path for writing the resulting source file
* @throws IOException when file operations fail
*/
public void writeBallerina(Object object, String templateDir, String templateName, String outPath) throws IOException {
PrintWriter writer = null;
try {
Template template = compileTemplate(templateDir, templateName);
Context context = Context.newBuilder(object).resolver(MapValueResolver.INSTANCE, JavaBeanValueResolver.INSTANCE, FieldValueResolver.INSTANCE).build();
writer = new PrintWriter(outPath, "UTF-8");
writer.println(template.apply(context));
} finally {
if (writer != null) {
writer.close();
}
}
}
use of com.github.jknack.handlebars.Context in project ballerina by ballerina-lang.
the class Writer method writeHtmlDocument.
/**
* Write the HTML document from the Page object for a bal package.
* @param object Page object which is generated from the bal package.
* @param packageTemplateName hbs template file to be used.
* @param filePath path of the file to write the output.
*/
public static void writeHtmlDocument(Object object, String packageTemplateName, String filePath) {
String templatesFolderPath = System.getProperty(BallerinaDocConstants.TEMPLATES_FOLDER_PATH_KEY, File.separator + "docerina-templates" + File.separator + "html");
PrintWriter writer = null;
try {
Handlebars handlebars = new Handlebars().with(new ClassPathTemplateLoader(templatesFolderPath), new FileTemplateLoader(templatesFolderPath));
handlebars.registerHelpers(StringHelpers.class);
Template template = handlebars.compile(packageTemplateName);
writer = new PrintWriter(filePath, "UTF-8");
Context context = Context.newBuilder(object).resolver(FieldValueResolver.INSTANCE).build();
writer.println(template.apply(context));
out.println("HTML file written: " + filePath);
} catch (IOException e) {
out.println("docerina: could not write HTML file " + filePath + System.lineSeparator() + e.getMessage());
} finally {
if (writer != null) {
writer.close();
}
}
}
use of com.github.jknack.handlebars.Context in project ballerina by ballerina-lang.
the class CodeGenerator method getConvertedString.
/**
* Get converted string for given service definition.
*
* @param object Object to be built as parsable context
* @param templateDir Template directory which contains templates for specific output type.
* @param templateName Name of the template to be use for code generation.
* @return generated string representation of passed object(ballerina service node)
* @throws CodeGeneratorException when error occurs while compile, build context.
*/
public String getConvertedString(Object object, String templateDir, String templateName) throws CodeGeneratorException {
Template template = compileTemplate(templateDir, templateName);
Context context = Context.newBuilder(object).resolver(MapValueResolver.INSTANCE, JavaBeanValueResolver.INSTANCE, FieldValueResolver.INSTANCE).build();
try {
return template.apply(context);
} catch (IOException e) {
throw new CodeGeneratorException("Error while generating converted string", e);
}
}
use of com.github.jknack.handlebars.Context in project fess by codelibs.
the class ViewHelper method createCacheContent.
public String createCacheContent(final Map<String, Object> doc, final String[] queries) {
final FessConfig fessConfig = ComponentUtil.getFessConfig();
final FileTemplateLoader loader = new FileTemplateLoader(ResourceUtil.getViewTemplatePath().toFile());
final Handlebars handlebars = new Handlebars(loader);
Locale locale = ComponentUtil.getRequestManager().getUserLocale();
if (locale == null) {
locale = Locale.ENGLISH;
}
String url = DocumentUtil.getValue(doc, fessConfig.getIndexFieldUrl(), String.class);
if (url == null) {
url = ComponentUtil.getMessageManager().getMessage(locale, "labels.search_unknown");
}
doc.put(fessConfig.getResponseFieldUrlLink(), getUrlLink(doc));
String createdStr;
final Date created = DocumentUtil.getValue(doc, fessConfig.getIndexFieldCreated(), Date.class);
if (created != null) {
final SimpleDateFormat sdf = new SimpleDateFormat(CoreLibConstants.DATE_FORMAT_ISO_8601_EXTEND);
createdStr = sdf.format(created);
} else {
createdStr = ComponentUtil.getMessageManager().getMessage(locale, "labels.search_unknown");
}
doc.put(CACHE_MSG, ComponentUtil.getMessageManager().getMessage(locale, "labels.search_cache_msg", url, createdStr));
doc.put(QUERIES, queries);
String cache = DocumentUtil.getValue(doc, fessConfig.getIndexFieldCache(), String.class);
if (cache != null) {
final String mimetype = DocumentUtil.getValue(doc, fessConfig.getIndexFieldMimetype(), String.class);
if (!ComponentUtil.getFessConfig().isHtmlMimetypeForCache(mimetype)) {
cache = StringEscapeUtils.escapeHtml4(cache);
}
cache = ComponentUtil.getPathMappingHelper().replaceUrls(cache);
if (queries != null && queries.length > 0) {
doc.put(HL_CACHE, replaceHighlightQueries(cache, queries));
} else {
doc.put(HL_CACHE, cache);
}
} else {
doc.put(fessConfig.getIndexFieldCache(), StringUtil.EMPTY);
doc.put(HL_CACHE, StringUtil.EMPTY);
}
try {
final Template template = handlebars.compile(cacheTemplateName);
final Context hbsContext = Context.newContext(doc);
return template.apply(hbsContext);
} catch (final Exception e) {
logger.warn("Failed to create a cache response.", e);
}
return null;
}
Aggregations