@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();
}