public static AbstractPropertyValue getDefaultPropertyValueFromPropertyDefinition(
     PropertyDefinition propertyDefinition) {
   if (propertyDefinition == null) {
     return null;
   }
   Object defaultValue = propertyDefinition.getDefault();
   if (defaultValue == null) {
     return null;
   }
   return (AbstractPropertyValue) defaultValue;
 }
  @ApiIgnore
  @RequestMapping(
      value = "/deployment-prop-check",
      method = RequestMethod.POST,
      consumes = MediaType.APPLICATION_JSON_VALUE)
  @PreAuthorize("isAuthenticated()")
  public RestResponse<ConstraintUtil.ConstraintInformation> checkPluginDeploymentProperties(
      @ApiParam(
              value = "Id of the orchestrators for which to check deployment property.",
              required = true)
          @PathVariable
          @Valid
          @NotEmpty
          String orchestratorId,
      @ApiParam(value = "Value and id of the property to check.", required = true)
          @Valid
          @NotEmpty
          @RequestBody
          PropertyRequest deploymentPropertyValidationRequest) {
    Map<String, PropertyDefinition> deploymentPropertyDefinitions =
        orchestratorDeploymentService.getDeploymentPropertyDefinitions(orchestratorId);

    if (deploymentPropertyDefinitions != null) {
      PropertyDefinition propertyDefinition =
          deploymentPropertyDefinitions.get(deploymentPropertyValidationRequest.getDefinitionId());
      if (propertyDefinition != null && propertyDefinition.getConstraints() != null) {
        try {
          constraintPropertyService.checkSimplePropertyConstraint(
              deploymentPropertyValidationRequest.getDefinitionId(),
              deploymentPropertyValidationRequest.getValue(),
              propertyDefinition);
        } catch (ConstraintViolationException e) {
          log.error(
              "Constraint violation error for property <"
                  + deploymentPropertyValidationRequest.getDefinitionId()
                  + "> with value <"
                  + deploymentPropertyValidationRequest.getValue()
                  + ">",
              e);
          return RestResponseBuilder.<ConstraintUtil.ConstraintInformation>builder()
              .data(e.getConstraintInformation())
              .error(
                  RestErrorBuilder.builder(RestErrorCode.PROPERTY_CONSTRAINT_VIOLATION_ERROR)
                      .message(e.getMessage())
                      .build())
              .build();
        } catch (ConstraintValueDoNotMatchPropertyTypeException e) {
          log.error(
              "Constraint value violation error for property <"
                  + e.getConstraintInformation().getName()
                  + "> with value <"
                  + e.getConstraintInformation().getValue()
                  + "> and type <"
                  + e.getConstraintInformation().getType()
                  + ">",
              e);
          return RestResponseBuilder.<ConstraintUtil.ConstraintInformation>builder()
              .data(e.getConstraintInformation())
              .error(
                  RestErrorBuilder.builder(RestErrorCode.PROPERTY_TYPE_VIOLATION_ERROR)
                      .message(e.getMessage())
                      .build())
              .build();
        }
      }
    }
    return RestResponseBuilder.<ConstraintUtil.ConstraintInformation>builder().build();
  }