return TemplateDateModel.class; } else if (tm instanceof StringModel) { Object wrapped = ((BeanModel) tm).getWrappedObject(); return wrapped instanceof String ? TemplateScalarModel.class
/** * @param model * @return java bean value * @throws TemplateModelException */ public static Object converBean(TemplateModel model) throws TemplateModelException { if (null != model) { if (model instanceof TemplateSequenceModel) { converBean(((TemplateSequenceModel) model).get(0)); } if (model instanceof BeanModel) { return ((BeanModel) model).getWrappedObject(); } } return null; }
/** * @param model * @return java bean value * @throws TemplateModelException */ public static Object converBean(TemplateModel model) throws TemplateModelException { if (null != model) { if (model instanceof TemplateSequenceModel) { converBean(((TemplateSequenceModel) model).get(0)); } if (model instanceof BeanModel) { return ((BeanModel) model).getWrappedObject(); } } return null; }
@SuppressWarnings("unchecked") public static <T> T unwrap(Object o) { Object returnObj = null; if (o == TemplateModel.NOTHING) { returnObj = null; } else if (o instanceof SimpleScalar) { returnObj = o.toString(); } else if (o instanceof BeanModel) { returnObj = ((BeanModel) o).getWrappedObject(); } return (T) returnObj; }
if (arg0.getWrappedObject() instanceof TemplateNode) if ( ((TemplateNode)arg0.getWrappedObject()).hasPermission(permission) )
private Object[] findParameters(@SuppressWarnings("rawtypes") Map params) throws TemplateModelException { List<Object> result = new ArrayList<Object>(); while (true) { String key = "param" + result.size(); if (params.containsKey(key)) { TemplateModel templateModel = (TemplateModel) params.get(key); if (templateModel instanceof SimpleScalar) result.add(((SimpleScalar) templateModel).getAsString()); else if (templateModel instanceof StringModel) result.add(((StringModel) templateModel).getWrappedObject()); else if (templateModel instanceof BeanModel) result.add(((BeanModel) templateModel).getWrappedObject()); else throw new TemplateModelException("key params must be BeanModels instead of " + templateModel); } else break; } if (result.isEmpty()) return null; return result.toArray(new Object[result.size()]); } }
@Override public Object exec(@SuppressWarnings("rawtypes") List args) throws TemplateModelException { if (args == null || args.size() != 2) throw new TemplateModelException("Invalid number of arguements"); if (!(args.get(0) instanceof TemplateScalarModel)) throw new TemplateModelException("First argument not an instance of TemplateScalarModel"); if (!(args.get(1) instanceof BeanModel) && !(args.get(1) instanceof TemplateNumberModel) && !(args.get(1) instanceof TemplateScalarModel)) throw new TemplateModelException("Second argument not an instance of BeanModel nor TemplateNumberModel nor TemplateScalarModel"); Environment env = Environment.getCurrentEnvironment(); BeanModel req = (BeanModel)env.getVariable("request"); HttpServletRequest request = (HttpServletRequest) req.getWrappedObject(); String name = ((TemplateScalarModel) args.get(0)).getAsString(); Object value = null; if (args.get(1) instanceof TemplateScalarModel) value = ((TemplateScalarModel) args.get(1)).getAsString(); if (args.get(1) instanceof TemplateNumberModel) value = ((TemplateNumberModel) args.get(1)).getAsNumber(); if (args.get(1) instanceof BeanModel) value = ((BeanModel) args.get(1)).getWrappedObject(); request.setAttribute(name, value); return new SimpleScalar(""); }
@Override public Object exec(@SuppressWarnings("rawtypes") List args) throws TemplateModelException { if (args == null || args.size() != 2) throw new TemplateModelException("Invalid number of arguements"); if (!(args.get(0) instanceof TemplateScalarModel)) throw new TemplateModelException("First argument not an instance of TemplateScalarModel"); if (!(args.get(1) instanceof BeanModel) && !(args.get(1) instanceof TemplateNumberModel) && !(args.get(1) instanceof TemplateScalarModel)) throw new TemplateModelException("Second argument not an instance of BeanModel nor TemplateNumberModel nor TemplateScalarModel"); Environment env = Environment.getCurrentEnvironment(); BeanModel req = (BeanModel)env.getVariable("context"); Map<String, Object> context = UtilGenerics.cast(req.getWrappedObject()); String name = ((TemplateScalarModel) args.get(0)).getAsString(); Object value = null; if (args.get(1) instanceof TemplateScalarModel) value = ((TemplateScalarModel) args.get(1)).getAsString(); if (args.get(1) instanceof TemplateNumberModel) value = ((TemplateNumberModel) args.get(1)).getAsNumber(); if (args.get(1) instanceof BeanModel) value = ((BeanModel) args.get(1)).getWrappedObject(); context.put(name, value); return new SimpleScalar(""); }
@Override public void execute(Environment env, @SuppressWarnings("rawtypes") Map args, TemplateModel[] loopVars, TemplateDirectiveBody body) throws TemplateException, IOException { Map<String, TemplateModel> params = UtilGenerics.checkMap(args); String productId = (String) DeepUnwrap.unwrap(params.get("productId")); String currentCategoryId = (String) DeepUnwrap.unwrap(params.get("currentCategoryId")); String previousCategoryId = (String) DeepUnwrap.unwrap(params.get("previousCategoryId")); BeanModel req = (BeanModel) env.getVariable("request"); if (req != null) { HttpServletRequest request = (HttpServletRequest) req.getWrappedObject(); env.getOut().write(CatalogUrlServlet.makeCatalogUrl(request, productId, currentCategoryId, previousCategoryId)); } } }
public Object exec(List args) throws TemplateModelException { String result = ""; if (args.size() != 0) { // retrieve object to serialize Object object = null; Object arg0 = args.get(0); if (arg0 instanceof BeanModel) { object = ((BeanModel)arg0).getWrappedObject(); } if (object != null) { FormatWriter<Object> writer = formatRegistry.getWriter(object, mimetype); if (writer != null) { // NOTE: For now, streaming directly to freemarker writer i.e. not relying on // result to return serialized form writer.write(object, Environment.getCurrentEnvironment().getOut()); } } } return result; }
public Object exec(List args) throws TemplateModelException { String result = ""; if (args.size() != 0) { // retrieve object to serialize Object object = null; Object arg0 = args.get(0); if (arg0 instanceof BeanModel) { object = ((BeanModel)arg0).getWrappedObject(); } if (object != null) { FormatWriter<Object> writer = formatRegistry.getWriter(object, mimetype); if (writer != null) { // NOTE: For now, streaming directly to freemarker writer i.e. not relying on // result to return serialized form writer.write(object, Environment.getCurrentEnvironment().getOut()); } } } return result; }
public void execute(Environment environment, Map params, TemplateModel[] templateModels, TemplateDirectiveBody templateDirectiveBody) throws TemplateException, IOException { Object bean = getBeanObject(environment, params, "writePreText"); BeanModel modelBeanModel = (BeanModel) environment.getDataModel().get(FreeMarkerBeanWriter.MODEL_CTX_KEY); Model model = (Model) modelBeanModel.getWrappedObject(); BeanMetadata beanMetadata = model.getBeanMetadata(bean); if(beanMetadata != null && beanMetadata.getPreText() != null) { String preText = beanMetadata.getPreText().trim(); if(preText.length() > 0) { environment.getOut().write(trimPretext(beanMetadata.getPreText())); } } }
public void execute(Environment environment, Map params, TemplateModel[] templateModels, TemplateDirectiveBody templateDirectiveBody) throws TemplateException, IOException { Object bean = getBeanObject(environment, params, "writePreText"); BeanModel modelBeanModel = (BeanModel) environment.getDataModel().get(FreeMarkerBeanWriter.MODEL_CTX_KEY); Model model = (Model) modelBeanModel.getWrappedObject(); BeanMetadata beanMetadata = model.getBeanMetadata(bean); if(beanMetadata != null && beanMetadata.getPreText() != null) { String preText = beanMetadata.getPreText().trim(); if(preText.length() > 0) { environment.getOut().write(trimPretext(beanMetadata.getPreText())); } } }
public void execute(Environment environment, Map params, TemplateModel[] templateModels, TemplateDirectiveBody templateDirectiveBody) throws TemplateException, IOException { Object bean = getBeanObject(environment, params, "writePreText"); BeanModel modelBeanModel = (BeanModel) environment.getDataModel().get(FreeMarkerBeanWriter.MODEL_CTX_KEY); Model model = (Model) modelBeanModel.getWrappedObject(); BeanMetadata beanMetadata = model.getBeanMetadata(bean); if(beanMetadata != null && beanMetadata.getPreText() != null) { String preText = beanMetadata.getPreText().trim(); if(preText.length() > 0) { environment.getOut().write(trimPretext(beanMetadata.getPreText())); } } }
public void execute(Environment environment, Map params, TemplateModel[] templateModels, TemplateDirectiveBody templateDirectiveBody) throws TemplateException, IOException { Object bean = getBeanObject(environment, params, "writePreText"); BeanModel modelBeanModel = (BeanModel) environment.getDataModel().get(FreeMarkerBeanWriter.MODEL_CTX_KEY); Model model = (Model) modelBeanModel.getWrappedObject(); BeanMetadata beanMetadata = model.getBeanMetadata(bean); if(beanMetadata != null && beanMetadata.getPreText() != null) { String preText = beanMetadata.getPreText().trim(); if(preText.length() > 0) { environment.getOut().write(trimPretext(beanMetadata.getPreText())); } } }
@Override public void close() throws IOException { try { if (Debug.verboseOn()) Debug.logVerbose("parms: " + amount + " " + isoCode + " " + locale, module); if (locale.length() < 1) { // Load the locale from the session Environment env = Environment.getCurrentEnvironment(); BeanModel req = (BeanModel) env.getVariable("request"); if (req != null) { HttpServletRequest request = (HttpServletRequest) req.getWrappedObject(); out.write(UtilFormatOut.formatCurrency(amount, isoCode, UtilHttp.getLocale(request), rounding)); // we set the max to 10 digits as an hack to not round numbers in the ui } else { out.write(UtilFormatOut.formatCurrency(amount, isoCode, env.getLocale(), rounding)); // we set the max to 10 digits as an hack to not round numbers in the ui } } else { out.write(UtilFormatOut.formatCurrency(amount, isoCode, new Locale(locale), rounding)); // we set the max to 10 digits as an hack to not round numbers in the ui } } catch (TemplateModelException e) { throw new IOException(e.getMessage()); } } };
/** * Gets BeanModel from FreeMarker context and returns the object that it wraps. * @param varName the name of the variable in the FreeMarker context. * @param env the FreeMarker Environment */ public static <T> T getWrappedObject(String varName, Environment env) { Object obj = null; try { obj = env.getVariable(varName); if (obj != null) { if (obj == TemplateModel.NOTHING) { obj = null; } else if (obj instanceof BeanModel) { BeanModel bean = (BeanModel) obj; obj = bean.getWrappedObject(); } else if (obj instanceof SimpleScalar) { obj = obj.toString(); } } } catch (TemplateModelException e) { Debug.logInfo(e.getMessage(), module); } return UtilGenerics.<T>cast(obj); }
@Override public void close() throws IOException { try { Environment env = Environment.getCurrentEnvironment(); BeanModel req = (BeanModel) env.getVariable("request"); BeanModel res = (BeanModel) env.getVariable("response"); if (req != null) { Map<String, Object> arguments = UtilGenerics.cast(args); String contentId = getStringArg(arguments, "contentId"); String viewContent = getStringArg(arguments, "viewContent"); HttpServletRequest request = (HttpServletRequest) req.getWrappedObject(); HttpServletResponse response = null; if (res != null) { response = (HttpServletResponse) res.getWrappedObject(); } String url = ""; if (UtilValidate.isNotEmpty(contentId)) { url = makeContentAltUrl(request, response, contentId, viewContent); } out.write(url); } } catch (TemplateModelException e) { throw new IOException(e.getMessage()); } } };
@Override public void close() throws IOException { try { Environment env = Environment.getCurrentEnvironment(); BeanModel req = (BeanModel) env.getVariable("request"); if (req != null) { String productId = getStringArg(args, "productId"); String currentCategoryId = getStringArg(args, "currentCategoryId"); String previousCategoryId = getStringArg(args, "previousCategoryId"); HttpServletRequest request = (HttpServletRequest) req.getWrappedObject(); String catalogUrl = CatalogUrlServlet.makeCatalogUrl(request, productId, currentCategoryId, previousCategoryId); out.write(catalogUrl); } } catch (TemplateModelException e) { throw new IOException(e.getMessage()); } } };
public static Object get(SimpleHash args, String key) { Object o = null; try { o = args.get(key); } catch (TemplateModelException e) { Debug.logVerbose(e.getMessage(), module); return null; } Object returnObj = unwrap(o); if (returnObj == null) { Object ctxObj = null; try { ctxObj = args.get("context"); } catch (TemplateModelException e) { Debug.logInfo(e.getMessage(), module); return returnObj; } Map<String, ?> ctx = null; if (ctxObj instanceof BeanModel) { ctx = UtilGenerics.cast(((BeanModel) ctxObj).getWrappedObject()); returnObj = ctx.get(key); } } return returnObj; }