本文整理汇总了Java中freemarker.template.TemplateHashModelEx类的典型用法代码示例。如果您正苦于以下问题:Java TemplateHashModelEx类的具体用法?Java TemplateHashModelEx怎么用?Java TemplateHashModelEx使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
TemplateHashModelEx类属于freemarker.template包,在下文中一共展示了TemplateHashModelEx类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。
示例1: getMapKeys
import freemarker.template.TemplateHashModelEx; //导入依赖的package包/类
/**
* Gets map keys, either as collection or Set.
* <p>
* WARN: auto-escaping is bypassed on all keys, caller handles.
* (e.g. the object wrapper used to rewrap the result).
* DEV NOTE: we MUST manually bypass auto-escaping for all on this one.
*/
public static Object getMapKeys(TemplateModel object) throws TemplateModelException {
if (OfbizFtlObjectType.COMPLEXMAP.isObjectType(object)) {
// WARN: bypasses auto-escaping
Map<Object, Object> wrappedObject = UtilGenerics.cast(((WrapperTemplateModel) object).getWrappedObject());
return wrappedObject.keySet();
}
else if (object instanceof TemplateHashModelEx) {
// 2016-04-20: cannot do this because we MUST trigger bypass of auto-escaping,
// so just do a deep unwrap, which automatically bypasses the escaping,
// and then caller handles the result, which is probably an arraylist
//return ((TemplateHashModelEx) object).keys();
return unwrapAlways(((TemplateHashModelEx) object).keys());
}
else {
throw new TemplateModelException("object is not a map or does not support key iteration");
}
}
开发者ID:ilscipio,项目名称:scipio-erp,代码行数:25,代码来源:LangFtlUtil.java
示例2: makeSimpleMapAdapter
import freemarker.template.TemplateHashModelEx; //导入依赖的package包/类
/**
* Adapts a map to a TemplateHashModelEx using an appropriate simple adapter, normally
* DefaultMapAdapter (or SimpleMapModel for BeansWrapper compatibility).
* <p>
* The ObjectWrapper is expected to implement at least ObjectWrapperWithAPISupport.
* <p>
* WARN: If impossible, it will duplicate the map using SimpleHash; but because this may result
* in loss of ordering, a log warning will be printed.
*/
public static TemplateHashModelEx makeSimpleMapAdapter(Map<?, ?> map, ObjectWrapper objectWrapper, boolean permissive) throws TemplateModelException {
// COMPATIBILITY MODE: check if exactly BeansWrapper, or a class that we know extends it WITHOUT extending DefaultObjectWrapper
if (objectWrapper instanceof ScipioBeansWrapper || BeansWrapper.class.equals(objectWrapper.getClass())) {
return new SimpleMapModel(map, (BeansWrapper) objectWrapper);
} else if (objectWrapper instanceof ObjectWrapperWithAPISupport) {
return DefaultMapAdapter.adapt(map, (ObjectWrapperWithAPISupport) objectWrapper);
} else {
if (permissive) {
Debug.logWarning("Scipio: adaptSimpleMap: Unsupported Freemarker object wrapper (expected to implement ObjectWrapperWithAPISupport or BeansWrapper); forced to adapt map"
+ " using SimpleHash; this could cause loss of map insertion ordering; please switch renderer setup to a different ObjectWrapper", module);
return new SimpleHash(map, objectWrapper);
} else {
throw new TemplateModelException("Tried to wrap a Map using an adapter class,"
+ " but our ObjectWrapper does not implement ObjectWrapperWithAPISupport or BeansWrapper"
+ "; please switch renderer setup to a different ObjectWrapper");
}
}
}
开发者ID:ilscipio,项目名称:scipio-erp,代码行数:28,代码来源:LangFtlUtil.java
示例3: combineMaps
import freemarker.template.TemplateHashModelEx; //导入依赖的package包/类
/**
* Combines two maps with the given operator into a new hash.
*/
public static TemplateHashModelEx combineMaps(TemplateHashModelEx first, TemplateHashModelEx second, SetOperations ops,
ObjectWrapper objectWrapper) throws TemplateModelException {
SimpleHash res = new SimpleHash(objectWrapper);
if (ops == null || ops == SetOperations.UNION) {
// this is less efficient than freemarker + operator, but provides the "alternative" implementation, so have choice
addToSimpleMap(res, first);
addToSimpleMap(res, second);
}
else if (ops == SetOperations.INTERSECT) {
Set<String> intersectKeys = toStringSet(second.keys());
intersectKeys.retainAll(toStringSet(first.keys()));
addToSimpleMap(res, second, intersectKeys);
}
else if (ops == SetOperations.DIFFERENCE) {
Set<String> diffKeys = toStringSet(first.keys());
diffKeys.removeAll(toStringSet(second.keys()));
addToSimpleMap(res, first, diffKeys);
}
else {
throw new TemplateModelException("Unsupported combineMaps operation");
}
return res;
}
开发者ID:ilscipio,项目名称:scipio-erp,代码行数:27,代码来源:LangFtlUtil.java
示例4: execTyped
import freemarker.template.TemplateHashModelEx; //导入依赖的package包/类
public Object execTyped(List<TemplateModel> args) throws TemplateModelException {
if (args.size() != 2) {
throw new TemplateModelException("Invalid number of arguments (expected: 2)");
}
Environment env = FreeMarkerWorker.getCurrentEnvironment();
TemplateModel arg1 = args.get(0);
if (!(arg1 instanceof TemplateScalarModel)) {
throw new TemplateModelException("First argument (type) was not a string");
}
String type = LangFtlUtil.getAsStringNonEscaping((TemplateScalarModel) arg1);
TemplateModel arg2 = args.get(1);
if (!(arg2 instanceof TemplateHashModel)) {
throw new TemplateModelException("Second argument (sectionsMap) was not a map");
}
TemplateHashModelEx sectionsMapModel = (TemplateHashModelEx) LangFtlUtil.toSimpleMap(arg2, false, env.getObjectWrapper());
if ("ftl".equals(type)) {
FtlSectionsRenderer sections = FtlSectionsRenderer.create(sectionsMapModel);
return sections;
} else if ("screen".equals(type)) {
// TODO: "screen": WARN: due to build dependencies we won't be able to invoke widget renderer from here
// may be forced to use reflection (dirty)...
throw new TemplateModelException("First argument (type) currently only supports: ftl (screen type not yet implemented)");
} else {
throw new TemplateModelException("First argument (type) currently only supports: ftl");
}
}
开发者ID:ilscipio,项目名称:scipio-erp,代码行数:31,代码来源:MakeSectionsRendererMethod.java
示例5: execTyped
import freemarker.template.TemplateHashModelEx; //导入依赖的package包/类
@Override
protected Object execTyped(List<TemplateModel> args) throws TemplateModelException {
TemplateHashModelEx varMapsModel = (TemplateHashModelEx) args.get(0);
CommonVarMaps<Map<String, Object>> varMaps = CommonVarMaps.getRawMaps(varMapsModel);
Environment env = FreeMarkerWorker.getCurrentEnvironment();
setVars(varMaps, env);
return new SimpleScalar("");
}
开发者ID:ilscipio,项目名称:scipio-erp,代码行数:9,代码来源:MultiVarMethod.java
示例6: getRawMaps
import freemarker.template.TemplateHashModelEx; //导入依赖的package包/类
@SuppressWarnings("unchecked")
public static CommonVarMaps<Map<String, Object>> getRawMaps(TemplateHashModelEx varMapsModel) throws TemplateModelException {
return new CommonVarMaps<>(
(Map<String, Object>) LangFtlUtil.unwrap(varMapsModel.get("ctxVars")),
(Map<String, Object>) LangFtlUtil.unwrap(varMapsModel.get("globalCtxVars")),
(Map<String, Object>) LangFtlUtil.unwrap(varMapsModel.get("reqAttribs")));
}
开发者ID:ilscipio,项目名称:scipio-erp,代码行数:8,代码来源:MultiVarMethod.java
示例7: toMapModel
import freemarker.template.TemplateHashModelEx; //导入依赖的package包/类
public TemplateHashModelEx toMapModel(Environment env) {
SimpleHash map = new SimpleHash(env.getObjectWrapper());
map.put("ctxVars", ctxVars);
map.put("globalCtxVars", globalCtxVars);
map.put("reqAttribs", reqAttribs);
return map;
}
开发者ID:ilscipio,项目名称:scipio-erp,代码行数:8,代码来源:MultiVarMethod.java
示例8: getAsRawSequence
import freemarker.template.TemplateHashModelEx; //导入依赖的package包/类
@SuppressWarnings("unchecked")
static Collection<String> getAsRawSequence(TemplateModel elems) throws TemplateModelException {
if (elems == null || elems instanceof TemplateBooleanModel) {
return Collections.emptyList();
} else if (elems instanceof TemplateCollectionModel || elems instanceof TemplateSequenceModel) {
return (Collection<String>) LangFtlUtil.unwrapAlways(elems);
} else if (elems instanceof TemplateHashModelEx) {
return (Collection<String>) LangFtlUtil.getMapKeys(elems);
} else {
throw new TemplateModelException("invalid parameter type, can't interpret as sequence: " + elems.getClass());
}
}
开发者ID:ilscipio,项目名称:scipio-erp,代码行数:13,代码来源:MultiVarMethod.java
示例9: copyObject
import freemarker.template.TemplateHashModelEx; //导入依赖的package包/类
/**
* Shallow-copies map or list. Note: won't preserve order for maps.
*
* @param object
* @param toSimpleType if true, converts to simple FTL type instead of beans, where possible
* @return
* @throws TemplateModelException
*/
public static Object copyObject(TemplateModel object, TemplateValueTargetType targetType, ObjectWrapper objectWrapper) throws TemplateModelException {
if (targetType == null) {
targetType = TemplateValueTargetType.PRESERVE;
}
if (OfbizFtlObjectType.COMPLEXMAP.isObjectType(object) || (object instanceof TemplateHashModelEx && OfbizFtlObjectType.MAP.isObjectType(object))) {
return LangFtlUtil.copyMap(object, null, null, targetType, objectWrapper);
}
else if (object instanceof TemplateCollectionModel || object instanceof TemplateSequenceModel) {
return LangFtlUtil.copyList(object, targetType, objectWrapper);
}
else {
throw new TemplateModelException("object is not cloneable");
}
}
开发者ID:ilscipio,项目名称:scipio-erp,代码行数:23,代码来源:LangFtlUtil.java
示例10: addToSimpleMap
import freemarker.template.TemplateHashModelEx; //导入依赖的package包/类
/**
* Adds to simple hash from source map.
* <p>
* <em>WARN</em>: This is not BeanModel-aware (complex map).
*/
public static void addToSimpleMap(SimpleHash dest, TemplateHashModelEx source) throws TemplateModelException {
TemplateCollectionModel keysModel = source.keys();
TemplateModelIterator modelIt = keysModel.iterator();
while(modelIt.hasNext()) {
String key = getAsStringNonEscaping((TemplateScalarModel) modelIt.next());
dest.put(key, source.get(key));
}
}
开发者ID:ilscipio,项目名称:scipio-erp,代码行数:14,代码来源:LangFtlUtil.java
示例11: addModelsToMap
import freemarker.template.TemplateHashModelEx; //导入依赖的package包/类
/**
* Adds the still-wrapped TemplateModels in hash to a java Map.
* <p>
* <em>WARN</em>: This is not BeanModel-aware (complex map).
*/
public static void addModelsToMap(Map<String, ? super TemplateModel> dest, TemplateHashModelEx source) throws TemplateModelException {
TemplateCollectionModel keysModel = source.keys();
TemplateModelIterator modelIt = keysModel.iterator();
while(modelIt.hasNext()) {
String key = getAsStringNonEscaping((TemplateScalarModel) modelIt.next());
dest.put(key, source.get(key));
}
}
开发者ID:ilscipio,项目名称:scipio-erp,代码行数:14,代码来源:LangFtlUtil.java
示例12: create
import freemarker.template.TemplateHashModelEx; //导入依赖的package包/类
public static FtlSectionsRenderer create(TemplateHashModelEx sectionMapModel) throws TemplateModelException {
return new FtlSectionsRenderer(LangFtlUtil.makeModelObjectMap(sectionMapModel), new FtlContextFetcher.FallbackFtlFullFetcher(null, null));
}
开发者ID:ilscipio,项目名称:scipio-erp,代码行数:4,代码来源:FtlSectionsRenderer.java
示例13: getRawSequences
import freemarker.template.TemplateHashModelEx; //导入依赖的package包/类
public static CommonVarMaps<Collection<String>> getRawSequences(TemplateHashModelEx varListsModel) throws TemplateModelException {
return new CommonVarMaps<>(
getAsRawSequence(varListsModel.get("ctxVars")),
getAsRawSequence(varListsModel.get("globalCtxVars")),
getAsRawSequence(varListsModel.get("reqAttribs")));
}
开发者ID:ilscipio,项目名称:scipio-erp,代码行数:7,代码来源:MultiVarMethod.java
示例14: exec
import freemarker.template.TemplateHashModelEx; //导入依赖的package包/类
@SuppressWarnings("unchecked")
@Override
public Object exec(List args) throws TemplateModelException {
if (args == null || args.size() < 1 || args.size() > 2 ) {
throw new TemplateModelException("Invalid number of arguments (expected: 1-2)");
}
ObjectWrapper objectWrapper = CommonFtlUtil.getCurrentEnvironment().getObjectWrapper();
TemplateHashModelEx argsMap = (TemplateHashModelEx) args.get(0);
// caller-supplied excludes
TemplateModel excludesModel = (args.size() >=2) ? (TemplateModel) args.get(1) : null;
Set<String> excludes;
if (excludesModel != null) {
excludes = LangFtlUtil.getAsStringSet(excludesModel);
} else {
excludes = new HashSet<>();
}
SimpleHash res = null;
final Boolean useExclude = Boolean.FALSE;
// put attribs from explicit attribs map first, if any
TemplateModel attribsModel = argsMap.get("attribs");
if (attribsModel != null && OfbizFtlObjectType.isObjectType(OfbizFtlObjectType.MAP, attribsModel)) {
if (OfbizFtlObjectType.isObjectType(OfbizFtlObjectType.COMPLEXMAP, attribsModel)) {
attribsModel = LangFtlUtil.toSimpleMap(attribsModel, false, objectWrapper);
}
res = LangFtlUtil.copyMapToSimple((TemplateHashModel) attribsModel, excludes, useExclude, objectWrapper);
}
// to get inline attribs, add list of all arg names to excludes as well as the lists themselves
TemplateModel allArgNamesModel = argsMap.get("allArgNames");
if (allArgNamesModel != null) {
excludes.addAll(LangFtlUtil.getAsStringSet(allArgNamesModel));
}
excludes.add("allArgNames");
excludes.add("localArgNames");
// add the inline attribs over the attribs map (if any)
if (res == null) {
res = LangFtlUtil.copyMapToSimple(argsMap, excludes, useExclude, objectWrapper);
} else {
LangFtlUtil.putAll(res, argsMap, excludes, useExclude, objectWrapper);
}
return res;
}
开发者ID:ilscipio,项目名称:scipio-erp,代码行数:51,代码来源:MakeAttribMapFromArgMapMethod.java
示例15: makeSimpleMapCopy
import freemarker.template.TemplateHashModelEx; //导入依赖的package包/类
public static TemplateHashModelEx makeSimpleMapCopy(Map<?, ?> map, ObjectWrapper objectWrapper) throws TemplateModelException {
return new SimpleHash(map, objectWrapper);
}
开发者ID:ilscipio,项目名称:scipio-erp,代码行数:4,代码来源:LangFtlUtil.java
示例16: makeModelMap
import freemarker.template.TemplateHashModelEx; //导入依赖的package包/类
public static Map<String, TemplateModel> makeModelMap(TemplateHashModelEx source) throws TemplateModelException {
Map<String, TemplateModel> map = new HashMap<>();
addModelsToMap(map, source);
return map;
}
开发者ID:ilscipio,项目名称:scipio-erp,代码行数:6,代码来源:LangFtlUtil.java
示例17: makeModelObjectMap
import freemarker.template.TemplateHashModelEx; //导入依赖的package包/类
public static Map<String, Object> makeModelObjectMap(TemplateHashModelEx source) throws TemplateModelException {
Map<String, Object> map = new HashMap<>();
addModelsToMap(map, source);
return map;
}
开发者ID:ilscipio,项目名称:scipio-erp,代码行数:6,代码来源:LangFtlUtil.java
示例18: varsPutAll
import freemarker.template.TemplateHashModelEx; //导入依赖的package包/类
public static void varsPutAll(TemplateHashModelEx hashModel, Environment env) throws TemplateModelException {
varsPutAll(hashModel, null, null, new CurrentFtlVarHandler(env), env);
}
开发者ID:ilscipio,项目名称:scipio-erp,代码行数:4,代码来源:LangFtlUtil.java
示例19: localsPutAll
import freemarker.template.TemplateHashModelEx; //导入依赖的package包/类
public static void localsPutAll(TemplateHashModelEx hashModel, Environment env) throws TemplateModelException {
varsPutAll(hashModel, null, null, new LocalFtlVarHandler(env), env);
}
开发者ID:ilscipio,项目名称:scipio-erp,代码行数:4,代码来源:LangFtlUtil.java
示例20: globalsPutAll
import freemarker.template.TemplateHashModelEx; //导入依赖的package包/类
/**
* Puts all values in hash into FTL globals (#global).
* <p>
* @see copyMapToSimple
*/
public static void globalsPutAll(TemplateHashModelEx hashModel, Environment env) throws TemplateModelException {
varsPutAll(hashModel, null, null, new GlobalFtlVarHandler(env), env);
}
开发者ID:ilscipio,项目名称:scipio-erp,代码行数:9,代码来源:LangFtlUtil.java
注:本文中的freemarker.template.TemplateHashModelEx类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论