@Override
    public int hashCode() {
        int hash = 3;
        hash = 97 * hash + (this.qualifyingNames != null ? this.qualifyingNames.hashCode() : 0);
        hash = 97 * hash + (this.resultType != null ? this.resultType.toString().hashCode() : 0);
        return hash;
    }
@Test
    public void testHashCode() {
        List<String> qualifyingNames = Arrays.asList( "language", "german" );
        TypeMirror resultType = new TestTypeMirror( "resultType" );
        SelectionParameters params = new SelectionParameters( null, qualifyingNames, resultType, null );

        int expectedHash = 3 * 97 + qualifyingNames.hashCode();
        expectedHash = 97 * expectedHash + "resultType".hashCode();
        assertThat( params.hashCode() ).as( "Expected HashCode" ).isEqualTo( expectedHash );
    }