@Override
    public int hashCode() {
        return new HashCodeBuilder(303, 367)
                .append(StringUtils.lowerCase(name))
                .append(StringUtils.lowerCase(source))
                .append(StringUtils.lowerCase(value))
                .append(confidence)
                .toHashCode();
    }
@Test
    public void testHashcodeContract() throws Exception {
        final Evidence titleCase = new Evidence("Manifest", "Implementation-Title", "Spring Framework", Confidence.HIGH);
        final Evidence lowerCase = new Evidence("manifest", "implementation-title", "spring framework", Confidence.HIGH);
        assertThat(titleCase, is(equalTo(lowerCase)));
        assertThat(titleCase.hashCode(), is(equalTo(lowerCase.hashCode())));
    }