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 f1126e77d..e106c52ad 100644
--- a/ccm-core/src/main/java/org/libreccm/categorization/Categorization.java
+++ b/ccm-core/src/main/java/org/libreccm/categorization/Categorization.java
@@ -154,6 +154,8 @@ public class Categorization implements Serializable {
}
@Override
+ //No chance to make this method less complex, therefore suppress warning
+ @SuppressWarnings("PMD.NPathComplexity")
public boolean equals(final Object obj) {
if (obj == null) {
return false;
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 016ef2244..6f8dbcc70 100644
--- a/ccm-core/src/main/java/org/libreccm/categorization/Domain.java
+++ b/ccm-core/src/main/java/org/libreccm/categorization/Domain.java
@@ -35,7 +35,6 @@ 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;
@@ -46,6 +45,7 @@ import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.Pattern;
+import org.omg.CORBA.DomainManager;
/**
* A domain is collection of categories designed a specific purpose. This entity
diff --git a/ccm-core/src/main/java/org/libreccm/core/AbstractEntityRepository.java b/ccm-core/src/main/java/org/libreccm/core/AbstractEntityRepository.java
new file mode 100644
index 000000000..33119ebef
--- /dev/null
+++ b/ccm-core/src/main/java/org/libreccm/core/AbstractEntityRepository.java
@@ -0,0 +1,44 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.libreccm.core;
+
+import java.util.List;
+import javax.inject.Inject;
+import javax.persistence.EntityManager;
+
+/**
+ *
+ * @author Jens Pelzetter
+ */
+public abstract class AbstractEntityRepository {
+
+ @Inject
+ private transient EntityManager entityManager;
+
+ protected EntityManager getEntityManager() {
+ return entityManager;
+ }
+
+ public abstract Class getEntityClass();
+
+ public abstract boolean isNew(final E entity) {
+
+ }
+
+ public void save(final E entity) {
+ if (isNew(entity)) {
+ entityManager.persist(entity);
+ } else {
+ entityManager.merge(entity);
+ }
+ }
+
+ public List findById(final K entityId) {
+ return entityManager.find(getEntityClass(), entityId);
+ }
+
+ public abstract List findAll();
+}
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 97e037951..2308801d6 100644
--- a/ccm-core/src/main/java/org/libreccm/core/CcmObject.java
+++ b/ccm-core/src/main/java/org/libreccm/core/CcmObject.java
@@ -37,6 +37,8 @@ import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.OneToMany;
import javax.persistence.Table;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
/**
* Root class of all entities in LibreCCM which need categorisation and
@@ -58,6 +60,11 @@ import javax.persistence.Table;
@Entity
@Table(name = "ccm_objects")
@Inheritance(strategy = InheritanceType.JOINED)
+@XmlRootElement(name = "ccm-object", namespace = "http://core.libreccm.org")
+//False warning (?). Because this class has been migrated from the old PDL style
+//persistence system we can't yet refactor it to make PMD happy. Also I think
+//this is a false warning.
+@SuppressWarnings("PMD.TooManyMethods")
public class CcmObject implements Serializable {
private static final long serialVersionUID = 201504261329L;
@@ -70,6 +77,7 @@ public class CcmObject implements Serializable {
@Id
@Column(name = "object_id")
@GeneratedValue(strategy = GenerationType.AUTO)
+ @XmlElement(name = "object-id")
private long objectId;
/**
diff --git a/ccm-core/src/main/java/org/libreccm/core/EmailAddress.java b/ccm-core/src/main/java/org/libreccm/core/EmailAddress.java
index 3b12e534c..b2c06ad52 100644
--- a/ccm-core/src/main/java/org/libreccm/core/EmailAddress.java
+++ b/ccm-core/src/main/java/org/libreccm/core/EmailAddress.java
@@ -29,6 +29,14 @@ import javax.persistence.Embeddable;
/**
* An embeddable entity for storing email addresses.
+ *
+ * In contrast to its predecessor {@code com.arsdigita.kernel.EmailAddress}
+ * this class does not provide verification methods. Verification is done using
+ * the Bean Validiation API (Hibernate Validator is used as
+ * implementation).
+ *
+ * Because this class is an embeddable JPA entity it can be used in other
+ * entities to store eMail addresses.
*
* @author Jens Pelzetter
*/
@@ -40,7 +48,7 @@ public class EmailAddress implements Serializable {
@Column(name = "email_address", length = 512, nullable = false)
@NotBlank
@Email
- private String eMailAddress;
+ private String address;
@Column(name = "bouncing")
private boolean bouncing;
@@ -48,12 +56,12 @@ public class EmailAddress implements Serializable {
@Column(name = "verified")
private boolean verified;
- public String getEmailAddress() {
- return eMailAddress;
+ public String getAddress() {
+ return address;
}
- public void setEmailAddress(final String eMailAddress) {
- this.eMailAddress = eMailAddress;
+ public void setAddress(final String eMailAddress) {
+ this.address = eMailAddress;
}
public boolean isBouncing() {
@@ -75,7 +83,7 @@ public class EmailAddress implements Serializable {
@Override
public int hashCode() {
int hash = 5;
- hash = 79 * hash + Objects.hashCode(eMailAddress);
+ hash = 79 * hash + Objects.hashCode(address);
hash = 79 * hash + (bouncing ? 1 : 0);
hash = 79 * hash + (verified ? 1 : 0);
return hash;
@@ -94,7 +102,7 @@ public class EmailAddress implements Serializable {
return false;
}
- if (!Objects.equals(eMailAddress, other.getEmailAddress())) {
+ if (!Objects.equals(address, other.getAddress())) {
return false;
}
if (bouncing != other.isBouncing()) {
@@ -114,7 +122,7 @@ public class EmailAddress implements Serializable {
+ "bouncing = %b, "
+ "verified = %b }",
super.toString(),
- eMailAddress,
+ address,
bouncing,
verified);
}
diff --git a/ccm-core/src/main/java/org/libreccm/core/GroupMembership.java b/ccm-core/src/main/java/org/libreccm/core/GroupMembership.java
index 82304d9da..24736a5a9 100644
--- a/ccm-core/src/main/java/org/libreccm/core/GroupMembership.java
+++ b/ccm-core/src/main/java/org/libreccm/core/GroupMembership.java
@@ -29,7 +29,8 @@ import javax.persistence.ManyToOne;
import javax.persistence.Table;
/**
- *
+ * An association class for the association between a group and it members.
+ *
* @author Jens Pelzetter
*/
@Entity
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 036fb2739..26f469cc9 100644
--- a/ccm-core/src/main/java/org/libreccm/core/Party.java
+++ b/ccm-core/src/main/java/org/libreccm/core/Party.java
@@ -52,6 +52,8 @@ public class Party extends CcmObject implements Serializable {
private List emailAddresses;
@OneToMany(mappedBy = "grantee")
+ //Can't shorten this variable name without reducing descriptiveness
+ @SuppressWarnings("PMD.LongVariable")
private List grantedPermissions;
public Party() {
@@ -84,6 +86,8 @@ public class Party extends CcmObject implements Serializable {
return Collections.unmodifiableList(grantedPermissions);
}
+ //Can't shorten this variable name without reducing descriptiveness
+ @SuppressWarnings("PMD.LongVariable")
protected void setGrantedPermissions(
final List grantedPermissions) {
this.grantedPermissions = grantedPermissions;
diff --git a/ccm-core/src/main/java/org/libreccm/core/Permission.java b/ccm-core/src/main/java/org/libreccm/core/Permission.java
index 0322ba7b9..21998f5f4 100644
--- a/ccm-core/src/main/java/org/libreccm/core/Permission.java
+++ b/ccm-core/src/main/java/org/libreccm/core/Permission.java
@@ -40,6 +40,10 @@ import javax.persistence.TemporalType;
*/
@Entity
@Table(name = "permissions")
+//Can't reduce complexity yet
+@SuppressWarnings({"PMD.CyclomaticComplexity",
+ "PMD.StdCyclomaticComplexity",
+ "PMD.ModifiedCyclomaticComplexity"})
public class Permission implements Serializable {
private static final long serialVersionUID = -2368935232499907547L;
@@ -136,7 +140,7 @@ public class Permission implements Serializable {
public int hashCode() {
int hash = 3;
hash
- = 31 * hash + (int) (permissionId ^ (permissionId >>> 32));
+ = 31 * hash + (int) (permissionId ^ (permissionId >>> 32));
hash = 31 * hash + Objects.hashCode(grantee);
hash = 31 * hash + Objects.hashCode(grantedPrivilege);
hash = 31 * hash + Objects.hashCode(object);
@@ -147,6 +151,11 @@ public class Permission implements Serializable {
}
@Override
+ //Can't reduce complexity yet
+ @SuppressWarnings({"PMD.CyclomaticComplexity",
+ "PMD.StdCyclomaticComplexity",
+ "PMD.ModifiedCyclomaticComplexity",
+ "PMD.NPathComplexity"})
public boolean equals(final Object obj) {
if (obj == null) {
return false;
@@ -188,14 +197,14 @@ public class Permission implements Serializable {
@Override
public String toString() {
return String.format("%s{ "
- + "permissionId = %d, "
- + "grantee = %s, "
- + "grantedPrivilege = %s, "
- + "object = %s, "
- + "creationUser = %s,"
- + "creationDate = %tF %>> 32));
+ = 67 * hash + (int) (attachmentId ^ (attachmentId >>> 32));
hash = 67 * hash + Objects.hashCode(message);
hash = 67 * hash + Objects.hashCode(mimeType);
hash = 67 * hash + Objects.hashCode(title);
@@ -139,6 +139,8 @@ public class Attachment implements Serializable {
}
@Override
+ //Can't reduce complexity yet
+ @SuppressWarnings("PMD.NPathComplexity")
public boolean equals(final Object obj) {
if (obj == null) {
return false;
@@ -178,11 +180,11 @@ public class Attachment implements Serializable {
@Override
public String toString() {
return String.format("%s{ "
- + "attachmentId = %d, "
- + "message = %s, "
- + "mimeType = \"%s\", "
- + "title = \"%s\""
- + " }",
+ + "attachmentId = %d, "
+ + "message = %s, "
+ + "mimeType = \"%s\", "
+ + "title = \"%s\""
+ + " }",
super.toString(),
attachmentId,
Objects.toString(message),
diff --git a/ccm-core/src/main/java/org/libreccm/messaging/Message.java b/ccm-core/src/main/java/org/libreccm/messaging/Message.java
index 99b8f4b6c..ebbee8630 100644
--- a/ccm-core/src/main/java/org/libreccm/messaging/Message.java
+++ b/ccm-core/src/main/java/org/libreccm/messaging/Message.java
@@ -46,6 +46,10 @@ import javax.persistence.TemporalType;
*/
@Entity
@Table(name = "messages")
+//Can't reduce complexity yet
+@SuppressWarnings({"PMD.CyclomaticComplexity",
+ "PMD.StdCyclomaticComplexity",
+ "PMD.ModifiedCyclomaticComplexity"})
public class Message extends CcmObject implements Serializable {
private static final long serialVersionUID = -9143137794418932025L;
@@ -189,15 +193,20 @@ public class Message extends CcmObject implements Serializable {
}
@Override
+ //Can't reduce complexity yet
+ @SuppressWarnings({"PMD.CyclomaticComplexity",
+ "PMD.StdCyclomaticComplexity",
+ "PMD.ModifiedCyclomaticComplexity",
+ "PMD.NPathComplexity"})
public boolean equals(final Object obj) {
if (obj == null) {
return false;
}
-
+
if (!super.equals(obj)) {
return false;
}
-
+
if (!(obj instanceof Message)) {
return false;
}
@@ -238,10 +247,10 @@ public class Message extends CcmObject implements Serializable {
@Override
public String toString(final String data) {
return super.toString(String.format(", sender = %s, "
- + "subject = \"%s\", "
- + "bodyMimeType = \"%s\", "
- + "sent = %tF %Jens Pelzetter
*/
@Entity
@Table(name = "queue_items")
+//Can't reduce complexity yet
+@SuppressWarnings({"PMD.CyclomaticComplexity",
+ "PMD.StdCyclomaticComplexity",
+ "PMD.ModifiedCyclomaticComplexity"})
public class QueueItem implements Serializable {
private static final long serialVersionUID = 396330385592074013L;
@@ -156,6 +160,11 @@ public class QueueItem implements Serializable {
}
@Override
+ //Can't reduce complexity yet
+ @SuppressWarnings({"PMD.CyclomaticComplexity",
+ "PMD.StdCyclomaticComplexity",
+ "PMD.ModifiedCyclomaticComplexity",
+ "PMD.NPathComplexity"})
public boolean equals(final Object obj) {
if (obj == null) {
return false;
@@ -167,7 +176,7 @@ public class QueueItem implements Serializable {
if (!other.canEqual(this)) {
return false;
}
-
+
if (this.queueItemId != other.getQueueItemId()) {
return false;
}
@@ -199,13 +208,13 @@ public class QueueItem implements Serializable {
@Override
public String toString() {
return String.format("%s{ "
- + "queueItemId = %d, "
- + "receiver = %s, "
- + "retryCount = %d, "
- + "successful = %b, "
- + "receiverAddress = \"%s\", "
- + "message = %s"
- + " }",
+ + "queueItemId = %d, "
+ + "receiver = %s, "
+ + "retryCount = %d, "
+ + "successful = %b, "
+ + "receiverAddress = \"%s\", "
+ + "message = %s"
+ + " }",
super.toString(),
queueItemId,
Objects.toString(receiver),
diff --git a/ccm-core/src/main/java/org/libreccm/runtime/Initalizer.java b/ccm-core/src/main/java/org/libreccm/runtime/Initalizer.java
index ea557e358..4cfcff0ad 100644
--- a/ccm-core/src/main/java/org/libreccm/runtime/Initalizer.java
+++ b/ccm-core/src/main/java/org/libreccm/runtime/Initalizer.java
@@ -57,12 +57,12 @@ public class Initalizer implements Serializable {
private Initalizer requiredBy;
@OneToMany(mappedBy = "requiredBy")
- private List requiredInitializers;
+ private List requires;
public Initalizer() {
super();
- requiredInitializers = new ArrayList<>();
+ requires = new ArrayList<>();
}
public long getInitializerId() {
@@ -89,25 +89,25 @@ public class Initalizer implements Serializable {
this.requiredBy = requiredBy;
}
- public List getRequiredInitializers() {
- if (requiredInitializers == null) {
+ public List getRequires() {
+ if (requires == null) {
return null;
} else {
- return Collections.unmodifiableList(requiredInitializers);
+ return Collections.unmodifiableList(requires);
}
}
- protected void setRequiredInitializers(
- final List requiredInitializers) {
- this.requiredInitializers = requiredInitializers;
+ protected void setRequires(
+ final List requires) {
+ this.requires = requires;
}
protected void addRequiredInitalizer(final Initalizer initalizer) {
- requiredInitializers.add(initalizer);
+ requires.add(initalizer);
}
protected void removeRequiredInitalizer(final Initalizer initalizer) {
- requiredInitializers.remove(initalizer);
+ requires.remove(initalizer);
}
@Override
@@ -117,7 +117,7 @@ public class Initalizer implements Serializable {
= 37 * hash + (int) (initializerId ^ (initializerId >>> 32));
hash = 37 * hash + Objects.hashCode(className);
hash = 37 * hash + Objects.hashCode(requiredBy);
- hash = 37 * hash + Objects.hashCode(requiredInitializers);
+ hash = 37 * hash + Objects.hashCode(requires);
return hash;
}
@@ -143,8 +143,8 @@ public class Initalizer implements Serializable {
if (!Objects.equals(requiredBy, other.getRequiredBy())) {
return false;
}
- return Objects.equals(requiredInitializers,
- other.getRequiredInitializers());
+ return Objects.equals(requires,
+ other.getRequires());
}
public boolean canEqual(final Object obj) {
diff --git a/ccm-core/src/main/java/org/libreccm/search/lucene/Document.java b/ccm-core/src/main/java/org/libreccm/search/lucene/Document.java
index a850e22de..abc6dab45 100644
--- a/ccm-core/src/main/java/org/libreccm/search/lucene/Document.java
+++ b/ccm-core/src/main/java/org/libreccm/search/lucene/Document.java
@@ -42,6 +42,12 @@ import javax.persistence.TemporalType;
*/
@Entity
@Table(name = "lucene_documents")
+//Can't reduce complexity yet. Not sure what to do about the God class warning.
+//Maybe we have to put some of the properties into an extra class.
+@SuppressWarnings({"PMD.CyclomaticComplexity",
+ "PMD.StdCyclomaticComplexity",
+ "PMD.ModifiedCyclomaticComplexity",
+ "PMD.GodClass"})
public class Document implements Serializable {
private static final long serialVersionUID = 3363154040440909619L;
@@ -269,6 +275,11 @@ public class Document implements Serializable {
}
@Override
+ //Can't reduce complexity yet
+ @SuppressWarnings({"PMD.CyclomaticComplexity",
+ "PMD.StdCyclomaticComplexity",
+ "PMD.ModifiedCyclomaticComplexity",
+ "PMD.NPathComplexity"})
public boolean equals(final Object obj) {
if (obj == null) {
return false;
diff --git a/ccm-core/src/main/java/org/libreccm/web/Host.java b/ccm-core/src/main/java/org/libreccm/web/Host.java
index bc0193c25..d64583d93 100644
--- a/ccm-core/src/main/java/org/libreccm/web/Host.java
+++ b/ccm-core/src/main/java/org/libreccm/web/Host.java
@@ -37,6 +37,7 @@ import javax.persistence.UniqueConstraint;
@Table(name = "hosts",
uniqueConstraints = {
@UniqueConstraint(columnNames = {"server_name", "server_port"})})
+@SuppressWarnings("PMD.ShortClassName") //Host is perfectly fine as class name...
public class Host implements Serializable {
private static final long serialVersionUID = 8727376444061847375L;
@@ -113,10 +114,10 @@ public class Host implements Serializable {
@Override
public String toString() {
return String.format("%s{ "
- + "hostId = %d, "
- + "serverName = \"%s\", "
- + "serverPort =\"%s\""
- + " }",
+ + "hostId = %d, "
+ + "serverName = \"%s\", "
+ + "serverPort =\"%s\""
+ + " }",
super.toString(),
hostId,
serverName,
diff --git a/ccm-core/src/main/java/org/libreccm/workflow/Task.java b/ccm-core/src/main/java/org/libreccm/workflow/Task.java
index 3cfa06a46..29c1dd705 100644
--- a/ccm-core/src/main/java/org/libreccm/workflow/Task.java
+++ b/ccm-core/src/main/java/org/libreccm/workflow/Task.java
@@ -50,6 +50,13 @@ import javax.persistence.Table;
@Entity
@Table(name = "workflow_tasks")
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
+//Can't reduce complexity yet, Task is a fine name
+@SuppressWarnings({"PMD.CyclomaticComplexity",
+ "PMD.StdCyclomaticComplexity",
+ "PMD.ModifiedCyclomaticComplexity",
+ "PMD.ShortClassName",
+ "PMD.TooManyMethods",
+ "PMD.AvoidDuplicateLiterals"})
public class Task implements Serializable {
private static final long serialVersionUID = 8161343036908150426L;
@@ -61,18 +68,18 @@ public class Task implements Serializable {
@Embedded
@AssociationOverride(
- name = "values",
- joinTable = @JoinTable(name = "workflow_task_labels",
- joinColumns = {
- @JoinColumn(name = "task_id")}))
+ name = "values",
+ joinTable = @JoinTable(name = "workflow_task_labels",
+ joinColumns = {
+ @JoinColumn(name = "task_id")}))
private LocalizedString label;
@Embedded
@AssociationOverride(
- name = "values",
- joinTable = @JoinTable(name = "workflow_tasks_descriptions",
- joinColumns = {
- @JoinColumn(name = "task_id")}))
+ name = "values",
+ joinTable = @JoinTable(name = "workflow_tasks_descriptions",
+ joinColumns = {
+ @JoinColumn(name = "task_id")}))
private LocalizedString description;
@Column(name = "active")
@@ -238,6 +245,11 @@ public class Task implements Serializable {
}
@Override
+ //Can't reduce complexity yet
+ @SuppressWarnings({"PMD.CyclomaticComplexity",
+ "PMD.StdCyclomaticComplexity",
+ "PMD.ModifiedCyclomaticComplexity",
+ "PMD.NPathComplexity"})
public boolean equals(final Object obj) {
if (obj == null) {
return false;
@@ -288,14 +300,14 @@ public class Task implements Serializable {
public String toString(final String data) {
return String.format("%s{ "
- + "taskId = %d, "
- + "label = %s, "
- + "active = %b, "
- + "taskState = \"%s\", "
- + "workflow = %s, "
- + "dependentTasks = %s, "
- + "dependsOn = %s%s"
- + " }",
+ + "taskId = %d, "
+ + "label = %s, "
+ + "active = %b, "
+ + "taskState = \"%s\", "
+ + "workflow = %s, "
+ + "dependentTasks = %s, "
+ + "dependsOn = %s%s"
+ + " }",
super.toString(),
taskId,
Objects.toString(label),
diff --git a/ccm-core/src/main/java/org/libreccm/workflow/UserTask.java b/ccm-core/src/main/java/org/libreccm/workflow/UserTask.java
index 00ce0c619..1de17c07d 100644
--- a/ccm-core/src/main/java/org/libreccm/workflow/UserTask.java
+++ b/ccm-core/src/main/java/org/libreccm/workflow/UserTask.java
@@ -44,6 +44,10 @@ import javax.persistence.TemporalType;
*/
@Entity
@Table(name = "workflow_user_tasks")
+//Can't reduce complexity yet
+@SuppressWarnings({"PMD.CyclomaticComplexity",
+ "PMD.StdCyclomaticComplexity",
+ "PMD.ModifiedCyclomaticComplexity"})
public class UserTask extends Task implements Serializable {
private static final long serialVersionUID = 4188064584389893019L;
@@ -68,6 +72,7 @@ public class UserTask extends Task implements Serializable {
@OneToOne
@JoinColumn(name = "notification_sender")
+ @SuppressWarnings("PMD.LongVariable") //Shorter name would not be descriptive
private User notificationSender;
@OneToMany
@@ -152,6 +157,7 @@ public class UserTask extends Task implements Serializable {
return notificationSender;
}
+ @SuppressWarnings("PMD.LongVariable")
public void setNotificationSender(final User notificationSender) {
this.notificationSender = notificationSender;
}
@@ -204,7 +210,7 @@ public class UserTask extends Task implements Serializable {
hash = 37 * hash + Objects.hashCode(startDate);
hash = 37 * hash + Objects.hashCode(dueDate);
hash
- = 37 * hash + (int) (durationMinutes ^ (durationMinutes >>> 32));
+ = 37 * hash + (int) (durationMinutes ^ (durationMinutes >>> 32));
hash = 37 * hash + Objects.hashCode(notificationSender);
hash = 37 * hash + Objects.hashCode(assignedUsers);
hash = 37 * hash + Objects.hashCode(assignedGroups);
@@ -212,6 +218,11 @@ public class UserTask extends Task implements Serializable {
}
@Override
+ //Can't reduce complexity yet
+ @SuppressWarnings({"PMD.CyclomaticComplexity",
+ "PMD.StdCyclomaticComplexity",
+ "PMD.ModifiedCyclomaticComplexity",
+ "PMD.NPathComplexity"})
public boolean equals(final Object obj) {
if (obj == null) {
return false;
@@ -257,15 +268,15 @@ public class UserTask extends Task implements Serializable {
public boolean canEqual(final Object obj) {
return obj instanceof UserTask;
}
-
+
@Override
public String toString(final String data) {
return super.toString(String.format(", locked = %b, "
- + "lockingUser = %s, "
- + "startDate = %tF %