@Override
    public void check(Model model) {
        if (model == null)
            return;

        List<Model> appenderModels = new ArrayList<>();
        deepFindAllModelsOfType(AppenderModel.class, appenderModels, model);

        List<Pair<Model, Model>> nestedPairs = deepFindNestedSubModelsOfType(AppenderModel.class, appenderModels);

        List<Pair<Model, Model>> filteredNestedPairs = nestedPairs.stream().filter(pair -> !isSiftingAppender(pair.first)).collect(Collectors.toList());

        if(filteredNestedPairs.isEmpty()) {
            return;
        }
        addWarn(NESTED_APPENDERS_WARNING);
        for(Pair<Model, Model> pair: filteredNestedPairs) {
            addWarn("Appender at line "+pair.first.getLineNumber() + " contains a nested appender at line "+pair.second.getLineNumber());
        }
    }
@Test
    public void singleAppender() {
        TopModel topModel = new TopModel();
        AppenderModel appenderModel0 = new AppenderModel();
        appenderModel0.setLineNumber(1);
        topModel.addSubModel(appenderModel0);
        awasc.check(topModel);
        statusChecker.assertIsWarningOrErrorFree();
    }