package fi.otavanopisto.pyramus.domainmodel.help; import java.util.ArrayList; import java.util.List; import java.util.Locale; import javax.persistence.CascadeType; import javax.persistence.Entity; import javax.persistence.OneToMany; import javax.persistence.PrimaryKeyJoinColumn; import javax.persistence.Transient; import org.hibernate.search.annotations.Indexed; import org.hibernate.search.annotations.IndexedEmbedded; @Entity @Indexed @PrimaryKeyJoinColumn (name="id") public class HelpPage extends HelpItem { public List<HelpPageContent> getContents() { return contents; } public void setContents(List<HelpPageContent> contents) { this.contents = contents; } @Transient public void addContent(HelpPageContent helpPageContent) { if (helpPageContent.getPage() != null) { helpPageContent.getPage().removeContent(helpPageContent); } helpPageContent.setPage(this); contents.add(helpPageContent); } @Transient public void removeContent(HelpPageContent helpPageContent) { helpPageContent.setPage(null); contents.remove(helpPageContent); } @Transient public HelpPageContent getContentByLocale(Locale locale) { for (HelpPageContent content : contents) { if (content.getLocale().equals(locale)) return content; } return null; } @OneToMany (cascade = CascadeType.ALL, mappedBy="page") @IndexedEmbedded private List<HelpPageContent> contents = new ArrayList<>(); }