code: @SuppressWarnings("unchecked")
      public Object execute(final Object value, final CsvContext context) {
          
          if(value == null) {
              return next.execute(value, context);
          }
          
          final String stringValue = value.toString();
          final int length = stringValue.length();
          
          if( !requriedLengths.contains(length)) {
              final String joinedLength = requriedLengths.stream()
                      .map(String::valueOf).collect(Collectors.joining(", "));
              
              throw createValidationException(context)
                  .messageFormat("the length (%d) of value '%s' not any of required lengths (%s)",
                          length, stringValue, joinedLength)
                  .rejectedValue(stringValue)
                  .messageVariables("length", length)
                  .messageVariables("requiredLengths", getRequiredLengths())
                  .build();
                  
          }
          
          return next.execute(stringValue, context);
      }
docs: {@inheritDoc}
  
  @throws SuperCsvCellProcessorException
  {@literal if value is null}
  @throws SuperCsvConstraintViolationException
  {@literal if length is < min or length > max}