diff --git a/src/main/java/edu/harvard/iq/dataverse/Dataverse.java b/src/main/java/edu/harvard/iq/dataverse/Dataverse.java index 44f0a7a77b4..d4a34f3775b 100644 --- a/src/main/java/edu/harvard/iq/dataverse/Dataverse.java +++ b/src/main/java/edu/harvard/iq/dataverse/Dataverse.java @@ -40,43 +40,45 @@ */ @NamedQueries({ @NamedQuery(name = "Dataverse.ownedObjectsById", query = "SELECT COUNT(obj) FROM DvObject obj WHERE obj.owner.id=:id"), - @NamedQuery(name = "Dataverse.findByAlias", query="SELECT dv FROM Dataverse dv WHERE LOWER(dv.alias)=:alias"), - @NamedQuery(name = "Dataverse.filterByAlias", query="SELECT dv FROM Dataverse dv WHERE LOWER(dv.alias) LIKE :alias order by dv.alias"), - @NamedQuery(name = "Dataverse.filterByAliasNameAffiliation", query="SELECT dv FROM Dataverse dv WHERE (LOWER(dv.alias) LIKE :alias) OR (LOWER(dv.name) LIKE :name) OR (LOWER(dv.affiliation) LIKE :affiliation) order by dv.alias") + @NamedQuery(name = "Dataverse.findByAlias", query = "SELECT dv FROM Dataverse dv WHERE LOWER(dv.alias)=:alias"), + @NamedQuery(name = "Dataverse.filterByAlias", query = "SELECT dv FROM Dataverse dv WHERE LOWER(dv.alias) LIKE :alias order by dv.alias"), + @NamedQuery(name = "Dataverse.filterByAliasNameAffiliation", query = "SELECT dv FROM Dataverse dv WHERE (LOWER(dv.alias) LIKE :alias) OR (LOWER(dv.name) LIKE :name) OR (LOWER(dv.affiliation) LIKE :affiliation) order by dv.alias") }) @Entity -@Table(indexes = {@Index(columnList="fk_dataverse_id") - , @Index(columnList="defaultcontributorrole_id") - , @Index(columnList="defaulttemplate_id") - , @Index(columnList="alias") - , @Index(columnList="affiliation") - , @Index(columnList="dataversetype") - , @Index(columnList="facetroot") - , @Index(columnList="guestbookroot") - , @Index(columnList="metadatablockroot") - , @Index(columnList="templateroot") - , @Index(columnList="permissionroot") - , @Index(columnList="themeroot")}) +@Table(indexes = { + @Index(columnList = "fk_dataverse_id"), + @Index(columnList = "defaultcontributorrole_id"), + @Index(columnList = "defaulttemplate_id"), + @Index(columnList = "alias"), + @Index(columnList = "affiliation"), + @Index(columnList = "dataversetype"), + @Index(columnList = "facetroot"), + @Index(columnList = "guestbookroot"), + @Index(columnList = "metadatablockroot"), + @Index(columnList = "templateroot"), + @Index(columnList = "permissionroot"), + @Index(columnList = "themeroot")}) public class Dataverse extends DvObjectContainer { public enum DataverseType { RESEARCHERS, RESEARCH_PROJECTS, JOURNALS, ORGANIZATIONS_INSTITUTIONS, TEACHING_COURSES, UNCATEGORIZED, LABORATORY, RESEARCH_GROUP }; - + private static final long serialVersionUID = 1L; @NotBlank(message = "Please enter a name.") - @Column( nullable = false ) + @Column(nullable = false) private String name; /** * @todo add @Column(nullable = false) for the database to enforce non-null */ @NotBlank(message = "Please enter an alias.") - @Column(nullable = false, unique=true) + @Column(nullable = false, unique = true) @Size(max = 60, message = "Alias must be at most 60 characters.") - @Pattern.List({@Pattern(regexp = "[a-zA-Z0-9\\_\\-]*", message = "Found an illegal character(s). Valid characters are a-Z, 0-9, '_', and '-'."), - @Pattern(regexp=".*\\D.*", message="Alias should not be a number")}) + @Pattern.List({ + @Pattern(regexp = "[a-zA-Z0-9\\_\\-]*", message = "Found an illegal character(s). Valid characters are a-Z, 0-9, '_', and '-'."), + @Pattern(regexp = ".*\\D.*", message = "Alias should not be a number")}) private String alias; @Column(name = "description", columnDefinition = "TEXT") @@ -84,16 +86,15 @@ public enum DataverseType { @Enumerated(EnumType.STRING) @NotNull(message = "Please select a category for your dataverse.") - @Column( nullable = false ) + @Column(nullable = false) private DataverseType dataverseType; - + /** * When {@code true}, users are not granted permissions the got for parent * dataverses. */ protected boolean permissionRoot; - public DataverseType getDataverseType() { return dataverseType; } @@ -108,27 +109,27 @@ public void setDataverseType(DataverseType dataverseType) { /** * @todo Don't hard code these as English. */ - public String getFriendlyCategoryName(){ - switch (this.dataverseType) { + public String getFriendlyCategoryName() { + switch (this.dataverseType) { case RESEARCHERS: return "Researcher"; case RESEARCH_PROJECTS: return "Research Project"; case JOURNALS: - return "Journal"; + return "Journal"; case ORGANIZATIONS_INSTITUTIONS: - return "Organization or Institution"; + return "Organization or Institution"; case TEACHING_COURSES: return "Teaching Course"; case LABORATORY: - return "Laboratory"; + return "Laboratory"; case RESEARCH_GROUP: - return "Research Group"; + return "Research Group"; case UNCATEGORIZED: return uncategorizedString; default: return ""; - } + } } public String getIndexableCategoryName() { @@ -142,13 +143,13 @@ public String getIndexableCategoryName() { private String affiliation; - // Note: We can't have "Remove" here, as there are role assignments that refer + // Note: We can't have "Remove" here, as there are role assignments that refer // to this role. So, adding it would mean violating a forign key contstraint. @OneToMany(cascade = {CascadeType.MERGE}, fetch = FetchType.LAZY, mappedBy = "owner") private Set roles; - + @ManyToOne @JoinColumn(nullable = false) private DataverseRole defaultContributorRole; @@ -160,41 +161,40 @@ public DataverseRole getDefaultContributorRole() { public void setDefaultContributorRole(DataverseRole defaultContributorRole) { this.defaultContributorRole = defaultContributorRole; } - + private boolean metadataBlockRoot; private boolean facetRoot; private boolean themeRoot; - private boolean templateRoot; + private boolean templateRoot; - - @OneToOne(mappedBy = "dataverse",cascade={ CascadeType.REMOVE, CascadeType.MERGE,CascadeType.PERSIST}, orphanRemoval=true) - private DataverseTheme dataverseTheme; + @OneToOne(mappedBy = "dataverse", cascade = {CascadeType.REMOVE, CascadeType.MERGE, CascadeType.PERSIST}, orphanRemoval = true) + private DataverseTheme dataverseTheme; - @OneToMany(mappedBy = "dataverse",cascade={ CascadeType.REMOVE, CascadeType.MERGE,CascadeType.PERSIST}, orphanRemoval=true) + @OneToMany(mappedBy = "dataverse", cascade = {CascadeType.REMOVE, CascadeType.MERGE, CascadeType.PERSIST}, orphanRemoval = true) @OrderBy("displayOrder") - @NotEmpty(message="At least one contact is required.") + @NotEmpty(message = "At least one contact is required.") private List dataverseContacts = new ArrayList(); - + @ManyToMany(cascade = {CascadeType.MERGE}) private List metadataBlocks = new ArrayList(); - @OneToMany(mappedBy = "dataverse",cascade={ CascadeType.REMOVE, CascadeType.MERGE,CascadeType.PERSIST}, orphanRemoval=true) + @OneToMany(mappedBy = "dataverse", cascade = {CascadeType.REMOVE, CascadeType.MERGE, CascadeType.PERSIST}, orphanRemoval = true) @OrderBy("displayOrder") private List dataverseFacets = new ArrayList(); - + @ManyToMany(cascade = {CascadeType.MERGE}) @JoinTable(name = "dataverse_citationDatasetFieldTypes", - joinColumns = @JoinColumn(name = "dataverse_id"), - inverseJoinColumns = @JoinColumn(name = "citationdatasetfieldtype_id")) + joinColumns = @JoinColumn(name = "dataverse_id"), + inverseJoinColumns = @JoinColumn(name = "citationdatasetfieldtype_id")) private List citationDatasetFieldTypes = new ArrayList(); - + @ManyToMany @JoinTable(name = "dataversesubjects", - joinColumns = @JoinColumn(name = "dataverse_id"), - inverseJoinColumns = @JoinColumn(name = "controlledvocabularyvalue_id")) + joinColumns = @JoinColumn(name = "dataverse_id"), + inverseJoinColumns = @JoinColumn(name = "controlledvocabularyvalue_id")) private Set dataverseSubjects; - - @OneToMany(mappedBy="dataverse", cascade={CascadeType.REMOVE, CascadeType.MERGE, CascadeType.PERSIST}) + + @OneToMany(mappedBy = "dataverse", cascade = {CascadeType.REMOVE, CascadeType.MERGE, CascadeType.PERSIST}) private List dataverseFeaturedDataverses; public List getDataverseFeaturedDataverses() { @@ -204,8 +204,8 @@ public List getDataverseFeaturedDataverses() { public void setDataverseFeaturedDataverses(List dataverseFeaturedDataverses) { this.dataverseFeaturedDataverses = dataverseFeaturedDataverses; } - - @OneToMany(mappedBy="featuredDataverse", cascade={CascadeType.REMOVE, CascadeType.MERGE, CascadeType.PERSIST}) + + @OneToMany(mappedBy = "featuredDataverse", cascade = {CascadeType.REMOVE, CascadeType.MERGE, CascadeType.PERSIST}) private List dataverseFeaturingDataverses; public List getDataverseFeaturingDataverses() { @@ -215,8 +215,8 @@ public List getDataverseFeaturingDataverses() { public void setDataverseFeaturingDataverses(List dataverseFeaturingDataverses) { this.dataverseFeaturingDataverses = dataverseFeaturingDataverses; } - - @OneToMany(mappedBy="dataverse", cascade={CascadeType.REMOVE, CascadeType.MERGE, CascadeType.PERSIST}) + + @OneToMany(mappedBy = "dataverse", cascade = {CascadeType.REMOVE, CascadeType.MERGE, CascadeType.PERSIST}) private List dataverseLinkingDataverses; public List getDataverseLinkingDataverses() { @@ -226,8 +226,8 @@ public List getDataverseLinkingDataverses() { public void setDataverseLinkingDataverses(List dataverseLinkingDataverses) { this.dataverseLinkingDataverses = dataverseLinkingDataverses; } - - @OneToMany(mappedBy="linkingDataverse", cascade={CascadeType.REMOVE, CascadeType.MERGE, CascadeType.PERSIST}) + + @OneToMany(mappedBy = "linkingDataverse", cascade = {CascadeType.REMOVE, CascadeType.MERGE, CascadeType.PERSIST}) private List dataverseLinkedDataverses; public List getDataverseLinkedDataverses() { @@ -237,8 +237,8 @@ public List getDataverseLinkedDataverses() { public void setDataverseLinkedDataverses(List dataverseLinkedDataverses) { this.dataverseLinkedDataverses = dataverseLinkedDataverses; } - - @OneToMany(mappedBy="linkingDataverse", cascade={CascadeType.REMOVE, CascadeType.MERGE, CascadeType.PERSIST}) + + @OneToMany(mappedBy = "linkingDataverse", cascade = {CascadeType.REMOVE, CascadeType.MERGE, CascadeType.PERSIST}) private List datasetLinkingDataverses; public List getDatasetLinkingDataverses() { @@ -248,7 +248,7 @@ public List getDatasetLinkingDataverses() { public void setDatasetLinkingDataverses(List datasetLinkingDataverses) { this.datasetLinkingDataverses = datasetLinkingDataverses; } - + public Set getDataverseSubjects() { return dataverseSubjects; } @@ -257,15 +257,14 @@ public void setDataverseSubjects(Set dataverseSubject this.dataverseSubjects = dataverseSubjects; } - @OneToMany(mappedBy = "dataverse") private List dataverseFieldTypeInputLevels = new ArrayList(); - + @ManyToOne @JoinColumn(nullable = true) - private Template defaultTemplate; - - @OneToMany(mappedBy = "definitionPoint", cascade={CascadeType.REMOVE, CascadeType.MERGE, CascadeType.PERSIST}) + private Template defaultTemplate; + + @OneToMany(mappedBy = "definitionPoint", cascade = {CascadeType.REMOVE, CascadeType.MERGE, CascadeType.PERSIST}) private List savedSearches; public List getSavedSearches() { @@ -275,23 +274,22 @@ public List getSavedSearches() { public void setSavedSearches(List savedSearches) { this.savedSearches = savedSearches; } - - @OneToMany(mappedBy="dataverse", cascade = {CascadeType.MERGE, CascadeType.REMOVE}) - private List