StatementImpl implements Statement { @Override public int hashCode() { return Hash.hashCode(this); } StatementImpl(
			String statementId,
			StatementRank rank,
			Snak mainSnak,
			List<SnakGroup> qualifiers,
			List<Reference> references,
			EntityIdValue subjectId);  StatementImpl(
			String statementId,
			StatementRank rank,
			Snak mainSnak,
			Map<String,List<Snak>> qualifiers,
			List<String> qualifiersOrder,
			List<Reference> references,
			EntityIdValue subjectId);  StatementImpl(String statementId, Snak mainsnak, EntityIdValue subjectId); @Override @JsonIgnore Claim getClaim(); @Override @JsonIgnore EntityIdValue getSubject(); @Override @JsonProperty("mainsnak") Snak getMainSnak(); @Override @JsonIgnore List<SnakGroup> getQualifiers(); @Override @JsonIgnore Iterator<Snak> getAllQualifiers(); @Override @JsonSerialize(using = StatementRankSerializer.class) StatementRank getRank(); @Override @JsonProperty("references") List<Reference> getReferences(); @Override @JsonProperty("id") String getStatementId(); @Override @JsonIgnore Value getValue(); @Override Statement withStatementId(String id); @Override int hashCode(); @Override boolean equals(Object obj); @Override String toString();  }
@Test public void hashBasedOnContent() { assertEquals(s1.hashCode(), s2.hashCode()); }