/** * Copyright or © or Copr. Ministère Français chargé de la Culture * et de la Communication (2013) * <p/> * contact.gincoculture_at_gouv.fr * <p/> * This software is a computer program whose purpose is to provide a thesaurus * management solution. * <p/> * This software is governed by the CeCILL license under French law and * abiding by the rules of distribution of free software. You can use, * modify and/ or redistribute the software under the terms of the CeCILL * license as circulated by CEA, CNRS and INRIA at the following URL * "http://www.cecill.info". * <p/> * As a counterpart to the access to the source code and rights to copy, * modify and redistribute granted by the license, users are provided only * with a limited warranty and the software's author, the holder of the * economic rights, and the successive licensors have only limited liability. * <p/> * In this respect, the user's attention is drawn to the risks associated * with loading, using, modifying and/or developing or reproducing the * software by the user in light of its specific status of free software, * that may mean that it is complicated to manipulate, and that also * therefore means that it is reserved for developers and experienced * professionals having in-depth computer knowledge. Users are therefore * encouraged to load and test the software's suitability as regards their * requirements in conditions enabling the security of their systems and/or * data to be ensured and, more generally, to use and operate it in the * same conditions as regards security. * <p/> * The fact that you are presently reading this means that you have had * knowledge of the CeCILL license and that you accept its terms. */ package fr.mcc.ginco.beans; import org.codehaus.jackson.annotate.JsonIgnore; import org.hibernate.envers.Audited; import org.hibernate.envers.NotAudited; import org.hibernate.envers.RelationTargetAuditMode; import java.io.Serializable; import java.util.Date; import java.util.HashSet; import java.util.Set; /** * Bean represents <b>thesaurus</b> table, main container containing * all other beans. */ @Audited(targetAuditMode = RelationTargetAuditMode.NOT_AUDITED) @SuppressWarnings("serial") public class Thesaurus implements Serializable, IAuditableBean { private String identifier; private String contributor; private String coverage; private Date date; private String description; private String publisher; private String relation; private String rights; private String source = ""; private String subject; private String title; private Date created; private Boolean defaultTopConcept; private Boolean archived; private ThesaurusType type; private ThesaurusOrganization creator; private Boolean polyHierarchical; private Set<Language> lang = new HashSet<Language>(); private Set<ThesaurusFormat> format = new HashSet<ThesaurusFormat>(); private Set<ThesaurusVersionHistory> versions; public Thesaurus() { } public String getIdentifier() { return identifier; } public void setIdentifier(String identifier) { this.identifier = identifier; } public String getContributor() { return contributor; } public void setContributor(String contributor) { this.contributor = contributor; } public String getCoverage() { return coverage; } public void setCoverage(String coverage) { this.coverage = coverage; } public Date getDate() { return date; } public void setDate(Date date) { this.date = date; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public String getPublisher() { return publisher; } public void setPublisher(String publisher) { this.publisher = publisher; } public String getRelation() { return relation; } public void setRelation(String relation) { this.relation = relation; } public String getRights() { return rights; } public void setRights(String rights) { this.rights = rights; } public String getSource() { return source; } public void setSource(String source) { this.source = source; } public String getSubject() { return subject; } public void setSubject(String subject) { this.subject = subject; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public Date getCreated() { return created; } public void setCreated(Date created) { this.created = created; } public ThesaurusType getType() { return type; } public void setType(ThesaurusType type) { this.type = type; } public ThesaurusOrganization getCreator() { return creator; } public void setCreator(ThesaurusOrganization creator) { this.creator = creator; } @JsonIgnore public Set<ThesaurusVersionHistory> getVersions() { return versions; } public void setVersions(Set<ThesaurusVersionHistory> versions) { this.versions = versions; } /** * @return All languages available for this Thesaurus */ @NotAudited @JsonIgnore public Set<Language> getLang() { return lang; } public void setLang(Set<Language> lang) { this.lang = lang; } public void addLang(Language item) { this.lang.add(item); } public Boolean isDefaultTopConcept() { return defaultTopConcept; } public void setDefaultTopConcept(Boolean defaultTopConcept) { this.defaultTopConcept = defaultTopConcept; } @Override public String getThesaurusId() { return identifier; } public Boolean isArchived() { return archived; } public void setArchived(Boolean archived) { this.archived = archived; } public Boolean isPolyHierarchical() { return polyHierarchical; } public void setPolyHierarchical(Boolean polyHierarchical) { this.polyHierarchical = polyHierarchical; } public Set<ThesaurusFormat> getFormat() { return format; } public void setFormat(Set<ThesaurusFormat> format) { this.format = format; } public void addFormat(ThesaurusFormat item) { this.format.add(item); } }