* 'master' of https://git.pmease.com/p/robin/commons:
  Add toString for various model classes. Add MembershipManager. Add cascade removal for OneToMany relationship.
This commit is contained in:
steve 2013-10-14 11:08:58 +08:00
commit 679ec52eb4
7 changed files with 65 additions and 12 deletions

View File

@ -0,0 +1,11 @@
package com.pmease.gitop.core.manager;
import com.google.inject.ImplementedBy;
import com.pmease.commons.hibernate.dao.GenericDao;
import com.pmease.gitop.core.manager.impl.DefaultMembershipManager;
import com.pmease.gitop.core.model.Membership;
@ImplementedBy(DefaultMembershipManager.class)
public interface MembershipManager extends GenericDao<Membership> {
}

View File

@ -0,0 +1,20 @@
package com.pmease.gitop.core.manager.impl;
import javax.inject.Inject;
import javax.inject.Singleton;
import com.pmease.commons.hibernate.dao.AbstractGenericDao;
import com.pmease.commons.hibernate.dao.GeneralDao;
import com.pmease.gitop.core.manager.MembershipManager;
import com.pmease.gitop.core.model.Membership;
@Singleton
public class DefaultMembershipManager extends AbstractGenericDao<Membership>
implements MembershipManager {
@Inject
public DefaultMembershipManager(GeneralDao generalDao) {
super(generalDao);
}
}

View File

@ -10,6 +10,7 @@ import java.util.Iterator;
import java.util.List;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
@ -66,10 +67,10 @@ public class MergeRequest extends AbstractEntity {
private transient Collection<User> potentialVoters;
@OneToMany(mappedBy="request")
@OneToMany(mappedBy="request", cascade=CascadeType.REMOVE)
private Collection<MergeRequestUpdate> updates = new ArrayList<MergeRequestUpdate>();
@OneToMany(mappedBy="request")
@OneToMany(mappedBy="request", cascade=CascadeType.REMOVE)
private Collection<VoteInvitation> voteInvitations = new ArrayList<VoteInvitation>();
public String getTitle() {

View File

@ -6,6 +6,7 @@ import java.util.Date;
import java.util.Iterator;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
@ -23,7 +24,7 @@ public class MergeRequestUpdate extends AbstractEntity {
private Date date;
@OneToMany(mappedBy="update")
@OneToMany(mappedBy="update", cascade=CascadeType.REMOVE)
private Collection<Vote> votes = new ArrayList<Vote>();
public MergeRequest getRequest() {

View File

@ -5,6 +5,7 @@ import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
@ -15,6 +16,7 @@ import javax.persistence.UniqueConstraint;
import org.hibernate.validator.constraints.NotEmpty;
import com.google.common.base.Objects;
import com.pmease.commons.editable.annotation.Editable;
import com.pmease.commons.hibernate.AbstractEntity;
import com.pmease.gitop.core.Gitop;
@ -49,7 +51,7 @@ public class Project extends AbstractEntity implements UserBelonging {
private GateKeeper gateKeeper;
@OneToMany(mappedBy="project")
@OneToMany(mappedBy="project", cascade=CascadeType.REMOVE)
private Collection<Authorization> authorizations = new ArrayList<Authorization>();
public User getOwner() {
@ -142,4 +144,11 @@ public class Project extends AbstractEntity implements UserBelonging {
return authorizedUsers;
}
@Override
public String toString() {
return Objects.toStringHelper(this)
.add("name", getName())
.add("owner", getOwner().getName())
.toString();
}
}

View File

@ -3,6 +3,7 @@ package com.pmease.gitop.core.model;
import java.util.ArrayList;
import java.util.Collection;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
@ -13,6 +14,7 @@ import javax.persistence.UniqueConstraint;
import org.apache.shiro.authz.Permission;
import com.google.common.base.Objects;
import com.pmease.commons.hibernate.AbstractEntity;
import com.pmease.gitop.core.permission.ObjectPermission;
import com.pmease.gitop.core.permission.operation.GeneralOperation;
@ -36,10 +38,10 @@ public class Team extends AbstractEntity implements Permission {
@Column(nullable=false)
private GeneralOperation authorizedOperation = GeneralOperation.READ;
@OneToMany(mappedBy="team")
@OneToMany(mappedBy="team", cascade=CascadeType.REMOVE)
private Collection<Membership> memberships = new ArrayList<Membership>();
@OneToMany(mappedBy="team")
@OneToMany(mappedBy="team", cascade=CascadeType.REMOVE)
private Collection<Authorization> authorizations = new ArrayList<Authorization>();
public User getOwner() {
@ -108,4 +110,12 @@ public class Team extends AbstractEntity implements Permission {
return false;
}
@Override
public String toString() {
return Objects.toStringHelper(this)
.add("name", getName())
.add("owner", getOwner().getName())
.toString();
}
}

View File

@ -3,6 +3,7 @@ package com.pmease.gitop.core.model;
import java.util.ArrayList;
import java.util.Collection;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.OneToMany;
@ -51,22 +52,22 @@ public class User extends AbstractUser implements ProtectedObject {
@Column(nullable=false)
private GeneralOperation defaultAuthorizedOperation = GeneralOperation.NO_ACCESS;
@OneToMany(mappedBy="user")
@OneToMany(mappedBy="user", cascade=CascadeType.REMOVE)
private Collection<Membership> memberships = new ArrayList<Membership>();
@OneToMany(mappedBy="submitter")
@OneToMany(mappedBy="submitter", cascade=CascadeType.REMOVE)
private Collection<MergeRequest> mergeRequests = new ArrayList<MergeRequest>();
@OneToMany(mappedBy="owner")
@OneToMany(mappedBy="owner", cascade=CascadeType.REMOVE)
private Collection<Project> repositories = new ArrayList<Project>();
@OneToMany(mappedBy="owner")
@OneToMany(mappedBy="owner", cascade=CascadeType.REMOVE)
private Collection<Team> teams = new ArrayList<Team>();
@OneToMany(mappedBy="voter")
@OneToMany(mappedBy="voter", cascade=CascadeType.REMOVE)
private Collection<Vote> votes = new ArrayList<Vote>();
@OneToMany(mappedBy="voter")
@OneToMany(mappedBy="voter", cascade=CascadeType.REMOVE)
private Collection<VoteInvitation> voteInvitations = new ArrayList<VoteInvitation>();
@Editable(order=100)