применить матричный фильтр к нескольким данным в java - PullRequest
0 голосов
/ 06 марта 2020

В настоящее время я использую что-то вроде:

public void List<Product> filter(List<Product> products, User user)
{
    List<Product> filteredProduct = new ArrayList<Product>();
    for(Product product : products)
    {
        if( filterA(Product product, User user) ||
            filterB(Product product, User user) ||
            filterC(Product product, User user) )
        {
            filteredProduct.Add(product);
        }
    }
    return filteredProduct;
}

public static bool filterA(Product product, User user)
{
    return product.isOpen();
}

public static bool filterB(Product product, User user)
{
    return product.fieldA().equals("XX") && user.getDesk().equals( product.getDesk());
}

public static bool filterC(Product product, User user)
{
    return product.fieldA().equals("YY") && 
        user.scopes().contains(product.getScope())
        ...;
}

Все фильтры жестко закодированы. Когда мне нужно добавить фильтр, я должен разработать и поставить новую версию на производстве. Вы знаете какой-нибудь java бесплатный фреймворк или я должен разработать свой собственный фреймворк?

Большое спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...