@Nullable
public TNodeType buildNodeType(Object object, Parameter<TNodeType> parameter) {
if (Objects.isNull(object) || !validate(TNodeType.class, object, parameter)) return null;
@SuppressWarnings("unchecked")
Map<String, Object> map = (Map<String, Object>) object;
return buildEntityType(object, new Parameter<TNodeType.Builder>(parameter.getContext())
.setBuilder(new TNodeType.Builder())
.setClazz(TNodeType.class))
.setRequirements(buildList(map, "requirements", this::buildMapRequirementDefinition, parameter))
.setCapabilities(buildMap(map, "capabilities", this::buildCapabilityDefinition, parameter))
.setInterfaces(buildMap(map.get("interfaces"),
new Parameter<TInterfaceDefinition>(parameter.getContext()).addContext("interfaces")
.setValue("TNodeType")
.setBuilderOO(this::buildInterfaceDefinition)
))
.setArtifacts(buildMap(map, "artifacts", this::buildArtifactDefinition, parameter))
.build();
}