class BasicPatternDefinitionResolver extends
        AbstractPatternDefinitionResolver<T> {

    @Override
    protected Map<String, Definition> addDefinitionsAsPatternMatchers(List<DefinitionPatternMatcher> matchers,
            Map<String, Definition> defsMap) {
        Set<String> excludedKeys = new LinkedHashSet<String>();
        for (Map.Entry<String, Definition> de : defsMap.entrySet()) {
            String key = de.getKey();
            if (patternRecognizer.isPatternRecognized(key)) {
                matchers.add(definitionPatternMatcherFactory
                        .createDefinitionPatternMatcher(key, de.getValue()));
            } else {
                excludedKeys.add(key);
            }
        }
        return PatternUtil.createExtractedMap(defsMap, excludedKeys);
    }

    public  BasicPatternDefinitionResolver(DefinitionPatternMatcherFactory definitionPatternMatcherFactory,
            PatternRecognizer patternRecognizer);

}