From 9ed08ad047f5a4e82cdda2856e6ab0bbae3332e9 Mon Sep 17 00:00:00 2001 From: Jens Pelzetter Date: Sat, 7 Sep 2019 19:49:12 +0200 Subject: [PATCH] Manager for publications (especially authorships) --- ...actPublicationWithPublisherRepository.java | 18 -- .../AbstractUnPublishedRepository.java | 17 -- .../ArticleInCollectedVolumeRepository.java | 22 --- .../ArticleInJournalRepository.java | 22 --- .../publications/Authorship.java | 172 ++++++++++++++++++ .../CollectedVolumeRepository.java | 22 --- .../publications/ExpertiseRepository.java | 21 --- .../GreyLiteratureRepository.java | 22 --- .../publications/InProceedingsRepository.java | 21 --- .../InternetArticleRepository.java | 21 --- .../publications/MonographRepository.java | 22 --- .../publications/ProceedingsRepository.java | 22 --- .../publications/Publication.java | 47 ++++- .../publications/PublicationManager.java | 141 ++++++++++++++ ...sitory.java => PublicationRepository.java} | 17 +- .../publications/TalkRepository.java | 21 --- .../publications/WorkingPaperRepository.java | 21 --- .../publications/EqualsAndHashCodeTest.java | 1 + 18 files changed, 372 insertions(+), 278 deletions(-) delete mode 100644 sci-publications/src/main/java/org/scientificcms/publications/AbstractPublicationWithPublisherRepository.java delete mode 100644 sci-publications/src/main/java/org/scientificcms/publications/AbstractUnPublishedRepository.java delete mode 100644 sci-publications/src/main/java/org/scientificcms/publications/ArticleInCollectedVolumeRepository.java delete mode 100644 sci-publications/src/main/java/org/scientificcms/publications/ArticleInJournalRepository.java create mode 100644 sci-publications/src/main/java/org/scientificcms/publications/Authorship.java delete mode 100644 sci-publications/src/main/java/org/scientificcms/publications/CollectedVolumeRepository.java delete mode 100644 sci-publications/src/main/java/org/scientificcms/publications/ExpertiseRepository.java delete mode 100644 sci-publications/src/main/java/org/scientificcms/publications/GreyLiteratureRepository.java delete mode 100644 sci-publications/src/main/java/org/scientificcms/publications/InProceedingsRepository.java delete mode 100644 sci-publications/src/main/java/org/scientificcms/publications/InternetArticleRepository.java delete mode 100644 sci-publications/src/main/java/org/scientificcms/publications/MonographRepository.java delete mode 100644 sci-publications/src/main/java/org/scientificcms/publications/ProceedingsRepository.java create mode 100644 sci-publications/src/main/java/org/scientificcms/publications/PublicationManager.java rename sci-publications/src/main/java/org/scientificcms/publications/{AbstractPublicationRepository.java => PublicationRepository.java} (63%) delete mode 100644 sci-publications/src/main/java/org/scientificcms/publications/TalkRepository.java delete mode 100644 sci-publications/src/main/java/org/scientificcms/publications/WorkingPaperRepository.java diff --git a/sci-publications/src/main/java/org/scientificcms/publications/AbstractPublicationWithPublisherRepository.java b/sci-publications/src/main/java/org/scientificcms/publications/AbstractPublicationWithPublisherRepository.java deleted file mode 100644 index 616759d..0000000 --- a/sci-publications/src/main/java/org/scientificcms/publications/AbstractPublicationWithPublisherRepository.java +++ /dev/null @@ -1,18 +0,0 @@ -/* - * 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.scientificcms.publications; - -/** - * - * @author Jens Pelzetter - * @param - */ -public abstract class AbstractPublicationWithPublisherRepository - extends AbstractPublicationRepository { - - private static final long serialVersionUID = 1L; - -} diff --git a/sci-publications/src/main/java/org/scientificcms/publications/AbstractUnPublishedRepository.java b/sci-publications/src/main/java/org/scientificcms/publications/AbstractUnPublishedRepository.java deleted file mode 100644 index 4f26b60..0000000 --- a/sci-publications/src/main/java/org/scientificcms/publications/AbstractUnPublishedRepository.java +++ /dev/null @@ -1,17 +0,0 @@ -/* - * 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.scientificcms.publications; - -/** - * - * @author Jens Pelzetter - * @param - */ -public abstract class AbstractUnPublishedRepository extends AbstractPublicationRepository { - - private static final long serialVersionUID = 1L; - -} diff --git a/sci-publications/src/main/java/org/scientificcms/publications/ArticleInCollectedVolumeRepository.java b/sci-publications/src/main/java/org/scientificcms/publications/ArticleInCollectedVolumeRepository.java deleted file mode 100644 index 9f1942b..0000000 --- a/sci-publications/src/main/java/org/scientificcms/publications/ArticleInCollectedVolumeRepository.java +++ /dev/null @@ -1,22 +0,0 @@ -/* - * 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.scientificcms.publications; - -/** - * - * @author Jens Pelzetter - */ -public class ArticleInCollectedVolumeRepository - extends AbstractPublicationRepository { - - private static final long serialVersionUID = 1L; - - @Override - public Class getEntityClass() { - return ArticleInCollectedVolume.class; - } - -} diff --git a/sci-publications/src/main/java/org/scientificcms/publications/ArticleInJournalRepository.java b/sci-publications/src/main/java/org/scientificcms/publications/ArticleInJournalRepository.java deleted file mode 100644 index 68033fc..0000000 --- a/sci-publications/src/main/java/org/scientificcms/publications/ArticleInJournalRepository.java +++ /dev/null @@ -1,22 +0,0 @@ -/* - * 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.scientificcms.publications; - -/** - * - * @author Jens Pelzetter - */ -public class ArticleInJournalRepository - extends AbstractPublicationRepository{ - - private static final long serialVersionUID = 1L; - - @Override - public Class getEntityClass() { - return ArticleInJournal.class; - } - -} diff --git a/sci-publications/src/main/java/org/scientificcms/publications/Authorship.java b/sci-publications/src/main/java/org/scientificcms/publications/Authorship.java new file mode 100644 index 0000000..8bd96c4 --- /dev/null +++ b/sci-publications/src/main/java/org/scientificcms/publications/Authorship.java @@ -0,0 +1,172 @@ +/* + * 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.scientificcms.publications; + +import org.hibernate.envers.Audited; +import org.librecms.assets.Person; + +import java.io.Serializable; +import java.util.Objects; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Table; + +import static org.scientificcms.publications.SciPublicationsConstants.*; + +/** + * + * @author Jens Pelzetter + */ +@Entity +@Table(name = "AUTHORSHIPS", schema = DB_SCHEMA) +@Audited +public class Authorship implements Serializable, Comparable { + + private static final long serialVersionUID = 1L; + + @Id + @Column(name = "AUTHORSHIP_ID") + @GeneratedValue(strategy = GenerationType.AUTO) + private long authorshipId; + + @Column(name = "UUID", length = 36, nullable = false) + private String uuid; + + @ManyToOne + @JoinColumn(name = "PUBLICATION_ID") + private Publication publication; + + @ManyToOne + @JoinColumn(name = "AUTHOR_ID") + private Person author; + + @Column(name = "EDITOR") + private boolean editor; + + @Column(name = "AUTHOR_ORDER") + private long authorOrder; + + public long getAuthorshipId() { + return authorshipId; + } + + protected void setAuthorshipId(final long authorshipId) { + this.authorshipId = authorshipId; + } + + public String getUuid() { + return uuid; + } + + protected void setUuid(final String uuid) { + this.uuid = uuid; + } + + public Publication getPublication() { + return publication; + } + + protected void setPublication(final Publication publication) { + this.publication = publication; + } + + public Person getAuthor() { + return author; + } + + protected void setAuthor(final Person author) { + this.author = author; + } + + public boolean isEditor() { + return editor; + } + + public void setEditor(final boolean editor) { + this.editor = editor; + } + + public long getAuthorOrder() { + return authorOrder; + } + + public void setAuthorOrder(final long authorOrder) { + this.authorOrder = authorOrder; + } + + @Override + public int hashCode() { + int hash = 7; + hash = 59 * hash + (int) (authorshipId ^ (authorshipId >>> 32)); + hash = 59 * hash + Objects.hashCode(uuid); + hash = 59 * hash + (editor ? 1 : 0); + hash = 59 * hash + (int) (authorOrder ^ (authorOrder >>> 32)); + return hash; + } + + @Override + public boolean equals(final Object obj) { + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + if (!(obj instanceof Authorship)) { + return false; + } + final Authorship other = (Authorship) obj; + if (!other.canEqual(this)) { + return false; + } + if (authorshipId != other.getAuthorshipId()) { + return false; + } + if (editor != other.isEditor()) { + return false; + } + return authorOrder == other.getAuthorOrder(); + } + + public boolean canEqual(final Object obj) { + return obj instanceof Authorship; + } + + @Override + public int compareTo(final Authorship other) { + return Long.compare(authorOrder, other.getAuthorOrder()); + } + + @Override + public final String toString() { + return toString(""); + } + + public String toString(final String data) { + + return String.format("%s{ " + + "authorshipId = %d, " + + "uuid = %s, " + + "author = %s" + + "editor = %b," + + "authorOrder = %d%s " + + "}", + super.toString(), + authorshipId, + uuid, + Objects.toString(author), + editor, + authorOrder, + data); + } + +} diff --git a/sci-publications/src/main/java/org/scientificcms/publications/CollectedVolumeRepository.java b/sci-publications/src/main/java/org/scientificcms/publications/CollectedVolumeRepository.java deleted file mode 100644 index 479f09c..0000000 --- a/sci-publications/src/main/java/org/scientificcms/publications/CollectedVolumeRepository.java +++ /dev/null @@ -1,22 +0,0 @@ -/* - * 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.scientificcms.publications; - -/** - * - * @author Jens Pelzetter - */ -public class CollectedVolumeRepository - extends AbstractPublicationWithPublisherRepository{ - - private static final long serialVersionUID = 1L; - - @Override - public Class getEntityClass() { - return CollectedVolume.class; - } - -} diff --git a/sci-publications/src/main/java/org/scientificcms/publications/ExpertiseRepository.java b/sci-publications/src/main/java/org/scientificcms/publications/ExpertiseRepository.java deleted file mode 100644 index 03f0cb2..0000000 --- a/sci-publications/src/main/java/org/scientificcms/publications/ExpertiseRepository.java +++ /dev/null @@ -1,21 +0,0 @@ -/* - * 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.scientificcms.publications; - -/** - * - * @author Jens Pelzetter - */ -public class ExpertiseRepository extends AbstractPublicationRepository { - - private static final long serialVersionUID = 1L; - - @Override - public Class getEntityClass() { - return Expertise.class; - } - -} diff --git a/sci-publications/src/main/java/org/scientificcms/publications/GreyLiteratureRepository.java b/sci-publications/src/main/java/org/scientificcms/publications/GreyLiteratureRepository.java deleted file mode 100644 index d30d8ff..0000000 --- a/sci-publications/src/main/java/org/scientificcms/publications/GreyLiteratureRepository.java +++ /dev/null @@ -1,22 +0,0 @@ -/* - * 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.scientificcms.publications; - -/** - * - * @author Jens Pelzetter - */ -public class GreyLiteratureRepository - extends AbstractUnPublishedRepository{ - - private static final long serialVersionUID = 1L; - - @Override - public Class getEntityClass() { - return GreyLiterature.class; - } - -} diff --git a/sci-publications/src/main/java/org/scientificcms/publications/InProceedingsRepository.java b/sci-publications/src/main/java/org/scientificcms/publications/InProceedingsRepository.java deleted file mode 100644 index 31f86ab..0000000 --- a/sci-publications/src/main/java/org/scientificcms/publications/InProceedingsRepository.java +++ /dev/null @@ -1,21 +0,0 @@ -/* - * 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.scientificcms.publications; - -/** - * - * @author Jens Pelzetter - */ -public class InProceedingsRepository extends AbstractPublicationRepository { - - private static final long serialVersionUID = 1L; - - @Override - public Class getEntityClass() { - return InProceedings.class; - } - -} diff --git a/sci-publications/src/main/java/org/scientificcms/publications/InternetArticleRepository.java b/sci-publications/src/main/java/org/scientificcms/publications/InternetArticleRepository.java deleted file mode 100644 index 6adf3aa..0000000 --- a/sci-publications/src/main/java/org/scientificcms/publications/InternetArticleRepository.java +++ /dev/null @@ -1,21 +0,0 @@ -/* - * 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.scientificcms.publications; - -/** - * - * @author Jens Pelzetter - */ -public class InternetArticleRepository extends AbstractPublicationRepository{ - - private static final long serialVersionUID = 1L; - - @Override - public Class getEntityClass() { - return InternetArticle.class; - } - -} diff --git a/sci-publications/src/main/java/org/scientificcms/publications/MonographRepository.java b/sci-publications/src/main/java/org/scientificcms/publications/MonographRepository.java deleted file mode 100644 index 9fbce21..0000000 --- a/sci-publications/src/main/java/org/scientificcms/publications/MonographRepository.java +++ /dev/null @@ -1,22 +0,0 @@ -/* - * 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.scientificcms.publications; - -/** - * - * @author Jens Pelzetter - */ -public class MonographRepository - extends AbstractPublicationWithPublisherRepository { - - private static final long serialVersionUID = 1L; - - @Override - public Class getEntityClass() { - return Monograph.class; - } - -} diff --git a/sci-publications/src/main/java/org/scientificcms/publications/ProceedingsRepository.java b/sci-publications/src/main/java/org/scientificcms/publications/ProceedingsRepository.java deleted file mode 100644 index 0794e60..0000000 --- a/sci-publications/src/main/java/org/scientificcms/publications/ProceedingsRepository.java +++ /dev/null @@ -1,22 +0,0 @@ -/* - * 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.scientificcms.publications; - -/** - * - * @author Jens Pelzetter - */ -public class ProceedingsRepository - extends AbstractPublicationWithPublisherRepository{ - - private static final long serialVersionUID = 1L; - - @Override - public Class getEntityClass() { - return Proceedings.class; - } - -} diff --git a/sci-publications/src/main/java/org/scientificcms/publications/Publication.java b/sci-publications/src/main/java/org/scientificcms/publications/Publication.java index ccbade6..8f9b97c 100644 --- a/sci-publications/src/main/java/org/scientificcms/publications/Publication.java +++ b/sci-publications/src/main/java/org/scientificcms/publications/Publication.java @@ -9,13 +9,18 @@ import org.hibernate.envers.Audited; import org.libreccm.l10n.LocalizedString; import java.io.Serializable; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; import java.util.Locale; import java.util.Objects; import javax.persistence.AssociationOverride; +import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Embedded; import javax.persistence.Entity; +import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; @@ -23,6 +28,8 @@ import javax.persistence.Inheritance; import javax.persistence.InheritanceType; import javax.persistence.JoinColumn; import javax.persistence.JoinTable; +import javax.persistence.OneToMany; +import javax.persistence.OrderBy; import javax.persistence.Table; import static org.scientificcms.publications.SciPublicationsConstants.*; @@ -51,6 +58,13 @@ public class Publication implements Serializable { @Column(name = "YEAR_OF_PUBLICATION") private Integer yearOfPublication; + @OneToMany(cascade = CascadeType.ALL, + fetch = FetchType.LAZY, + mappedBy = "author", + orphanRemoval = true) + @OrderBy("authorOrder") + private List authorships; + @Embedded @AssociationOverride( name = "values", @@ -103,8 +117,9 @@ public class Publication implements Serializable { @Column(name = "LANGUAGE_OF_PUBLICATION") private Locale languageOfPublication; - + public Publication() { + authorships = new ArrayList<>(); title = new LocalizedString(); shortDescription = new LocalizedString(); publicationAbstract = new LocalizedString(); @@ -135,6 +150,30 @@ public class Publication implements Serializable { this.yearOfPublication = yearOfPublication; } + public List getAuthorships() { + if (authorships == null) { + return null; + } else { + return Collections.unmodifiableList(authorships); + } + } + + protected void addAuthorship(final Authorship authorship) { + authorships.add(authorship); + } + + protected void removeAuthorship(final Authorship authorship) { + authorships.remove(authorship); + } + + protected void setAuthorships(final List authorships) { + if (authorships == null) { + this.authorships = null; + } else { + this.authorships = new ArrayList<>(authorships); + } + } + public LocalizedString getTitle() { return title; } @@ -197,6 +236,7 @@ public class Publication implements Serializable { hash = 97 * hash + (int) (publicationId ^ (publicationId >>> 32)); hash = 97 * hash + Objects.hashCode(uuid); hash = 97 * hash + Objects.hashCode(yearOfPublication); + hash = 97 * hash + Objects.hashCode(authorships); hash = 97 * hash + Objects.hashCode(title); hash = 97 * hash + Objects.hashCode(shortDescription); hash = 97 * hash + Objects.hashCode(publicationAbstract); @@ -232,6 +272,9 @@ public class Publication implements Serializable { if (!Objects.equals(yearOfPublication, other.getYearOfPublication())) { return false; } + if (!Objects.equals(authorships, other.getAuthorships())) { + return false; + } if (!Objects.equals(title, other.getTitle())) { return false; } @@ -266,6 +309,7 @@ public class Publication implements Serializable { + "publicationId = %d, " + "uuid = \"%s\"" + "yearOfPublication = %d, " + + "authorships = %s, " + "title = %s, " + "shortDescription = %s, " + "publicationAbstract = %s, " @@ -278,6 +322,7 @@ public class Publication implements Serializable { publicationId, uuid, yearOfPublication, + authorships, Objects.toString(title), Objects.toString(shortDescription), Objects.toString(publicationAbstract), diff --git a/sci-publications/src/main/java/org/scientificcms/publications/PublicationManager.java b/sci-publications/src/main/java/org/scientificcms/publications/PublicationManager.java new file mode 100644 index 0000000..d0244d4 --- /dev/null +++ b/sci-publications/src/main/java/org/scientificcms/publications/PublicationManager.java @@ -0,0 +1,141 @@ +/* + * 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.scientificcms.publications; + +import org.libreccm.security.AuthorizationRequired; +import org.libreccm.security.RequiresPrivilege; +import org.librecms.assets.Person; +import org.librecms.contentsection.privileges.ItemPrivileges; + +import java.util.Objects; +import java.util.Optional; + +import javax.enterprise.context.RequestScoped; +import javax.inject.Inject; +import javax.persistence.EntityManager; +import javax.transaction.Transactional; + +/** + * + * @author Jens Pelzetter + */ +@RequestScoped +public class PublicationManager { + + @Inject + private PublicationRepository publicationRepository; + + @Inject + private EntityManager entityManager; + + public void addAuthor(final Person person, + final Publication toPublication) { + + Objects.requireNonNull(person); + Objects.requireNonNull(toPublication); + + addAuthor(person, + toPublication, + false, + toPublication.getAuthorships().size()); + } + + public void addAuthor(final Person person, + final Publication toPublication, + final boolean asEditor) { + Objects.requireNonNull(person); + Objects.requireNonNull(toPublication); + + addAuthor(person, + toPublication, + asEditor, + toPublication.getAuthorships().size()); + } + + /** + * Adds an person as author to a publication. + * + * @param person + * @param toPublication + * @param asEditor + * @param atPosition + */ + @AuthorizationRequired + @RequiresPrivilege(ItemPrivileges.EDIT) + @Transactional(Transactional.TxType.REQUIRED) + public void addAuthor(final Person person, + final Publication toPublication, + final boolean asEditor, + final long atPosition) { + + Objects.requireNonNull(person); + Objects.requireNonNull(toPublication); + if (atPosition < 0) { + throw new IllegalArgumentException("position can't less than 0"); + } + + // First check if person is already an author. + final boolean alreadyAdded = toPublication + .getAuthorships() + .stream() + .map(Authorship::getAuthor) + .anyMatch(author -> author.equals(person)); + if (alreadyAdded) { + throw new IllegalArgumentException( + String.format( + "Person %s is already an author of " + + "publication %s.", + Objects.toString(person), + Objects.toString(toPublication) + ) + ); + } + + // Create authorship relation + final long numberOfAuthors = toPublication.getAuthorships().size(); + final Authorship authorship = new Authorship(); + authorship.setAuthor(person); + authorship.setPublication(toPublication); + authorship.setEditor(asEditor); + if (atPosition >= numberOfAuthors) { + authorship.setAuthorOrder(numberOfAuthors); + } else { + authorship.setAuthorOrder(atPosition); + toPublication + .getAuthorships() + .stream() + .filter(obj -> obj.getAuthorOrder() >= atPosition) + .forEach(obj -> obj.setAuthorOrder(obj.getAuthorOrder() + 1)); + + } + toPublication.addAuthorship(authorship); + publicationRepository.save(toPublication); + } + + public void removeAuthor(final Person author, + final Publication fromPublication) { + + final Optional result = fromPublication + .getAuthorships() + .stream() + .filter(authorship -> authorship.getAuthor().equals(author)) + .findAny(); + + if (!result.isPresent()) { + return ; + } + + final Authorship remove = result.get(); + fromPublication.removeAuthorship(remove); + + for(int i = 0; i < fromPublication.getAuthorships().size(); i++) { + fromPublication.getAuthorships().get(i).setAuthorOrder(i); + } + + entityManager.remove(remove); + publicationRepository.save(fromPublication); + } +} diff --git a/sci-publications/src/main/java/org/scientificcms/publications/AbstractPublicationRepository.java b/sci-publications/src/main/java/org/scientificcms/publications/PublicationRepository.java similarity index 63% rename from sci-publications/src/main/java/org/scientificcms/publications/AbstractPublicationRepository.java rename to sci-publications/src/main/java/org/scientificcms/publications/PublicationRepository.java index eb02997..714b601 100644 --- a/sci-publications/src/main/java/org/scientificcms/publications/AbstractPublicationRepository.java +++ b/sci-publications/src/main/java/org/scientificcms/publications/PublicationRepository.java @@ -7,13 +7,15 @@ package org.scientificcms.publications; import org.libreccm.core.AbstractEntityRepository; +import javax.enterprise.context.RequestScoped; + /** * * @author Jens Pelzetter - * @param */ -public abstract class AbstractPublicationRepository - extends AbstractEntityRepository { +@RequestScoped +public class PublicationRepository + extends AbstractEntityRepository { private static final long serialVersionUID = 1L; @@ -23,13 +25,18 @@ public abstract class AbstractPublicationRepository } @Override - public Long getIdOfEntity(final T entity) { + public Long getIdOfEntity(final Publication entity) { return entity.getPublicationId(); } @Override - public boolean isNew(final T entity) { + public boolean isNew(final Publication entity) { return entity.getPublicationId() == 0; } + @Override + public Class getEntityClass() { + return Publication.class; + } + } diff --git a/sci-publications/src/main/java/org/scientificcms/publications/TalkRepository.java b/sci-publications/src/main/java/org/scientificcms/publications/TalkRepository.java deleted file mode 100644 index 964b57c..0000000 --- a/sci-publications/src/main/java/org/scientificcms/publications/TalkRepository.java +++ /dev/null @@ -1,21 +0,0 @@ -/* - * 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.scientificcms.publications; - -/** - * - * @author Jens Pelzetter - */ -public class TalkRepository extends AbstractPublicationRepository { - - private static final long serialVersionUID = 1L; - - @Override - public Class getEntityClass() { - return Talk.class; - } - -} diff --git a/sci-publications/src/main/java/org/scientificcms/publications/WorkingPaperRepository.java b/sci-publications/src/main/java/org/scientificcms/publications/WorkingPaperRepository.java deleted file mode 100644 index 2d36632..0000000 --- a/sci-publications/src/main/java/org/scientificcms/publications/WorkingPaperRepository.java +++ /dev/null @@ -1,21 +0,0 @@ -/* - * 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.scientificcms.publications; - -/** - * - * @author Jens Pelzetter - */ -public class WorkingPaperRepository extends AbstractUnPublishedRepository { - - private static final long serialVersionUID = 1L; - - @Override - public Class getEntityClass() { - return WorkingPaper.class; - } - -} diff --git a/sci-publications/src/test/java/org/scientificcms/publications/EqualsAndHashCodeTest.java b/sci-publications/src/test/java/org/scientificcms/publications/EqualsAndHashCodeTest.java index 389d649..8de3ade 100644 --- a/sci-publications/src/test/java/org/scientificcms/publications/EqualsAndHashCodeTest.java +++ b/sci-publications/src/test/java/org/scientificcms/publications/EqualsAndHashCodeTest.java @@ -32,6 +32,7 @@ public class EqualsAndHashCodeTest extends EqualsVerifier { return Arrays.asList(new Class[]{ ArticleInCollectedVolume.class, ArticleInJournal.class, + Authorship.class, CollectedVolume.class, Expertise.class, GreyLiterature.class,