[UPDATE]
- changes jackson annotations, removes managed-back referenced connections and replaces them with jsonIgnore-jsonIdentityReference(alwaysAsId) links git-svn-id: https://svn.libreccm.org/ccm/trunk@4631 8810af33-2d31-482b-a856-94f89814c4dfmaster
parent
8ee76beef2
commit
ad7c872d3a
|
|
@ -504,7 +504,7 @@ public abstract class ACSObject extends ObservableDomainObject {
|
||||||
super.beforeSave();
|
super.beforeSave();
|
||||||
}
|
}
|
||||||
|
|
||||||
static BigDecimal generateID() throws PersistenceException {
|
public static BigDecimal generateID() throws PersistenceException {
|
||||||
try {
|
try {
|
||||||
return Sequences.getNextValue();
|
return Sequences.getNextValue();
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
|
|
|
||||||
|
|
@ -18,12 +18,12 @@
|
||||||
*/
|
*/
|
||||||
package com.arsdigita.portation.modules.core.categorization;
|
package com.arsdigita.portation.modules.core.categorization;
|
||||||
|
|
||||||
|
import com.arsdigita.kernel.ACSObject;
|
||||||
import com.arsdigita.portation.AbstractMarshaller;
|
import com.arsdigita.portation.AbstractMarshaller;
|
||||||
import com.arsdigita.portation.Portable;
|
import com.arsdigita.portation.Portable;
|
||||||
import com.arsdigita.portation.conversion.NgCollection;
|
import com.arsdigita.portation.conversion.NgCollection;
|
||||||
import com.arsdigita.portation.modules.core.core.CcmObject;
|
import com.arsdigita.portation.modules.core.core.CcmObject;
|
||||||
import com.fasterxml.jackson.annotation.JsonBackReference;
|
import com.fasterxml.jackson.annotation.JsonIdentityReference;
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Association class describing the association between a category and an
|
* Association class describing the association between a category and an
|
||||||
|
|
@ -33,25 +33,22 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||||
* @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers<\a>
|
* @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers<\a>
|
||||||
* @version created on 6/15/16
|
* @version created on 6/15/16
|
||||||
*/
|
*/
|
||||||
@JsonIgnoreProperties(ignoreUnknown=true)
|
|
||||||
public class Categorization implements Portable {
|
public class Categorization implements Portable {
|
||||||
|
|
||||||
private long categorizationId;
|
private long categorizationId;
|
||||||
|
@JsonIdentityReference(alwaysAsId = true)
|
||||||
@JsonBackReference
|
|
||||||
private Category category;
|
private Category category;
|
||||||
@JsonBackReference
|
@JsonIdentityReference(alwaysAsId = true)
|
||||||
private CcmObject categorizedObject;
|
private CcmObject categorizedObject;
|
||||||
|
|
||||||
private boolean index;
|
private boolean index;
|
||||||
private long categoryOrder;
|
private long categoryOrder;
|
||||||
private long objectOrder;
|
private long objectOrder;
|
||||||
|
|
||||||
private String type;
|
private String type;
|
||||||
|
|
||||||
|
|
||||||
public Categorization(final Category category, final CcmObject
|
public Categorization(final Category category, final CcmObject
|
||||||
categorizedObject) {
|
categorizedObject) {
|
||||||
this.categorizationId = NgCollection.categorizations.size() + 1;
|
this.categorizationId = ACSObject.generateID().longValue();
|
||||||
|
|
||||||
this.category = category;
|
this.category = category;
|
||||||
this.categorizedObject = categorizedObject;
|
this.categorizedObject = categorizedObject;
|
||||||
|
|
|
||||||
|
|
@ -25,9 +25,9 @@ import com.arsdigita.portation.Portable;
|
||||||
import com.arsdigita.portation.conversion.NgCollection;
|
import com.arsdigita.portation.conversion.NgCollection;
|
||||||
import com.arsdigita.portation.modules.core.core.CcmObject;
|
import com.arsdigita.portation.modules.core.core.CcmObject;
|
||||||
import com.arsdigita.portation.modules.core.l10n.LocalizedString;
|
import com.arsdigita.portation.modules.core.l10n.LocalizedString;
|
||||||
import com.fasterxml.jackson.annotation.JsonBackReference;
|
import com.fasterxml.jackson.annotation.JsonIdentityReference;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||||
import com.fasterxml.jackson.annotation.JsonManagedReference;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
@ -45,27 +45,21 @@ import java.util.Locale;
|
||||||
* @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers<\a>
|
* @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers<\a>
|
||||||
* @version created on 6/15/16
|
* @version created on 6/15/16
|
||||||
*/
|
*/
|
||||||
@JsonIgnoreProperties(ignoreUnknown=true)
|
|
||||||
public class Category extends CcmObject implements Portable {
|
public class Category extends CcmObject implements Portable {
|
||||||
|
|
||||||
private String uniqueId;
|
private String uniqueId;
|
||||||
private String name;
|
private String name;
|
||||||
|
|
||||||
private LocalizedString title;
|
private LocalizedString title;
|
||||||
private LocalizedString description;
|
private LocalizedString description;
|
||||||
|
|
||||||
private boolean enabled;
|
private boolean enabled;
|
||||||
private boolean visible;
|
private boolean visible;
|
||||||
private boolean abstractCategory;
|
private boolean abstractCategory;
|
||||||
|
@JsonIgnore
|
||||||
@JsonManagedReference
|
|
||||||
private List<Categorization> objects;
|
private List<Categorization> objects;
|
||||||
|
@JsonIgnore
|
||||||
@JsonManagedReference
|
|
||||||
private List<Category> subCategories;
|
private List<Category> subCategories;
|
||||||
@JsonBackReference
|
@JsonIdentityReference(alwaysAsId = true)
|
||||||
private Category parentCategory;
|
private Category parentCategory;
|
||||||
|
|
||||||
private long categoryOrder;
|
private long categoryOrder;
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -23,8 +23,7 @@ import com.arsdigita.portation.conversion.NgCollection;
|
||||||
import com.arsdigita.portation.modules.core.categorization.Categorization;
|
import com.arsdigita.portation.modules.core.categorization.Categorization;
|
||||||
import com.arsdigita.portation.modules.core.categorization.Category;
|
import com.arsdigita.portation.modules.core.categorization.Category;
|
||||||
import com.arsdigita.portation.modules.core.security.Permission;
|
import com.arsdigita.portation.modules.core.security.Permission;
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||||
import com.fasterxml.jackson.annotation.JsonManagedReference;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
@ -47,17 +46,14 @@ import java.util.UUID;
|
||||||
* @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers<\a>
|
* @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers<\a>
|
||||||
* @version created on 6/15/16
|
* @version created on 6/15/16
|
||||||
*/
|
*/
|
||||||
@JsonIgnoreProperties(ignoreUnknown=true)
|
|
||||||
public class CcmObject {
|
public class CcmObject {
|
||||||
|
|
||||||
private long objectId;
|
private long objectId;
|
||||||
|
|
||||||
private String uuid;
|
private String uuid;
|
||||||
private String displayName;
|
private String displayName;
|
||||||
|
@JsonIgnore
|
||||||
@JsonManagedReference
|
|
||||||
private List<Permission> permissions;
|
private List<Permission> permissions;
|
||||||
@JsonManagedReference
|
@JsonIgnore
|
||||||
private List<Categorization> categories;
|
private List<Categorization> categories;
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -18,17 +18,13 @@
|
||||||
*/
|
*/
|
||||||
package com.arsdigita.portation.modules.core.core;
|
package com.arsdigita.portation.modules.core.core;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers<\a>
|
* @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers<\a>
|
||||||
* @version created on 6/15/16
|
* @version created on 6/15/16
|
||||||
*/
|
*/
|
||||||
@JsonIgnoreProperties(ignoreUnknown=true)
|
|
||||||
public class EmailAddress {
|
public class EmailAddress {
|
||||||
|
|
||||||
private String address;
|
private String address;
|
||||||
|
|
||||||
private boolean bouncing;
|
private boolean bouncing;
|
||||||
private boolean verified;
|
private boolean verified;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,6 @@
|
||||||
package com.arsdigita.portation.modules.core.l10n;
|
package com.arsdigita.portation.modules.core.l10n;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
|
@ -36,7 +35,6 @@ import java.util.Set;
|
||||||
* @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers<\a>
|
* @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers<\a>
|
||||||
* @version created on 6/15/16
|
* @version created on 6/15/16
|
||||||
*/
|
*/
|
||||||
@JsonIgnoreProperties(ignoreUnknown=true)
|
|
||||||
public class LocalizedString {
|
public class LocalizedString {
|
||||||
|
|
||||||
private Map<Locale, String> values;
|
private Map<Locale, String> values;
|
||||||
|
|
|
||||||
|
|
@ -21,8 +21,7 @@ package com.arsdigita.portation.modules.core.security;
|
||||||
import com.arsdigita.portation.AbstractMarshaller;
|
import com.arsdigita.portation.AbstractMarshaller;
|
||||||
import com.arsdigita.portation.Portable;
|
import com.arsdigita.portation.Portable;
|
||||||
import com.arsdigita.portation.conversion.NgCollection;
|
import com.arsdigita.portation.conversion.NgCollection;
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||||
import com.fasterxml.jackson.annotation.JsonManagedReference;
|
|
||||||
|
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
@ -31,15 +30,14 @@ import java.util.Set;
|
||||||
* @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers<\a>
|
* @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers<\a>
|
||||||
* @version created on 31.05.16
|
* @version created on 31.05.16
|
||||||
*/
|
*/
|
||||||
@JsonIgnoreProperties(ignoreUnknown=true)
|
|
||||||
public class Group extends Party implements Portable {
|
public class Group extends Party implements Portable {
|
||||||
|
|
||||||
@JsonManagedReference
|
@JsonIgnore
|
||||||
private Set<GroupMembership> memberships;
|
private Set<GroupMembership> memberships;
|
||||||
|
|
||||||
|
|
||||||
public Group(final com.arsdigita.kernel.Group trunkGroup) {
|
public Group(final com.arsdigita.kernel.Group trunkGroup) {
|
||||||
super(trunkGroup);
|
super(trunkGroup);
|
||||||
|
|
||||||
this.memberships = new HashSet<>();
|
this.memberships = new HashSet<>();
|
||||||
|
|
||||||
NgCollection.groups.put(this.getPartyId(), this);
|
NgCollection.groups.put(this.getPartyId(), this);
|
||||||
|
|
|
||||||
|
|
@ -18,28 +18,26 @@
|
||||||
*/
|
*/
|
||||||
package com.arsdigita.portation.modules.core.security;
|
package com.arsdigita.portation.modules.core.security;
|
||||||
|
|
||||||
|
import com.arsdigita.kernel.ACSObject;
|
||||||
import com.arsdigita.portation.AbstractMarshaller;
|
import com.arsdigita.portation.AbstractMarshaller;
|
||||||
import com.arsdigita.portation.Portable;
|
import com.arsdigita.portation.Portable;
|
||||||
import com.arsdigita.portation.conversion.NgCollection;
|
import com.arsdigita.portation.conversion.NgCollection;
|
||||||
import com.fasterxml.jackson.annotation.JsonBackReference;
|
import com.fasterxml.jackson.annotation.JsonIdentityReference;
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers<\a>
|
* @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers<\a>
|
||||||
* @version created on 6/15/16
|
* @version created on 6/15/16
|
||||||
*/
|
*/
|
||||||
@JsonIgnoreProperties(ignoreUnknown=true)
|
|
||||||
public class GroupMembership implements Portable {
|
public class GroupMembership implements Portable {
|
||||||
|
|
||||||
private long membershipId;
|
private long membershipId;
|
||||||
|
@JsonIdentityReference(alwaysAsId = true)
|
||||||
@JsonBackReference
|
|
||||||
private Group group;
|
private Group group;
|
||||||
@JsonBackReference
|
@JsonIdentityReference(alwaysAsId = true)
|
||||||
private User member;
|
private User member;
|
||||||
|
|
||||||
public GroupMembership(final Group group, final User member) {
|
public GroupMembership(final Group group, final User member) {
|
||||||
this.membershipId = NgCollection.groupMemberships.size() + 1;
|
this.membershipId = ACSObject.generateID().longValue();
|
||||||
|
|
||||||
this.group = group;
|
this.group = group;
|
||||||
this.member = member;
|
this.member = member;
|
||||||
|
|
|
||||||
|
|
@ -19,8 +19,7 @@
|
||||||
package com.arsdigita.portation.modules.core.security;
|
package com.arsdigita.portation.modules.core.security;
|
||||||
|
|
||||||
import com.arsdigita.portation.conversion.NgCollection;
|
import com.arsdigita.portation.conversion.NgCollection;
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||||
import com.fasterxml.jackson.annotation.JsonManagedReference;
|
|
||||||
|
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
@ -29,13 +28,11 @@ import java.util.Set;
|
||||||
* @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers<\a>
|
* @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers<\a>
|
||||||
* @version created on 01.06.16
|
* @version created on 01.06.16
|
||||||
*/
|
*/
|
||||||
@JsonIgnoreProperties(ignoreUnknown=true)
|
|
||||||
public class Party {
|
public class Party {
|
||||||
|
|
||||||
private long partyId;
|
private long partyId;
|
||||||
private String name;
|
private String name;
|
||||||
|
@JsonIgnore
|
||||||
@JsonManagedReference
|
|
||||||
private Set<RoleMembership> roleMemberships;
|
private Set<RoleMembership> roleMemberships;
|
||||||
|
|
||||||
public Party(final com.arsdigita.kernel.Party trunkParty) {
|
public Party(final com.arsdigita.kernel.Party trunkParty) {
|
||||||
|
|
|
||||||
|
|
@ -18,13 +18,13 @@
|
||||||
*/
|
*/
|
||||||
package com.arsdigita.portation.modules.core.security;
|
package com.arsdigita.portation.modules.core.security;
|
||||||
|
|
||||||
|
import com.arsdigita.kernel.ACSObject;
|
||||||
import com.arsdigita.portation.AbstractMarshaller;
|
import com.arsdigita.portation.AbstractMarshaller;
|
||||||
import com.arsdigita.portation.Portable;
|
import com.arsdigita.portation.Portable;
|
||||||
import com.arsdigita.portation.conversion.NgCollection;
|
import com.arsdigita.portation.conversion.NgCollection;
|
||||||
import com.arsdigita.portation.modules.core.core.CcmObject;
|
import com.arsdigita.portation.modules.core.core.CcmObject;
|
||||||
import com.arsdigita.portation.modules.core.security.util.PermissionIdMapper;
|
import com.arsdigita.portation.modules.core.security.util.PermissionIdMapper;
|
||||||
import com.fasterxml.jackson.annotation.JsonBackReference;
|
import com.fasterxml.jackson.annotation.JsonIdentityReference;
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
@ -33,17 +33,14 @@ import java.util.Date;
|
||||||
* @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers<\a>
|
* @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers<\a>
|
||||||
* @version created on 6/15/16
|
* @version created on 6/15/16
|
||||||
*/
|
*/
|
||||||
@JsonIgnoreProperties(ignoreUnknown=true)
|
|
||||||
public class Permission implements Portable {
|
public class Permission implements Portable {
|
||||||
|
|
||||||
private long permissionId;
|
private long permissionId;
|
||||||
private String grantedPrivilege;
|
private String grantedPrivilege;
|
||||||
|
@JsonIdentityReference(alwaysAsId = true)
|
||||||
@JsonBackReference
|
|
||||||
private CcmObject object;
|
private CcmObject object;
|
||||||
@JsonBackReference
|
@JsonIdentityReference(alwaysAsId = true)
|
||||||
private Role grantee;
|
private Role grantee;
|
||||||
|
|
||||||
private User creationUser;
|
private User creationUser;
|
||||||
private Date creationDate;
|
private Date creationDate;
|
||||||
private String creationIp;
|
private String creationIp;
|
||||||
|
|
@ -54,7 +51,7 @@ public class Permission implements Portable {
|
||||||
.longValue()
|
.longValue()
|
||||||
+ ((BigDecimal) trunkPermission.getPartyOID().get("id"))
|
+ ((BigDecimal) trunkPermission.getPartyOID().get("id"))
|
||||||
.longValue();
|
.longValue();
|
||||||
this.permissionId = NgCollection.permissions.size() + 1;
|
this.permissionId = ACSObject.generateID().longValue();
|
||||||
PermissionIdMapper.map.put(oldId, this.permissionId);
|
PermissionIdMapper.map.put(oldId, this.permissionId);
|
||||||
|
|
||||||
this.grantedPrivilege = trunkPermission.getPrivilege().getName();
|
this.grantedPrivilege = trunkPermission.getPrivilege().getName();
|
||||||
|
|
@ -76,7 +73,7 @@ public class Permission implements Portable {
|
||||||
* @param ngPermission The Permission to be copied.
|
* @param ngPermission The Permission to be copied.
|
||||||
*/
|
*/
|
||||||
public Permission(final Permission ngPermission) {
|
public Permission(final Permission ngPermission) {
|
||||||
this.permissionId = NgCollection.permissions.size() + 1;
|
this.permissionId = ACSObject.generateID().longValue();
|
||||||
this.grantedPrivilege = ngPermission.getGrantedPrivilege();
|
this.grantedPrivilege = ngPermission.getGrantedPrivilege();
|
||||||
|
|
||||||
this.object = ngPermission.getObject();
|
this.object = ngPermission.getObject();
|
||||||
|
|
|
||||||
|
|
@ -23,8 +23,7 @@ import com.arsdigita.portation.Portable;
|
||||||
import com.arsdigita.portation.conversion.NgCollection;
|
import com.arsdigita.portation.conversion.NgCollection;
|
||||||
import com.arsdigita.portation.modules.core.l10n.LocalizedString;
|
import com.arsdigita.portation.modules.core.l10n.LocalizedString;
|
||||||
import com.arsdigita.portation.modules.core.workflow.TaskAssignment;
|
import com.arsdigita.portation.modules.core.workflow.TaskAssignment;
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||||
import com.fasterxml.jackson.annotation.JsonManagedReference;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
|
@ -36,20 +35,17 @@ import java.util.Set;
|
||||||
* @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers<\a>
|
* @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers<\a>
|
||||||
* @version created on 6/15/16
|
* @version created on 6/15/16
|
||||||
*/
|
*/
|
||||||
@JsonIgnoreProperties(ignoreUnknown=true)
|
|
||||||
public class Role implements Portable {
|
public class Role implements Portable {
|
||||||
|
|
||||||
private long roleId;
|
private long roleId;
|
||||||
private String name;
|
private String name;
|
||||||
|
|
||||||
@JsonManagedReference
|
|
||||||
private Set<RoleMembership> memberships;
|
|
||||||
@JsonManagedReference
|
|
||||||
private List<Permission> permissions;
|
|
||||||
@JsonManagedReference
|
|
||||||
private List<TaskAssignment> assignedTasks;
|
|
||||||
|
|
||||||
private LocalizedString description;
|
private LocalizedString description;
|
||||||
|
@JsonIgnore
|
||||||
|
private Set<RoleMembership> memberships;
|
||||||
|
@JsonIgnore
|
||||||
|
private List<Permission> permissions;
|
||||||
|
@JsonIgnore
|
||||||
|
private List<TaskAssignment> assignedTasks;
|
||||||
|
|
||||||
public Role(final com.arsdigita.kernel.Role trunkRole) {
|
public Role(final com.arsdigita.kernel.Role trunkRole) {
|
||||||
this.roleId = trunkRole.getID().longValue();
|
this.roleId = trunkRole.getID().longValue();
|
||||||
|
|
|
||||||
|
|
@ -18,28 +18,26 @@
|
||||||
*/
|
*/
|
||||||
package com.arsdigita.portation.modules.core.security;
|
package com.arsdigita.portation.modules.core.security;
|
||||||
|
|
||||||
|
import com.arsdigita.kernel.ACSObject;
|
||||||
import com.arsdigita.portation.AbstractMarshaller;
|
import com.arsdigita.portation.AbstractMarshaller;
|
||||||
import com.arsdigita.portation.Portable;
|
import com.arsdigita.portation.Portable;
|
||||||
import com.arsdigita.portation.conversion.NgCollection;
|
import com.arsdigita.portation.conversion.NgCollection;
|
||||||
import com.fasterxml.jackson.annotation.JsonBackReference;
|
import com.fasterxml.jackson.annotation.JsonIdentityReference;
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers<\a>
|
* @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers<\a>
|
||||||
* @version created on 6/15/16
|
* @version created on 6/15/16
|
||||||
*/
|
*/
|
||||||
@JsonIgnoreProperties(ignoreUnknown=true)
|
|
||||||
public class RoleMembership implements Portable {
|
public class RoleMembership implements Portable {
|
||||||
|
|
||||||
private long membershipId;
|
private long membershipId;
|
||||||
|
@JsonIdentityReference(alwaysAsId = true)
|
||||||
@JsonBackReference
|
|
||||||
private Role role;
|
private Role role;
|
||||||
@JsonBackReference
|
@JsonIdentityReference(alwaysAsId = true)
|
||||||
private Party member;
|
private Party member;
|
||||||
|
|
||||||
public RoleMembership(final Role role, final Party member) {
|
public RoleMembership(final Role role, final Party member) {
|
||||||
this.membershipId = NgCollection.roleMemberships.size() + 1;
|
this.membershipId = ACSObject.generateID().longValue();
|
||||||
|
|
||||||
this.role = role;
|
this.role = role;
|
||||||
this.member = member;
|
this.member = member;
|
||||||
|
|
|
||||||
|
|
@ -22,8 +22,8 @@ import com.arsdigita.portation.AbstractMarshaller;
|
||||||
import com.arsdigita.portation.Portable;
|
import com.arsdigita.portation.Portable;
|
||||||
import com.arsdigita.portation.conversion.NgCollection;
|
import com.arsdigita.portation.conversion.NgCollection;
|
||||||
import com.arsdigita.portation.modules.core.core.EmailAddress;
|
import com.arsdigita.portation.modules.core.core.EmailAddress;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||||
import com.fasterxml.jackson.annotation.JsonManagedReference;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
|
@ -40,15 +40,12 @@ public class User extends Party implements Portable {
|
||||||
|
|
||||||
private String givenName;
|
private String givenName;
|
||||||
private String familyName;
|
private String familyName;
|
||||||
|
|
||||||
private EmailAddress primaryEmailAddress;
|
private EmailAddress primaryEmailAddress;
|
||||||
private List<EmailAddress> emailAddresses;
|
private List<EmailAddress> emailAddresses;
|
||||||
|
|
||||||
private boolean banned;
|
private boolean banned;
|
||||||
private String password;
|
private String password;
|
||||||
private boolean passwordResetRequired;
|
private boolean passwordResetRequired;
|
||||||
|
@JsonIgnore
|
||||||
@JsonManagedReference
|
|
||||||
private Set<GroupMembership> groupMemberships;
|
private Set<GroupMembership> groupMemberships;
|
||||||
|
|
||||||
public User(final com.arsdigita.kernel.User trunkUser) {
|
public User(final com.arsdigita.kernel.User trunkUser) {
|
||||||
|
|
|
||||||
|
|
@ -22,8 +22,7 @@ import com.arsdigita.portation.AbstractMarshaller;
|
||||||
import com.arsdigita.portation.Portable;
|
import com.arsdigita.portation.Portable;
|
||||||
import com.arsdigita.portation.conversion.NgCollection;
|
import com.arsdigita.portation.conversion.NgCollection;
|
||||||
import com.arsdigita.portation.modules.core.security.User;
|
import com.arsdigita.portation.modules.core.security.User;
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||||
import com.fasterxml.jackson.annotation.JsonManagedReference;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
@ -33,21 +32,18 @@ import java.util.List;
|
||||||
* @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers<\a>
|
* @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers<\a>
|
||||||
* @version created on 6/15/16
|
* @version created on 6/15/16
|
||||||
*/
|
*/
|
||||||
@JsonIgnoreProperties(ignoreUnknown=true)
|
|
||||||
public class AssignableTask extends Task implements Portable {
|
public class AssignableTask extends Task implements Portable {
|
||||||
|
|
||||||
private boolean locked;
|
private boolean locked;
|
||||||
private User lockingUser;
|
private User lockingUser;
|
||||||
|
|
||||||
private Date startDate;
|
private Date startDate;
|
||||||
private Date dueDate;
|
private Date dueDate;
|
||||||
private long durationMinutes;
|
private long durationMinutes;
|
||||||
|
|
||||||
private User notificationSender;
|
private User notificationSender;
|
||||||
|
@JsonIgnore
|
||||||
@JsonManagedReference
|
|
||||||
private List<TaskAssignment> assignments;
|
private List<TaskAssignment> assignments;
|
||||||
|
|
||||||
|
|
||||||
public AssignableTask(final com.arsdigita.workflow.simple.UserTask
|
public AssignableTask(final com.arsdigita.workflow.simple.UserTask
|
||||||
trunkUserTask) {
|
trunkUserTask) {
|
||||||
super(trunkUserTask);
|
super(trunkUserTask);
|
||||||
|
|
|
||||||
|
|
@ -21,10 +21,8 @@ package com.arsdigita.portation.modules.core.workflow;
|
||||||
import com.arsdigita.portation.conversion.NgCollection;
|
import com.arsdigita.portation.conversion.NgCollection;
|
||||||
import com.arsdigita.portation.modules.core.l10n.LocalizedString;
|
import com.arsdigita.portation.modules.core.l10n.LocalizedString;
|
||||||
import com.arsdigita.portation.modules.core.workflow.util.StateMapper;
|
import com.arsdigita.portation.modules.core.workflow.util.StateMapper;
|
||||||
import com.fasterxml.jackson.annotation.JsonBackReference;
|
import com.fasterxml.jackson.annotation.JsonIdentityReference;
|
||||||
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
|
||||||
import com.fasterxml.jackson.annotation.ObjectIdGenerators;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
@ -35,32 +33,23 @@ import java.util.UUID;
|
||||||
* @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers<\a>
|
* @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers<\a>
|
||||||
* @version created on 6/15/16
|
* @version created on 6/15/16
|
||||||
*/
|
*/
|
||||||
@JsonIgnoreProperties(ignoreUnknown=true)
|
|
||||||
public class Task {
|
public class Task {
|
||||||
|
|
||||||
private long taskId;
|
private long taskId;
|
||||||
private String uuid;
|
private String uuid;
|
||||||
|
|
||||||
private LocalizedString label;
|
private LocalizedString label;
|
||||||
private LocalizedString description;
|
private LocalizedString description;
|
||||||
|
|
||||||
private boolean active;
|
private boolean active;
|
||||||
private TaskState taskState;
|
private TaskState taskState;
|
||||||
|
@JsonIdentityReference(alwaysAsId = true)
|
||||||
@JsonBackReference
|
|
||||||
private Workflow workflow;
|
private Workflow workflow;
|
||||||
|
@JsonIgnore
|
||||||
@JsonIdentityInfo(
|
|
||||||
generator = ObjectIdGenerators.PropertyGenerator.class,
|
|
||||||
property = "taskId")
|
|
||||||
private List<Task> dependentTasks;
|
private List<Task> dependentTasks;
|
||||||
@JsonIdentityInfo(
|
@JsonIdentityReference(alwaysAsId = true)
|
||||||
generator = ObjectIdGenerators.PropertyGenerator.class,
|
|
||||||
property = "taskId")
|
|
||||||
private List<Task> dependsOn;
|
private List<Task> dependsOn;
|
||||||
|
|
||||||
private List<TaskComment> comments;
|
private List<TaskComment> comments;
|
||||||
|
|
||||||
|
|
||||||
public Task(final com.arsdigita.workflow.simple.Task trunkTask) {
|
public Task(final com.arsdigita.workflow.simple.Task trunkTask) {
|
||||||
this.taskId = trunkTask.getID().longValue();
|
this.taskId = trunkTask.getID().longValue();
|
||||||
this.uuid = UUID.randomUUID().toString();
|
this.uuid = UUID.randomUUID().toString();
|
||||||
|
|
|
||||||
|
|
@ -18,29 +18,28 @@
|
||||||
*/
|
*/
|
||||||
package com.arsdigita.portation.modules.core.workflow;
|
package com.arsdigita.portation.modules.core.workflow;
|
||||||
|
|
||||||
|
import com.arsdigita.kernel.ACSObject;
|
||||||
import com.arsdigita.portation.AbstractMarshaller;
|
import com.arsdigita.portation.AbstractMarshaller;
|
||||||
import com.arsdigita.portation.Portable;
|
import com.arsdigita.portation.Portable;
|
||||||
import com.arsdigita.portation.conversion.NgCollection;
|
import com.arsdigita.portation.conversion.NgCollection;
|
||||||
import com.arsdigita.portation.modules.core.security.Role;
|
import com.arsdigita.portation.modules.core.security.Role;
|
||||||
import com.fasterxml.jackson.annotation.JsonBackReference;
|
import com.fasterxml.jackson.annotation.JsonIdentityReference;
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers<\a>
|
* @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers<\a>
|
||||||
* @version created on 6/15/16
|
* @version created on 6/15/16
|
||||||
*/
|
*/
|
||||||
@JsonIgnoreProperties(ignoreUnknown=true)
|
|
||||||
public class TaskAssignment implements Portable {
|
public class TaskAssignment implements Portable {
|
||||||
|
|
||||||
private long taskAssignmentId;
|
private long taskAssignmentId;
|
||||||
|
@JsonIdentityReference(alwaysAsId = true)
|
||||||
@JsonBackReference
|
|
||||||
private AssignableTask task;
|
private AssignableTask task;
|
||||||
@JsonBackReference
|
@JsonIdentityReference(alwaysAsId = true)
|
||||||
private Role role;
|
private Role role;
|
||||||
|
|
||||||
|
|
||||||
public TaskAssignment(final AssignableTask task, final Role role) {
|
public TaskAssignment(final AssignableTask task, final Role role) {
|
||||||
this.taskAssignmentId = NgCollection.taskAssignments.size() + 1;
|
this.taskAssignmentId = ACSObject.generateID().longValue();
|
||||||
|
|
||||||
this.task = task;
|
this.task = task;
|
||||||
this.role = role;
|
this.role = role;
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,6 @@
|
||||||
package com.arsdigita.portation.modules.core.workflow;
|
package com.arsdigita.portation.modules.core.workflow;
|
||||||
|
|
||||||
import com.arsdigita.portation.modules.core.security.User;
|
import com.arsdigita.portation.modules.core.security.User;
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
|
@ -27,15 +26,14 @@ import java.util.UUID;
|
||||||
* @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers</a>
|
* @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers</a>
|
||||||
* @version created on 11/18/16
|
* @version created on 11/18/16
|
||||||
*/
|
*/
|
||||||
@JsonIgnoreProperties(ignoreUnknown=true)
|
|
||||||
public class TaskComment {
|
public class TaskComment {
|
||||||
|
|
||||||
private long commentId;
|
private long commentId;
|
||||||
private String uuid;
|
private String uuid;
|
||||||
|
|
||||||
private String comment;
|
private String comment;
|
||||||
private User author;
|
private User author;
|
||||||
|
|
||||||
|
|
||||||
public TaskComment(com.arsdigita.workflow.simple.TaskComment
|
public TaskComment(com.arsdigita.workflow.simple.TaskComment
|
||||||
trunkTaskComment) {
|
trunkTaskComment) {
|
||||||
this.commentId = trunkTaskComment.getCommentID().longValue();
|
this.commentId = trunkTaskComment.getCommentID().longValue();
|
||||||
|
|
|
||||||
|
|
@ -24,8 +24,7 @@ import com.arsdigita.portation.conversion.NgCollection;
|
||||||
import com.arsdigita.portation.modules.core.core.CcmObject;
|
import com.arsdigita.portation.modules.core.core.CcmObject;
|
||||||
import com.arsdigita.portation.modules.core.l10n.LocalizedString;
|
import com.arsdigita.portation.modules.core.l10n.LocalizedString;
|
||||||
import com.arsdigita.portation.modules.core.workflow.util.StateMapper;
|
import com.arsdigita.portation.modules.core.workflow.util.StateMapper;
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||||
import com.fasterxml.jackson.annotation.JsonManagedReference;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
@ -36,24 +35,18 @@ import java.util.UUID;
|
||||||
* @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers<\a>
|
* @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers<\a>
|
||||||
* @version created on 6/15/16
|
* @version created on 6/15/16
|
||||||
*/
|
*/
|
||||||
@JsonIgnoreProperties(ignoreUnknown=true)
|
|
||||||
public class Workflow implements Portable {
|
public class Workflow implements Portable {
|
||||||
|
|
||||||
private long workflowId;
|
private long workflowId;
|
||||||
private String uuid;
|
private String uuid;
|
||||||
|
|
||||||
private WorkflowTemplate template;
|
private WorkflowTemplate template;
|
||||||
|
|
||||||
private LocalizedString name;
|
private LocalizedString name;
|
||||||
private LocalizedString description;
|
private LocalizedString description;
|
||||||
|
|
||||||
private WorkflowState state;
|
private WorkflowState state;
|
||||||
private boolean active;
|
private boolean active;
|
||||||
private TaskState tasksState;
|
private TaskState tasksState;
|
||||||
|
|
||||||
private CcmObject object;
|
private CcmObject object;
|
||||||
|
@JsonIgnore
|
||||||
@JsonManagedReference
|
|
||||||
private List<Task> tasks;
|
private List<Task> tasks;
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,13 +19,11 @@
|
||||||
package com.arsdigita.portation.modules.core.workflow;
|
package com.arsdigita.portation.modules.core.workflow;
|
||||||
|
|
||||||
import com.arsdigita.portation.conversion.NgCollection;
|
import com.arsdigita.portation.conversion.NgCollection;
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers</a>
|
* @author <a href="mailto:tosmers@uni-bremen.de>Tobias Osmers</a>
|
||||||
* @version created on 11/18/16
|
* @version created on 11/18/16
|
||||||
*/
|
*/
|
||||||
@JsonIgnoreProperties(ignoreUnknown=true)
|
|
||||||
public class WorkflowTemplate extends Workflow {
|
public class WorkflowTemplate extends Workflow {
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue