/** * Copies the definition map to be passed to a higher level of customization * key. * * @param localeDefsMap The map of definition to be copied. * @return The copy of the definition map. This particular implementation * deep-copies the <code>localeDefsMap</code> into a {@link LinkedHashMap}. * @since 2.1.4 */ @Override protected Map<String, Definition> copyDefinitionMap( Map<String, Definition> localeDefsMap) { Map<String, Definition> retValue = new LinkedHashMap<String, Definition>( localeDefsMap.size()); for (Map.Entry<String, Definition> entry : localeDefsMap.entrySet()) { Definition definition = new Definition(entry.getValue()); retValue.put(entry.getKey(), definition); } return retValue; } }
/** * Copies the definition map to be passed to a higher level of customization * key. * * @param localeDefsMap The map of definition to be copied. * @return The copy of the definition map. This particular implementation * deep-copies the <code>localeDefsMap</code> into a {@link LinkedHashMap}. * @since 2.1.4 */ @Override protected Map<String, Definition> copyDefinitionMap( Map<String, Definition> localeDefsMap) { Map<String, Definition> retValue = new LinkedHashMap<String, Definition>( localeDefsMap.size()); for (Map.Entry<String, Definition> entry : localeDefsMap.entrySet()) { Definition definition = new Definition(entry.getValue()); retValue.put(entry.getKey(), definition); } return retValue; } }
Definition d = new Definition(); d.setCategory(GrammaticalCategory.ADJECTIVE); d.setDefinition("testdefinition"); JAXB.marshal(d, new File("out.xml"));
/** {@inheritDoc} */ @Override protected Map<String, Definition> addDefinitionsAsPatternMatchers( List<DefinitionPatternMatcher> matchers, Map<String, Definition> defsMap) { Set<String> excludedKeys = new LinkedHashSet<String>(); for (Map.Entry<String, Definition> entry : defsMap.entrySet()) { String key = entry.getKey(); Expression expression = Expression .createExpressionFromDescribedExpression(key); if (expression.getLanguage() != null) { DefinitionPatternMatcherFactory factory = language2matcherFactory .get(expression.getLanguage()); if (factory != null) { DefinitionPatternMatcher matcher = factory .createDefinitionPatternMatcher(expression .getExpression(), new Definition(entry .getValue())); matchers.add(matcher); } else { logger.warn("Cannot find a DefinitionPatternMatcherFactory for expression '{}'", key); } } else { excludedKeys.add(key); } } return PatternUtil.createExtractedMap(defsMap, excludedKeys); } }
/** * Creates the definition to store. * * @param name The name of the definition to create. If not specified, an * anonymous definition will be created. * @param template The template of this definition. * @param role A comma-separated list of roles. If present, the definition * will be rendered only if the current user belongs to one of the roles. * @param extendsParam The definition name that this definition extends. * @param preparer The preparer to use to invoke before the definition is * rendered. * @return The created definition. */ private Definition createDefinition(String name, String template, String role, String extendsParam, String preparer) { Definition definition = new Definition(); definition.setName(name); Attribute templateAttribute = Attribute .createTemplateAttribute(template); templateAttribute.setRole(role); definition.setTemplateAttribute(templateAttribute); definition.setExtends(extendsParam); definition.setPreparer(preparer); return definition; }
/** {@inheritDoc} */ public Definition getDefinition(String name, TilesRequestContext tilesContext) { Definition retValue; Locale locale = null; if (tilesContext != null) { locale = localeResolver.resolveLocale(tilesContext); } retValue = definitionDao.getDefinition(name, locale); if (retValue != null) { retValue = new Definition(retValue); String parentDefinitionName = retValue.getExtends(); while (parentDefinitionName != null) { Definition parent = definitionDao.getDefinition( parentDefinitionName, locale); if (parent == null) { throw new NoSuchDefinitionException("Cannot find definition '" + parentDefinitionName + "' ancestor of '" + retValue.getName() + "'"); } retValue.inherit(parent); parentDefinitionName = parent.getExtends(); } } return retValue; }
retValue = new Definition(retValue); String parentDefinitionName = retValue.getExtends(); while (parentDefinitionName != null) {
/** {@inheritDoc} */ public int doStartTag() throws TilesJspException { definition = new Definition(); definition.setName(name); Attribute templateAttribute = Attribute .createTemplateAttribute(template); templateAttribute.setRole(role); definition.setTemplateAttribute(templateAttribute); definition.setExtends(extend); definition.setPreparer(preparer); TilesContainer c = JspUtil.getCurrentContainer(pageContext); if (c == null) { throw new TilesJspException("TilesContainer not initialized"); } if (!(c instanceof MutableTilesContainer)) { throw new TilesJspException( "Unable to define definition for a " + "container which does not implement MutableTilesContainer"); } container = (MutableTilesContainer) c; return EVAL_BODY_INCLUDE; }
/** * Creates a definition given its representation with wildcards. * * @param d The definition to replace. * @param name The name of the definition to be created. * @param vars The variables to be substituted. * @return The definition that can be rendered. * @since 2.1.0 */ protected Definition replaceDefinition(Definition d, String name, Map<Integer, String> vars) { Definition nudef = new Definition(); nudef.setExtends(replace(d.getExtends(), vars)); nudef.setName(name); nudef.setPreparer(replace(d.getPreparer(), vars)); nudef.setTemplateAttribute(replaceVarsInAttribute(d .getTemplateAttribute(), vars)); Set<String> localAttributeNames = d.getLocalAttributeNames(); if (localAttributeNames != null && !localAttributeNames.isEmpty()) { for (String attributeName : localAttributeNames) { Attribute attr = d.getLocalAttribute(attributeName); Attribute nuattr = replaceVarsInAttribute(attr, vars); nudef.putAttribute(replace(attributeName, vars), nuattr); } } return nudef; }
Definition nudef = new Definition();
Definition definition = new Definition();