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) {