code: @Override
      public B addInputColumns(Collection<? extends InputColumn<?>> inputColumns,
              ConfiguredPropertyDescriptor propertyDescriptor) {
          if (propertyDescriptor == null || !propertyDescriptor.isInputColumn()) {
              throw new IllegalArgumentException("Property is not of InputColumn type: " + propertyDescriptor);
          }
  
          final Class<?> expectedDataType = propertyDescriptor.getTypeArgument(0);
          if (expectedDataType != null && expectedDataType != Object.class) {
              // check input column type parameter compatibility
              for (InputColumn<?> inputColumn : inputColumns) {
                  final Class<?> actualDataType = inputColumn.getDataType();
                  if (!ReflectionUtils.is(actualDataType, expectedDataType, false)) {
                      throw new IllegalArgumentException("Unsupported InputColumn type: " + actualDataType
                              + ", expected: " + expectedDataType);
                  }
              }
          }
  
          Object newInputColumns = getConfiguredProperty(propertyDescriptor);
          if (newInputColumns == null) {
              if (propertyDescriptor.isArray()) {
                  InputColumn<?>[] asArray = inputColumns.toArray(new InputColumn[inputColumns.size()]);
                  newInputColumns = asArray;
              } else {
                  if (inputColumns == null || inputColumns.isEmpty()) {
                      newInputColumns = null;
                  } else if (inputColumns.size() > 1) {
                      throw new IllegalArgumentException(
                              "Property type is a single InputColumn, but a collection of more than one element was given");
                  } else {
                      newInputColumns = inputColumns.iterator().next();
                  }
              }
          } else {
              InputColumn<?>[] asArray = inputColumns.toArray(new InputColumn[inputColumns.size()]);
              newInputColumns = CollectionUtils2.array(InputColumn.class, newInputColumns, asArray);
          }
          setConfiguredProperty(propertyDescriptor, newInputColumns);
          return (B) this;
      }
docs: delegate to