@Override protected ResourceFilter createInstance( ResourceHandle resource, Class<? extends ResourceFilter> type) throws Exception { ResourceFilter.FilterSet.Rule rule = ResourceFilter.FilterSet.Rule.valueOf(resource.getProperty(PROPERTY_RULE, (String) null)); List<ResourceHandle> filterResources = resource.getChildrenByResourceType(RESOURCE_FILTER_TYPE); List<ResourceFilter> filterList = new ArrayList<>(); for (ResourceHandle filterRes : filterResources) { ResourceFilter filter = ResourceFilterMapping.fromResource(filterRes); filterList.add(filter); } ResourceFilter filter = type.getConstructor(ResourceFilter.FilterSet.Rule.class, List.class) .newInstance(rule, filterList); return filter; }