class EventStrategyDecoratorFactory {

    public EventStrategy getDecorator(
            final VoiceXmlInterpreterContext context,
            final VoiceXmlInterpreter interpreter,
            final FormInterpretationAlgorithm fia, final CatchContainer item) {
        if (item == null) {
            LOGGER.warn("can not obtain a decorator for a null input item");
            return null;
        }
        final String tagName = item.getNodeTagName();
        final EventStrategyPrototype prototype = STRATEGIES.get(tagName);
        if (prototype == null) {
            LOGGER.warn("no decorator for tag '" + tagName + "'");
            return null;
        }
        return prototype.newInstance(context, interpreter, fia, item);
    }

}