This project has retired. For details please refer to its
Attic page.
DefaultAttributeResolver xref
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package org.apache.tiles.template;
23
24 import org.apache.tiles.Attribute;
25 import org.apache.tiles.AttributeContext;
26 import org.apache.tiles.Expression;
27 import org.apache.tiles.TilesContainer;
28 import org.apache.tiles.request.Request;
29
30
31
32
33
34
35
36 public class DefaultAttributeResolver implements AttributeResolver {
37
38
39 public Attribute computeAttribute(TilesContainer container, Attribute attribute,
40 String name, String role, boolean ignore,
41 Object defaultValue, String defaultValueRole, String defaultValueType, Request request) {
42 if (attribute == null) {
43 AttributeContext evaluatingContext = container
44 .getAttributeContext(request);
45 attribute = evaluatingContext.getAttribute(name);
46 if (attribute == null) {
47 attribute = computeDefaultAttribute(defaultValue,
48 defaultValueRole, defaultValueType);
49 if (attribute == null && !ignore) {
50 throw new NoSuchAttributeException("Attribute '" + name
51 + "' not found.");
52 }
53 }
54 }
55 if (attribute != null && role != null && !"".equals(role.trim())) {
56 attribute = new Attribute(attribute);
57 attribute.setRole(role);
58 }
59 return attribute;
60 }
61
62
63
64
65
66
67
68
69
70 private Attribute computeDefaultAttribute(Object defaultValue,
71 String defaultValueRole, String defaultValueType) {
72 Attribute attribute = null;
73 if (defaultValue != null) {
74 if (defaultValue instanceof Attribute) {
75 attribute = (Attribute) defaultValue;
76 } else if (defaultValue instanceof String) {
77 attribute = new Attribute(defaultValue, (Expression) null,
78 defaultValueRole, defaultValueType);
79 }
80 }
81 return attribute;
82 }
83 }