IndirectMultilingualString extends MultilingualString implements IndirectWrapper { @Override public MultilingualString set(String language, String value) { referencedString.set(language, value); notifyPersistenceContext(); return this; } protected  IndirectMultilingualString();  IndirectMultilingualString(Object owner, Field f, UnitOfWorkImpl uow, MultilingualString referencedString); @Override MultilingualString set(String language, String value); @Override MultilingualString set(String value); @Override String get(String language); @Override String get(); @Override boolean contains(String language); @Override boolean containsSimple(); @Override boolean isEmpty(); @Override void remove(String language); @Override Set<String> getLanguages(); @Override Map<String, String> getValue(); @Override boolean equals(Object o); @Override int hashCode(); @Override String toString(); @Override MultilingualString unwrap();  }
@Test void equalsWorksWithUnwrappedMultilingualString() { assertEquals(sut, referencedString); assertEquals(sut, new IndirectMultilingualString(owner, field, uow, referencedString)); final MultilingualString another = new MultilingualString(translations); another.set("de", "der Bau"); assertNotEquals(sut, another); assertNotEquals(sut, new IndirectMultilingualString(owner, field, uow, another)); assertNotEquals(sut, "test"); }