/** * @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()); } } }
@Override public String toString() { StringBuilder builder = new StringBuilder(); builder.append(getName()); builder.append(':'); builder.append(getType()); return builder.toString(); } }
private void checkCompatible(FilterElementDescriptor element, FilterElementParameterDescriptor<?>[] parameters) throws IncompatibleFilterException { for (FilterElementParameterDescriptor<?> parameter : parameters) { FilterElementParameterDescriptor<?> elementParameter = element.getParameter(parameter.getName()); if (elementParameter != null && !elementParameter.getType().equals(parameter.getType())) { throw new IncompatibleFilterException("Parameter [" + parameter + "] is not compatible with parameter [" + elementParameter + "] (different types)"); } } }
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()));