diff --git a/ccm-core/src/main/java/org/libreccm/categorization/Categorization.java b/ccm-core/src/main/java/org/libreccm/categorization/Categorization.java index 3cbff234e..8cf99b457 100644 --- a/ccm-core/src/main/java/org/libreccm/categorization/Categorization.java +++ b/ccm-core/src/main/java/org/libreccm/categorization/Categorization.java @@ -32,6 +32,8 @@ import org.libreccm.core.CcmObject; import java.util.Objects; +import javax.persistence.JoinColumn; + /** * Association class describing the association between a category and an * object. Instances of these class should not created manually. @@ -59,19 +61,21 @@ public class Categorization implements Serializable { * The category to which this {@code Categorization} object belongs. */ @ManyToOne + @JoinColumn(name = "category_id") private Category category; /** * The categorised object. */ @ManyToOne + @JoinColumn(name = "object_id") private CcmObject categorizedObject; /** * If the categorised object is the index object of the category this * property is set to {@code true}. */ - @Column(name = "index") + @Column(name = "category_index") private boolean index; /** diff --git a/ccm-core/src/main/java/org/libreccm/categorization/Category.java b/ccm-core/src/main/java/org/libreccm/categorization/Category.java index 25a0f214a..8d665c7e8 100644 --- a/ccm-core/src/main/java/org/libreccm/categorization/Category.java +++ b/ccm-core/src/main/java/org/libreccm/categorization/Category.java @@ -22,7 +22,6 @@ import org.hibernate.validator.constraints.NotBlank; import org.libreccm.core.CcmObject; import java.io.Serializable; -import java.util.AbstractList; import java.util.ArrayList; import java.util.List; diff --git a/ccm-core/src/main/java/org/libreccm/categorization/Domain.java b/ccm-core/src/main/java/org/libreccm/categorization/Domain.java index 7a31bf184..d6861d141 100644 --- a/ccm-core/src/main/java/org/libreccm/categorization/Domain.java +++ b/ccm-core/src/main/java/org/libreccm/categorization/Domain.java @@ -21,6 +21,7 @@ package org.libreccm.categorization; import org.hibernate.validator.constraints.NotBlank; import org.hibernate.validator.constraints.URL; import org.libreccm.core.CcmObject; +import org.libreccm.jpautils.UriConverter; import org.libreccm.l10n.LocalizedString; import java.io.Serializable; @@ -33,6 +34,8 @@ import java.util.Objects; import javax.persistence.AssociationOverride; import javax.persistence.Column; +import javax.persistence.Convert; +import javax.persistence.Converter; import javax.persistence.Embedded; import javax.persistence.Entity; import javax.persistence.JoinColumn; @@ -86,6 +89,7 @@ public class Domain extends CcmObject implements Serializable { * */ @Column(name = "uri", nullable = false, unique = true, length = 2048) + @Convert(converter = UriConverter.class) @NotBlank @URL private URI uri; diff --git a/ccm-core/src/main/java/org/libreccm/categorization/DomainOwnership.java b/ccm-core/src/main/java/org/libreccm/categorization/DomainOwnership.java index b13123a98..a3e3df69c 100644 --- a/ccm-core/src/main/java/org/libreccm/categorization/DomainOwnership.java +++ b/ccm-core/src/main/java/org/libreccm/categorization/DomainOwnership.java @@ -38,7 +38,7 @@ import org.libreccm.core.CcmObject; * @author Jens Pelzetter */ @Entity -@Table(name = "domain_ownerships;") +@Table(name = "domain_ownerships") public class DomainOwnership implements Serializable { private static final long serialVersionUID = 201504301305L; diff --git a/ccm-core/src/main/java/org/libreccm/core/CcmObject.java b/ccm-core/src/main/java/org/libreccm/core/CcmObject.java index 02352a2ff..8af9ed5e7 100644 --- a/ccm-core/src/main/java/org/libreccm/core/CcmObject.java +++ b/ccm-core/src/main/java/org/libreccm/core/CcmObject.java @@ -90,6 +90,12 @@ public class CcmObject implements Serializable { @OneToMany(mappedBy = "categorizedObject") private List categories; + public CcmObject() { + super(); + + domains = new ArrayList<>(); + categories = new ArrayList<>(); + } public long getObjectId() { return objectId; @@ -107,11 +113,6 @@ public class CcmObject implements Serializable { this.displayName = displayName; } - public CcmObject() { - domains = new ArrayList<>(); - categories = new ArrayList<>(); - } - /** * Gets an unmodifiable list of the domains which are owned * by the {@code CcmObject}. diff --git a/ccm-core/src/main/java/org/libreccm/core/Party.java b/ccm-core/src/main/java/org/libreccm/core/Party.java index 748577747..94485e874 100644 --- a/ccm-core/src/main/java/org/libreccm/core/Party.java +++ b/ccm-core/src/main/java/org/libreccm/core/Party.java @@ -24,8 +24,10 @@ import java.util.Collections; import java.util.List; import java.util.Objects; +import javax.persistence.CollectionTable; import javax.persistence.ElementCollection; import javax.persistence.Entity; +import javax.persistence.JoinColumn; import javax.persistence.Table; import javax.validation.constraints.Size; @@ -39,8 +41,11 @@ import javax.validation.constraints.Size; public class Party extends CcmObject implements Serializable { private static final long serialVersionUID = 6303836654273293979L; - + @ElementCollection + @CollectionTable(name = "party_email_addresses", + joinColumns = { + @JoinColumn(name = "party_id")}) @Size(min = 1) private List eMailAddresses; @@ -51,11 +56,11 @@ public class Party extends CcmObject implements Serializable { protected void setEmailAddresses(final List eMailAddresses) { this.eMailAddresses = eMailAddresses; } - + protected void addEmailAddress(final EmailAddress emailAddress) { eMailAddresses.add(emailAddress); } - + protected void removeEmailAddress(final EmailAddress emailAddress) { eMailAddresses.remove(emailAddress); } @@ -72,7 +77,7 @@ public class Party extends CcmObject implements Serializable { if (!super.equals(obj)) { return false; } - + if (obj == null) { return false; } @@ -83,10 +88,10 @@ public class Party extends CcmObject implements Serializable { if (!other.canEqual(this)) { return false; } - + return Objects.equals(this.eMailAddresses, other.getEmailAddresses()); } - + @Override public boolean canEqual(final Object obj) { return obj instanceof Party; diff --git a/ccm-core/src/main/java/org/libreccm/core/User.java b/ccm-core/src/main/java/org/libreccm/core/User.java index 26167e4aa..136419a69 100644 --- a/ccm-core/src/main/java/org/libreccm/core/User.java +++ b/ccm-core/src/main/java/org/libreccm/core/User.java @@ -20,6 +20,7 @@ package org.libreccm.core; import java.io.Serializable; import java.util.Objects; + import javax.persistence.AssociationOverride; import javax.persistence.Column; import javax.persistence.Embedded; @@ -28,8 +29,15 @@ import javax.persistence.Entity; import javax.persistence.JoinColumn; import javax.persistence.JoinTable; import javax.persistence.Table; + import org.hibernate.validator.constraints.NotBlank; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +import javax.persistence.OneToMany; + /** * * @author Jens Pelzetter @@ -42,10 +50,10 @@ public class User extends Party implements Serializable { @Embedded @AssociationOverride( - name = "user_names", - joinTable = @JoinTable(name = "user_names", - joinColumns = { - @JoinColumn(name = " user_id")})) + name = "user_names", + joinTable = @JoinTable(name = "user_names", + joinColumns = { + @JoinColumn(name = " user_id")})) private PersonName name; @Column(name = "screen_name", length = 255, nullable = false) @@ -70,6 +78,15 @@ public class User extends Party implements Serializable { @Column(name = "password_answer", length = 2048) private String passwordAnswer; + @OneToMany(mappedBy = "user") + private List groupMemberships; + + public User() { + super(); + + this.groupMemberships = new ArrayList<>(); + } + public PersonName getName() { return name; } @@ -134,6 +151,24 @@ public class User extends Party implements Serializable { this.passwordAnswer = passwordAnswer; } + public List getGroupMemberships() { + return Collections.unmodifiableList(groupMemberships); + } + + protected void setGroupMemberships( + final List groupMemberships) { + this.groupMemberships = groupMemberships; + } + + protected void addGroupMembership(final GroupMembership groupMembership) { + groupMemberships.add(groupMembership); + } + + protected void removeGroupMembership( + final GroupMembership groupMembership) { + groupMemberships.remove(groupMembership); + } + @Override public int hashCode() { int hash = super.hashCode(); @@ -153,7 +188,7 @@ public class User extends Party implements Serializable { if (!super.equals(obj)) { return false; } - + if (obj == null) { return false; } @@ -197,9 +232,9 @@ public class User extends Party implements Serializable { @Override public String toString(final String data) { return super.toString(String.format(", name = %s, " - + "screenName = \"%s\", " - + "banned = %b, " - + "ssoLogin = \"%s\"%s", + + "screenName = \"%s\", " + + "banned = %b, " + + "ssoLogin = \"%s\"%s", Objects.toString(name), screenName, banned, diff --git a/ccm-core/src/main/java/org/libreccm/core/UserGroup.java b/ccm-core/src/main/java/org/libreccm/core/UserGroup.java index 3dcc9de83..e73282330 100644 --- a/ccm-core/src/main/java/org/libreccm/core/UserGroup.java +++ b/ccm-core/src/main/java/org/libreccm/core/UserGroup.java @@ -48,13 +48,13 @@ public class UserGroup extends Party implements Serializable { private List roles; @OneToMany(mappedBy = "group") - private List groupMemberships; + private List members; public UserGroup() { super(); roles = new ArrayList<>(); - groupMemberships = new ArrayList<>(); + members = new ArrayList<>(); } public String getName() { @@ -81,8 +81,20 @@ public class UserGroup extends Party implements Serializable { roles.remove(role); } - public List getGroupMembership() { - return Collections.unmodifiableList(groupMemberships); + public List getMembers() { + return Collections.unmodifiableList(members); + } + + protected void setMembers(final List members) { + this.members = members; + } + + protected void addMember(final GroupMembership member) { + members.add(member); + } + + protected void removeMember(final GroupMembership member) { + members.remove(member); } @Override @@ -110,10 +122,10 @@ public class UserGroup extends Party implements Serializable { return false; } - if (!Objects.equals(this.name, other.name)) { + if (!Objects.equals(this.name, other.getName())) { return false; } - return Objects.equals(this.roles, other.roles); + return Objects.equals(this.roles, other.getRoles()); } public boolean canEquals(final Object obj) {