- protected DOMActionRoutingTableEntry createOperationEntry(final SchemaContext context, final SchemaPath type,
- final Map<DOMDataTreeIdentifier, List<DOMActionImplementation>> implementations) {
- final ActionDefinition actionDef = findActionDefinition(context, type);
- if (actionDef == null) {
- //FIXME: return null directly instead of providing kind of unknown entry.
- return null;
- }
-
- return new DOMActionRoutingTableEntry(type, implementations);
- }
-
- private static ActionDefinition findActionDefinition(final SchemaContext context, final SchemaPath path) {
- final SchemaNode node = SchemaContextUtil.findDataSchemaNode(context, path.getParent());
- if (node != null) {
- if (node instanceof ActionNodeContainer) {
- for (ActionDefinition action : ((ActionNodeContainer) node).getActions()) {
- if (action.getQName().equals(path.getLastComponent())) {
- return action;
- }
- }
- }
- }
- return null;
+ protected DOMActionRoutingTableEntry createOperationEntry(final EffectiveModelContext context,
+ final Absolute type, final Map<DOMDataTreeIdentifier, List<DOMActionImplementation>> implementations) {
+ return context.findSchemaTreeNode(ActionDefinition.class, type)
+ .map(dummy -> new DOMActionRoutingTableEntry(type, implementations))
+ .orElse(null);