/** * @param name the name of the element * @param parameters the parameters */ public FilterElementDescriptor(String name, FilterElementParameterDescriptor<?>[] parameters) { this.name = name; this.parameters = parameters; for (FilterElementParameterDescriptor<?> parameter : parameters) { if (parameter.getName() != null) { this.parametersIndex.put(parameter.getName(), parameter.getIndex()); } } }
private static void invokeUnkown(Object filter, FilterDescriptor descriptor, Method method, Object[] args) throws FilterException { String id = DefaultFilterDescriptorManager.getElementName(method); if (id != null) { FilterElementDescriptor element = descriptor.getElement(id); if (element != null) { FilterEventParameters metadata = new FilterEventParameters(); for (FilterElementParameterDescriptor<?> parameter : element.getParameters()) { metadata.put( parameter.getName() != null ? parameter.getName() : String.valueOf(parameter.getIndex()), args[parameter.getIndex()]); } UnknownFilter unknownFilter = (UnknownFilter) filter; if (method.getName().startsWith(DefaultFilterDescriptorManager.PREFIX_BEGIN)) { unknownFilter.beginUnknwon(id, metadata); } else if (method.getName().startsWith(DefaultFilterDescriptorManager.PREFIX_END)) { unknownFilter.endUnknwon(id, metadata); } else if (method.getName().startsWith(DefaultFilterDescriptorManager.PREFIX_ON)) { unknownFilter.onUnknwon(id, metadata); } } } } }
if (parameterDescriptor.getName() != null && parameters.containsKey(parameterDescriptor.getName())) { value = parameters.get(parameterDescriptor.getName()); } else if (parameters.containsKey(String.valueOf(parameterDescriptor.getIndex()))) { value = parameters.get(String.valueOf(parameterDescriptor.getIndex())); } else { value = parameterDescriptor.getDefaultValue(); arguments[parameterDescriptor.getIndex()] = value;