@Nullable public TInterfaceDefinition buildInterfaceDefinition(Object object, Parameter<TInterfaceDefinition> parameter) { if (Objects.isNull(object) || !validate(TInterfaceType.class, object, parameter)) return null; @SuppressWarnings("unchecked") Map<String, Object> map = (Map<String, Object>) object; return new TInterfaceDefinition.Builder() .setType(buildQName(stringValue(map.get("type")))) .setInputs(buildPropertyAssignmentOrDefinition(map.get("inputs"), new Parameter<>(parameter.getContext()).addContext("inputs") .setValue(parameter.getValue()) )) .setOperations(buildMap(object, new Parameter<TOperationDefinition>(parameter.getContext()) .setValue(parameter.getValue()).addContext("(operation)") .setBuilderOO(this::buildOperationDefinition) .setFilter(this::filterInterfaceAssignmentOperation) )) .build(); }