public Value read(Type type, NodeMap<InputNode> node, Map map) throws Exception { Component component = type.getAnnotation(Component.class); if (component != null) { String name = component.name(); InputNode value = node.get(KEY); if (!value.getValue().equals(name)) { throw new IllegalStateException( "Component name incorrect, expected '" + name + "' but was '" + value.getValue() + "'"); } } return strategy.read(type, node, map); }