public static <A> Codec<ISeq<A>, AnyGene<A>> ofVector(
		final Supplier<? extends A> supplier,
		final Predicate<? super A> validator,
		final int length
	) {
		return ofVector(
			supplier,
			validator,
			Predicates.True(),
			length
		);
	}
Return a scala {@link Codec} with the given allele {@link Supplier},
allele {@code validator} and {@code Chromosome} length. The
{@code supplier} is responsible for creating new random alleles, and the
{@code validator} can verify it.

@param <A> the allele type
@param supplier the allele-supplier which is used for creating new,
       random alleles
@param validator the validator used for validating the created gene. This
       predicate is used in the {@link AnyGene#isValid()} method.
@param length the vector length
@return a new {@code Codec} with the given parameters
@throws NullPointerException if one of the parameters is {@code null}
@throws IllegalArgumentException if the length of the vector is smaller
        than one.
jenetics/src/main/java/io/jenetics/engine/Codecs.java