@Override public boolean isSupportedMethod(IMethodContext dataObject) { if (getFilters()!=null){ for (IMethodFilter iMethodFilter : getFilters()) { if (!iMethodFilter.isSupportedMethod(dataObject)){ return false; } } } return true; } }
@Override public List<IMethodFilter> getFilters() { if (filters == null){ filters = makeFilters(oMethod.filters()); } return filters; } @Override
protected List<IMethodFilter> makeFilters(OFilter[] filters){ ArrayList<IMethodFilter> result = new ArrayList<IMethodFilter>(filters.length); for (OFilter iMethodFilter : filters) { IMethodFilter newFilter; try { newFilter = iMethodFilter.fClass().newInstance(); newFilter.setFilterData(iMethodFilter.fData()); result.add(newFilter); } catch (InstantiationException | IllegalAccessException e) { LOG.error("Can't make a filter", e); } } if (!getSelector().isEmpty()){ result.add(new SelectorFilter().setFilterData(getSelector())); } if (!getPermission().isEmpty()){ result.add(new PermissionFilter().setFilterData(getPermission())); } return result; }
@Override protected List<IMethodFilter> makeFilters(OFilter[] filters) { List<IMethodFilter> ret = super.makeFilters(filters); if(getSelector().isEmpty()) ret.add(new SelectorFilter().setFilterData(javaClass.getSimpleName())); return ret; }