Source:
public void setComponent(Component comp) { _component = comp; _paramResolvers.put(ScopeParam.class, new ParamResolver<Annotation>() { public Object resolveParameter(Annotation anno, Class<?> returnType) { final String name = ((ScopeParam) anno).value(); final Scope[] ss = ((ScopeParam) anno).scopes(); Object val = null; for (Scope s : ss) { switch (s) { case AUTO: if (ss.length == 1) { val = _component.getAttribute(name, true); } else { throw new UiException("don't use " + s + " with other scopes " + Arrays.toString(ss)); } if (val == null) { val = Executions.getCurrent().getAttribute(name); } } } if (val == null) { for (Scope scope : ss) { final String scopeName = scope.getName(); Object scopeObj = Components.getImplicit(_component, scopeName); if (scopeObj instanceof Map) { val = ((Map<?, ?>) scopeObj).get(name); if (val != null) break; } else if (scopeObj != null) { _log.error("the scope of " + scopeName + " is not a Map, is " + scopeObj); } } } if (val instanceof ReferenceBinding) { val = resolveReferenceBinding(name, (ReferenceBinding) val, returnType); } return val == null ? null : Classes.coerce(returnType, val); } }); _paramResolvers.put(SelectorParam.class, new ParamResolver<Annotation>() { public Object resolveParameter(Annotation anno, Class<?> returnType) { final String selector = ((SelectorParam) anno).value(); final List<Component> result = Selectors.find(_root, selector); Object val; if (!Collection.class.isAssignableFrom(returnType)) { val = result.size() > 0 ? Classes.coerce(returnType, result.get(0)) : null; } else { val = Classes.coerce(returnType, result); } return val; } }); }

Target:
public void setComponent(Component comp) { _component = comp; _paramResolvers.put(ScopeParam.class, new ParamResolver<Annotation>() { public Object resolveParameter(Annotation anno, Class<?> returnType) { final String name = ((ScopeParam) anno).value(); final Scope[] ss = ((ScopeParam) anno).scopes(); Object val = null; for (Scope s : ss) { switch (s) { case AUTO: if (ss.length == 1) { if (_execution != null) val = _execution.getAttribute(name); if (val == null) val = _component.getAttribute(name, true); } else { throw new UiException("don't use " + s + " with other scopes " + Arrays.toString(ss)); } } } if (val == null) { for (Scope scope : ss) { final String scopeName = scope.getName(); Object scopeObj = Components.getImplicit(_component, scopeName); if (scopeObj instanceof Map) { val = ((Map<?, ?>) scopeObj).get(name); if (val != null) break; } else if (scopeObj != null) { _log.error("the scope of " + scopeName + " is not a Map, is " + scopeObj); } } } if (val instanceof ReferenceBinding) { val = resolveReferenceBinding(name, (ReferenceBinding) val, returnType); } return val == null ? null : Classes.coerce(returnType, val); } }); _paramResolvers.put(SelectorParam.class, new ParamResolver<Annotation>() { public Object resolveParameter(Annotation anno, Class<?> returnType) { final String selector = ((SelectorParam) anno).value(); final List<Component> result = Selectors.find(_root, selector); Object val; if (!Collection.class.isAssignableFrom(returnType)) { val = result.size() > 0 ? Classes.coerce(returnType, result.get(0)) : null; } else { val = Classes.coerce(returnType, result); } return val; } }); }