@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;
 }