Author: sebb Date: Tue Jan 26 02:07:26 2010 New Revision: 903046 URL: http://svn.apache.org/viewvc?rev=903046&view=rev Log: Document why OK to suppress unchecked warning Move tag as close as possible to site of warning
Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/genetics/OnePointCrossover.java commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/AbstractFieldMatrix.java commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/ArrayFieldVector.java commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/FieldLUDecompositionImpl.java commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/MatrixUtils.java Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/genetics/OnePointCrossover.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/genetics/OnePointCrossover.java?rev=903046&r1=903045&r2=903046&view=diff ============================================================================== --- commons/proper/math/trunk/src/main/java/org/apache/commons/math/genetics/OnePointCrossover.java (original) +++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/genetics/OnePointCrossover.java Tue Jan 26 02:07:26 2010 @@ -66,9 +66,9 @@ * @param second second parent (p2) * @return pair of two children (c1,c2) */ - @SuppressWarnings("unchecked") + @SuppressWarnings("unchecked") // OK because of instanceof checks public ChromosomePair crossover(Chromosome first, Chromosome second) { - if (! (first instanceof AbstractListChromosome && second instanceof AbstractListChromosome)) { + if (! (first instanceof AbstractListChromosome<?> && second instanceof AbstractListChromosome<?>)) { throw new IllegalArgumentException("One point crossover works on FixedLengthChromosomes only."); } return crossover((AbstractListChromosome<T>) first, (AbstractListChromosome<T>) second); Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/AbstractFieldMatrix.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/AbstractFieldMatrix.java?rev=903046&r1=903045&r2=903046&view=diff ============================================================================== --- commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/AbstractFieldMatrix.java (original) +++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/AbstractFieldMatrix.java Tue Jan 26 02:07:26 2010 @@ -146,9 +146,9 @@ * @param length of the array * @return a new array */ - @SuppressWarnings("unchecked") protected static <T extends FieldElement<T>> T[] buildArray(final Field<T> field, final int length) { + @SuppressWarnings("unchecked") // OK because field must be correct class T[] array = (T[]) Array.newInstance(field.getZero().getClass(), length); Arrays.fill(array, field.getZero()); return array; @@ -970,16 +970,15 @@ * @param object the object to test equality against. * @return true if object equals this */ - @SuppressWarnings("unchecked") @Override public boolean equals(final Object object) { if (object == this ) { return true; } - if (object instanceof FieldMatrix == false) { + if (object instanceof FieldMatrix<?> == false) { return false; } - FieldMatrix<T> m = (FieldMatrix<T>) object; + FieldMatrix<?> m = (FieldMatrix<?>) object; final int nRows = getRowDimension(); final int nCols = getColumnDimension(); if (m.getColumnDimension() != nCols || m.getRowDimension() != nRows) { Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/ArrayFieldVector.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/ArrayFieldVector.java?rev=903046&r1=903045&r2=903046&view=diff ============================================================================== --- commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/ArrayFieldVector.java (original) +++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/ArrayFieldVector.java Tue Jan 26 02:07:26 2010 @@ -223,7 +223,7 @@ * @param length size of the array to build * @return a new array */ - @SuppressWarnings("unchecked") + @SuppressWarnings("unchecked") // field is of type T private T[] buildArray(final int length) { return (T[]) Array.newInstance(field.getZero().getClass(), length); } @@ -739,7 +739,6 @@ * not equal to this Vector3D instance * */ - @SuppressWarnings("unchecked") @Override public boolean equals(Object other) { @@ -752,7 +751,7 @@ } try { - + @SuppressWarnings("unchecked") // May fail, but we ignore ClassCastException FieldVector<T> rhs = (FieldVector<T>) other; if (data.length != rhs.getDimension()) { return false; Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/FieldLUDecompositionImpl.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/FieldLUDecompositionImpl.java?rev=903046&r1=903045&r2=903046&view=diff ============================================================================== --- commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/FieldLUDecompositionImpl.java (original) +++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/FieldLUDecompositionImpl.java Tue Jan 26 02:07:26 2010 @@ -257,7 +257,6 @@ } /** {...@inheritdoc} */ - @SuppressWarnings("unchecked") public T[] solve(T[] b) throws IllegalArgumentException, InvalidMatrixException { @@ -271,6 +270,7 @@ throw new SingularMatrixException(); } + @SuppressWarnings("unchecked") // field is of type T final T[] bp = (T[]) Array.newInstance(field.getZero().getClass(), m); // Apply permutations to b @@ -300,7 +300,6 @@ } /** {...@inheritdoc} */ - @SuppressWarnings("unchecked") public FieldVector<T> solve(FieldVector<T> b) throws IllegalArgumentException, InvalidMatrixException { try { @@ -317,6 +316,7 @@ throw new SingularMatrixException(); } + @SuppressWarnings("unchecked") // field is of type T final T[] bp = (T[]) Array.newInstance(field.getZero().getClass(), m); // Apply permutations to b @@ -359,7 +359,6 @@ } /** {...@inheritdoc} */ - @SuppressWarnings("unchecked") public FieldMatrix<T> solve(FieldMatrix<T> b) throws IllegalArgumentException, InvalidMatrixException { @@ -376,6 +375,7 @@ final int nColB = b.getColumnDimension(); // Apply permutations to b + @SuppressWarnings("unchecked") // field is of type T final T[][] bp = (T[][]) Array.newInstance(field.getZero().getClass(), new int[] { m, nColB }); for (int row = 0; row < m; row++) { final T[] bpRow = bp[row]; Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/MatrixUtils.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/MatrixUtils.java?rev=903046&r1=903045&r2=903046&view=diff ============================================================================== --- commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/MatrixUtils.java (original) +++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/MatrixUtils.java Tue Jan 26 02:07:26 2010 @@ -156,11 +156,11 @@ * @throws IllegalArgumentException if dimension is not positive * @since 2.0 */ - @SuppressWarnings("unchecked") public static <T extends FieldElement<T>> FieldMatrix<T> createFieldIdentityMatrix(final Field<T> field, final int dimension) { final T zero = field.getZero(); final T one = field.getOne(); + @SuppressWarnings("unchecked") // zero is type T final T[][] d = (T[][]) Array.newInstance(zero.getClass(), new int[] { dimension, dimension }); for (int row = 0; row < dimension; row++) { final T[] dRow = d[row];