@SuppressWarnings({"unchecked", "rawtypes"})
	static PermutationChromosome read(final ObjectInput in)
		throws IOException, ClassNotFoundException
	{
		final ISeq validAlleles = (ISeq)in.readObject();
		final MSeq genes = MSeq.ofLength(validAlleles.length());
		for (int i = 0, n = validAlleles.length(); i < n; ++i) {
			genes.set(i, new EnumGene(readInt(in), validAlleles));
		}

		return new PermutationChromosome(genes.toISeq());
	}
Create an integer permutation chromosome with the given range and length

@since 3.4

@param range the value range
@param length the chromosome length
@return a new integer permutation chromosome
@throws NullPointerException if the given {@code range} is {@code null}
@throws IllegalArgumentException if
        {@code range.getMax() - range.getMin() < length},
        {@code length <= 0} or
        {@code (range.getMax() - range.getMin())*length} will cause an
        integer overflow.
jenetics/src/main/java/io/jenetics/PermutationChromosome.java