ClaimImpl implements Claim { @Override public Iterator<Snak> getAllQualifiers() { return statement.getAllQualifiers(); } ClaimImpl(
			EntityIdValue subject,
			Snak mainSnak,
			List<SnakGroup> qualifiers);  ClaimImpl(StatementImpl statement); @Override EntityIdValue getSubject(); @Override Snak getMainSnak(); @Override List<SnakGroup> getQualifiers(); @Override Iterator<Snak> getAllQualifiers(); @Override Value getValue(); @Override int hashCode(); @Override boolean equals(Object obj); @Override String toString();  }
@Test public void accessSnakGroups() { EntityIdValue value1 = new ItemIdValueImpl("Q1", "http: EntityIdValue value2 = new ItemIdValueImpl("Q2", "http: PropertyIdValue property1 = new PropertyIdValueImpl("P1", "http: PropertyIdValue property2 = new PropertyIdValueImpl("P2", "http: Snak snak1 = new ValueSnakImpl(property1, value1); Snak snak2 = new ValueSnakImpl(property1, value2); Snak snak3 = new ValueSnakImpl(property2, value2); List<Snak> snakList1 = new ArrayList<>(); snakList1.add(snak1); snakList1.add(snak2); SnakGroup snakGroup1 = new SnakGroupImpl(snakList1); SnakGroup snakGroup2 = new SnakGroupImpl( Collections.singletonList(snak3)); List<SnakGroup> snakGroups = new ArrayList<>(); snakGroups.add(snakGroup1); snakGroups.add(snakGroup2); Claim claim = new ClaimImpl(subject, mainSnak, snakGroups); Iterator<Snak> snaks = claim.getAllQualifiers(); assertTrue(snaks.hasNext()); assertEquals(snak1, snaks.next()); assertTrue(snaks.hasNext()); assertEquals(snak2, snaks.next()); assertTrue(snaks.hasNext()); assertEquals(snak3, snaks.next()); assertFalse(snaks.hasNext()); }