From cf5d3fb5e3e8fdb63df7c9097da9e045def0c838 Mon Sep 17 00:00:00 2001 From: Jens Pelzetter Date: Mon, 9 Sep 2019 18:36:21 +0200 Subject: [PATCH] Reworked inhertiance hierarchy for PublicationItems, CreateForms for PublicationItems --- .../ui/AbstractPublicationCreateForm.java | 61 +++++++++++++++++ .../ArticleInCollectedVolumeCreateForm.java | 35 ++++++++++ .../ui/ArticleInJournalCreateForm.java | 35 ++++++++++ .../ui/CollectedVolumeCreateForm.java | 37 ++++++++++ .../contenttypes/ui/ExpertiseCreateForm.java | 33 +++++++++ .../ui/GreyLiteratureCreateForm.java | 35 ++++++++++ .../ui/InProceedingsCreateForm.java | 33 +++++++++ .../ui/InternetArticleCreateForm.java | 35 ++++++++++ .../contenttypes/ui/MonographCreateForm.java | 34 ++++++++++ .../ui/ProceedingsCreateForm.java | 33 +++++++++ .../cms/contenttypes/ui/TalkCreateForm.java | 33 +++++++++ .../ui/WorkingPaperCreateForm.java | 33 +++++++++ .../publications/PublicationManager.java | 2 +- .../assets/CollectedVolumeAsset.java | 2 +- .../publications/assets/JournalAsset.java | 2 +- .../publications/assets/PublisherAsset.java | 2 +- .../ArticleInCollectedVolumeItem.java | 61 ++++++++--------- .../contenttypes/ArticleInJournalItem.java | 67 +++++++++---------- .../contenttypes/CollectedVolumeItem.java | 59 ++++++++-------- .../contenttypes/ExpertiseItem.java | 60 ++++++++--------- .../contenttypes/GreyLiteratureItem.java | 63 +++++++++-------- .../contenttypes/InProceedingsItem.java | 62 ++++++++--------- .../contenttypes/InternetArticleItem.java | 61 +++++++++-------- .../contenttypes/MonographItem.java | 66 +++++++++--------- .../contenttypes/ProceedingsItem.java | 66 +++++++++--------- ...licationItem.java => PublicationItem.java} | 41 +++++++++--- .../PublicationItemRepository.java | 40 +++++++++++ ...java => PublicationWithPublisherItem.java} | 12 ++-- .../publications/contenttypes/TalkItem.java | 61 +++++++++-------- .../contenttypes/WorkingPaperItem.java | 66 +++++++++--------- 30 files changed, 852 insertions(+), 378 deletions(-) create mode 100644 sci-publications/src/main/java/com/arsdigita/cms/contenttypes/ui/AbstractPublicationCreateForm.java create mode 100644 sci-publications/src/main/java/com/arsdigita/cms/contenttypes/ui/ArticleInCollectedVolumeCreateForm.java create mode 100644 sci-publications/src/main/java/com/arsdigita/cms/contenttypes/ui/ArticleInJournalCreateForm.java create mode 100644 sci-publications/src/main/java/com/arsdigita/cms/contenttypes/ui/CollectedVolumeCreateForm.java create mode 100644 sci-publications/src/main/java/com/arsdigita/cms/contenttypes/ui/ExpertiseCreateForm.java create mode 100644 sci-publications/src/main/java/com/arsdigita/cms/contenttypes/ui/GreyLiteratureCreateForm.java create mode 100644 sci-publications/src/main/java/com/arsdigita/cms/contenttypes/ui/InProceedingsCreateForm.java create mode 100644 sci-publications/src/main/java/com/arsdigita/cms/contenttypes/ui/InternetArticleCreateForm.java create mode 100644 sci-publications/src/main/java/com/arsdigita/cms/contenttypes/ui/MonographCreateForm.java create mode 100644 sci-publications/src/main/java/com/arsdigita/cms/contenttypes/ui/ProceedingsCreateForm.java create mode 100644 sci-publications/src/main/java/com/arsdigita/cms/contenttypes/ui/TalkCreateForm.java create mode 100644 sci-publications/src/main/java/com/arsdigita/cms/contenttypes/ui/WorkingPaperCreateForm.java rename sci-publications/src/main/java/org/scientificcms/publications/contenttypes/{AbstractPublicationItem.java => PublicationItem.java} (53%) create mode 100644 sci-publications/src/main/java/org/scientificcms/publications/contenttypes/PublicationItemRepository.java rename sci-publications/src/main/java/org/scientificcms/publications/contenttypes/{AbstractPublicationWithPublisherItem.java => PublicationWithPublisherItem.java} (74%) diff --git a/sci-publications/src/main/java/com/arsdigita/cms/contenttypes/ui/AbstractPublicationCreateForm.java b/sci-publications/src/main/java/com/arsdigita/cms/contenttypes/ui/AbstractPublicationCreateForm.java new file mode 100644 index 0000000..add170c --- /dev/null +++ b/sci-publications/src/main/java/com/arsdigita/cms/contenttypes/ui/AbstractPublicationCreateForm.java @@ -0,0 +1,61 @@ +/* + * 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 com.arsdigita.cms.contenttypes.ui; + +import com.arsdigita.bebop.FormData; +import com.arsdigita.bebop.PageState; +import com.arsdigita.bebop.parameters.StringParameter; +import com.arsdigita.cms.ItemSelectionModel; +import com.arsdigita.cms.ui.authoring.CreationSelector; +import com.arsdigita.cms.ui.authoring.PageCreateForm; + +import org.librecms.contentsection.ContentItemInitializer; +import org.scientificcms.publications.Publication; +import org.scientificcms.publications.contenttypes.PublicationItem; + +import java.util.Locale; + +/** + * + * @author Jens Pelzetter + * @param

+ * @param + */ +public abstract class AbstractPublicationCreateForm

> + extends PageCreateForm { + + public AbstractPublicationCreateForm( + final ItemSelectionModel itemModel, + final CreationSelector creationSelector, + final StringParameter selectedLanguageParam + ) { + super(itemModel, creationSelector, selectedLanguageParam); + } + + @Override + @SuppressWarnings("unchecked") + protected ContentItemInitializer getItemInitializer( + final FormData data, final PageState state) { + + return item -> ((T) item).setPublication( + createPublication(data) + ); + } + + protected P createPublication(final FormData data) { + + final Locale locale = new Locale((String) data.get(LANGUAGE)); + final String title = (String) data.get(TITLE); + + final P publication = createPublication(); + publication.getTitle().addValue(locale, title); + + return publication; + } + + protected abstract P createPublication(); + +} diff --git a/sci-publications/src/main/java/com/arsdigita/cms/contenttypes/ui/ArticleInCollectedVolumeCreateForm.java b/sci-publications/src/main/java/com/arsdigita/cms/contenttypes/ui/ArticleInCollectedVolumeCreateForm.java new file mode 100644 index 0000000..766feea --- /dev/null +++ b/sci-publications/src/main/java/com/arsdigita/cms/contenttypes/ui/ArticleInCollectedVolumeCreateForm.java @@ -0,0 +1,35 @@ +/* + * 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 com.arsdigita.cms.contenttypes.ui; + +import com.arsdigita.bebop.parameters.StringParameter; +import com.arsdigita.cms.ItemSelectionModel; +import com.arsdigita.cms.ui.authoring.CreationSelector; + +import org.scientificcms.publications.ArticleInCollectedVolume; +import org.scientificcms.publications.contenttypes.ArticleInCollectedVolumeItem; + +/** + * + * @author Jens Pelzetter + */ +public class ArticleInCollectedVolumeCreateForm + extends AbstractPublicationCreateForm { + + public ArticleInCollectedVolumeCreateForm( + final ItemSelectionModel itemModel, + final CreationSelector creationSelector, + final StringParameter selectedLanguageParam + ) { + super(itemModel, creationSelector, selectedLanguageParam); + } + + @Override + protected ArticleInCollectedVolume createPublication() { + return new ArticleInCollectedVolume(); + } + +} diff --git a/sci-publications/src/main/java/com/arsdigita/cms/contenttypes/ui/ArticleInJournalCreateForm.java b/sci-publications/src/main/java/com/arsdigita/cms/contenttypes/ui/ArticleInJournalCreateForm.java new file mode 100644 index 0000000..0111a6d --- /dev/null +++ b/sci-publications/src/main/java/com/arsdigita/cms/contenttypes/ui/ArticleInJournalCreateForm.java @@ -0,0 +1,35 @@ +/* + * 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 com.arsdigita.cms.contenttypes.ui; + +import com.arsdigita.bebop.parameters.StringParameter; +import com.arsdigita.cms.ItemSelectionModel; +import com.arsdigita.cms.ui.authoring.CreationSelector; + +import org.scientificcms.publications.ArticleInJournal; +import org.scientificcms.publications.contenttypes.ArticleInJournalItem; + +/** + * + * @author Jens Pelzetter + */ +public class ArticleInJournalCreateForm + extends AbstractPublicationCreateForm { + + public ArticleInJournalCreateForm( + final ItemSelectionModel itemModel, + final CreationSelector creationSelector, + final StringParameter selectedLanguageParam + ) { + super(itemModel, creationSelector, selectedLanguageParam); + } + + @Override + protected ArticleInJournal createPublication() { + return new ArticleInJournal(); + } + +} diff --git a/sci-publications/src/main/java/com/arsdigita/cms/contenttypes/ui/CollectedVolumeCreateForm.java b/sci-publications/src/main/java/com/arsdigita/cms/contenttypes/ui/CollectedVolumeCreateForm.java new file mode 100644 index 0000000..1b0d10b --- /dev/null +++ b/sci-publications/src/main/java/com/arsdigita/cms/contenttypes/ui/CollectedVolumeCreateForm.java @@ -0,0 +1,37 @@ +/* + * 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 com.arsdigita.cms.contenttypes.ui; + +import com.arsdigita.bebop.parameters.StringParameter; +import com.arsdigita.cms.ItemSelectionModel; +import com.arsdigita.cms.ui.authoring.CreationSelector; + +import org.scientificcms.publications.CollectedVolume; +import org.scientificcms.publications.Publication; +import org.scientificcms.publications.contenttypes.CollectedVolumeItem; +import org.scientificcms.publications.contenttypes.PublicationItem; + +/** + * + * @author Jens Pelzetter + */ +public class CollectedVolumeCreateForm + extends AbstractPublicationCreateForm { + + public CollectedVolumeCreateForm( + final ItemSelectionModel itemModel, + final CreationSelector creationSelector, + final StringParameter selectedLanguageParam + ) { + super(itemModel, creationSelector, selectedLanguageParam); + } + + @Override + protected CollectedVolume createPublication() { + return new CollectedVolume(); + } + +} diff --git a/sci-publications/src/main/java/com/arsdigita/cms/contenttypes/ui/ExpertiseCreateForm.java b/sci-publications/src/main/java/com/arsdigita/cms/contenttypes/ui/ExpertiseCreateForm.java new file mode 100644 index 0000000..edd039a --- /dev/null +++ b/sci-publications/src/main/java/com/arsdigita/cms/contenttypes/ui/ExpertiseCreateForm.java @@ -0,0 +1,33 @@ +/* + * 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 com.arsdigita.cms.contenttypes.ui; + +import com.arsdigita.bebop.parameters.StringParameter; +import com.arsdigita.cms.ItemSelectionModel; +import com.arsdigita.cms.ui.authoring.CreationSelector; + +import org.scientificcms.publications.Expertise; +import org.scientificcms.publications.contenttypes.ExpertiseItem; + +/** + * + * @author Jens Pelzetter + */ +public class ExpertiseCreateForm + extends AbstractPublicationCreateForm{ + + public ExpertiseCreateForm(final ItemSelectionModel itemModel, + final CreationSelector creationSelector, + final StringParameter selectedLanguageParam) { + super(itemModel, creationSelector, selectedLanguageParam); + } + + @Override + protected Expertise createPublication() { + return new Expertise(); + } + +} diff --git a/sci-publications/src/main/java/com/arsdigita/cms/contenttypes/ui/GreyLiteratureCreateForm.java b/sci-publications/src/main/java/com/arsdigita/cms/contenttypes/ui/GreyLiteratureCreateForm.java new file mode 100644 index 0000000..bb1a75c --- /dev/null +++ b/sci-publications/src/main/java/com/arsdigita/cms/contenttypes/ui/GreyLiteratureCreateForm.java @@ -0,0 +1,35 @@ +/* + * 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 com.arsdigita.cms.contenttypes.ui; + +import com.arsdigita.bebop.parameters.StringParameter; +import com.arsdigita.cms.ItemSelectionModel; +import com.arsdigita.cms.ui.authoring.CreationSelector; + +import org.scientificcms.publications.GreyLiterature; +import org.scientificcms.publications.contenttypes.GreyLiteratureItem; + +/** + * + * @author Jens Pelzetter + */ +public class GreyLiteratureCreateForm + extends AbstractPublicationCreateForm { + + public GreyLiteratureCreateForm( + final ItemSelectionModel itemModel, + final CreationSelector creationSelector, + final StringParameter selectedLanguageParam + ) { + super(itemModel, creationSelector, selectedLanguageParam); + } + + @Override + protected GreyLiterature createPublication() { + return new GreyLiterature(); + } + +} diff --git a/sci-publications/src/main/java/com/arsdigita/cms/contenttypes/ui/InProceedingsCreateForm.java b/sci-publications/src/main/java/com/arsdigita/cms/contenttypes/ui/InProceedingsCreateForm.java new file mode 100644 index 0000000..f879e1a --- /dev/null +++ b/sci-publications/src/main/java/com/arsdigita/cms/contenttypes/ui/InProceedingsCreateForm.java @@ -0,0 +1,33 @@ +/* + * 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 com.arsdigita.cms.contenttypes.ui; + +import com.arsdigita.bebop.parameters.StringParameter; +import com.arsdigita.cms.ItemSelectionModel; +import com.arsdigita.cms.ui.authoring.CreationSelector; + +import org.scientificcms.publications.InProceedings; +import org.scientificcms.publications.contenttypes.InProceedingsItem; + +/** + * + * @author Jens Pelzetter + */ +public class InProceedingsCreateForm + extends AbstractPublicationCreateForm { + + public InProceedingsCreateForm(final ItemSelectionModel itemModel, + final CreationSelector creationSelector, + final StringParameter selectedLanguageParam) { + super(itemModel, creationSelector, selectedLanguageParam); + } + + @Override + protected InProceedings createPublication() { + return new InProceedings(); + } + +} diff --git a/sci-publications/src/main/java/com/arsdigita/cms/contenttypes/ui/InternetArticleCreateForm.java b/sci-publications/src/main/java/com/arsdigita/cms/contenttypes/ui/InternetArticleCreateForm.java new file mode 100644 index 0000000..47f29e1 --- /dev/null +++ b/sci-publications/src/main/java/com/arsdigita/cms/contenttypes/ui/InternetArticleCreateForm.java @@ -0,0 +1,35 @@ +/* + * 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 com.arsdigita.cms.contenttypes.ui; + +import com.arsdigita.bebop.parameters.StringParameter; +import com.arsdigita.cms.ItemSelectionModel; +import com.arsdigita.cms.ui.authoring.CreationSelector; + +import org.scientificcms.publications.InternetArticle; +import org.scientificcms.publications.contenttypes.InternetArticleItem; + +/** + * + * @author Jens Pelzetter + */ +public class InternetArticleCreateForm + extends AbstractPublicationCreateForm { + + public InternetArticleCreateForm( + final ItemSelectionModel itemModel, + final CreationSelector creationSelector, + final StringParameter selectedLanguageParam + ) { + super(itemModel, creationSelector, selectedLanguageParam); + } + + @Override + protected InternetArticle createPublication() { + return new InternetArticle(); + } + +} diff --git a/sci-publications/src/main/java/com/arsdigita/cms/contenttypes/ui/MonographCreateForm.java b/sci-publications/src/main/java/com/arsdigita/cms/contenttypes/ui/MonographCreateForm.java new file mode 100644 index 0000000..d630a12 --- /dev/null +++ b/sci-publications/src/main/java/com/arsdigita/cms/contenttypes/ui/MonographCreateForm.java @@ -0,0 +1,34 @@ +/* + * 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 com.arsdigita.cms.contenttypes.ui; + +import com.arsdigita.bebop.parameters.StringParameter; +import com.arsdigita.cms.ItemSelectionModel; +import com.arsdigita.cms.ui.authoring.CreationSelector; + +import org.scientificcms.publications.Monograph; +import org.scientificcms.publications.contenttypes.MonographItem; + + +/** + * + * @author Jens Pelzetter + */ +public class MonographCreateForm + extends AbstractPublicationCreateForm { + + public MonographCreateForm(final ItemSelectionModel itemModel, + final CreationSelector creationSelector, + final StringParameter selectedLanguageParam) { + super(itemModel, creationSelector, selectedLanguageParam); + } + + @Override + protected Monograph createPublication() { + return new Monograph(); + } + +} diff --git a/sci-publications/src/main/java/com/arsdigita/cms/contenttypes/ui/ProceedingsCreateForm.java b/sci-publications/src/main/java/com/arsdigita/cms/contenttypes/ui/ProceedingsCreateForm.java new file mode 100644 index 0000000..aa2fbce --- /dev/null +++ b/sci-publications/src/main/java/com/arsdigita/cms/contenttypes/ui/ProceedingsCreateForm.java @@ -0,0 +1,33 @@ +/* + * 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 com.arsdigita.cms.contenttypes.ui; + +import com.arsdigita.bebop.parameters.StringParameter; +import com.arsdigita.cms.ItemSelectionModel; +import com.arsdigita.cms.ui.authoring.CreationSelector; + +import org.scientificcms.publications.Proceedings; +import org.scientificcms.publications.contenttypes.ProceedingsItem; + +/** + * + * @author Jens Pelzetter + */ +public class ProceedingsCreateForm + extends AbstractPublicationCreateForm{ + + public ProceedingsCreateForm(final ItemSelectionModel itemModel, + final CreationSelector creationSelector, + final StringParameter selectedLanguageParam) { + super(itemModel, creationSelector, selectedLanguageParam); + } + + @Override + protected Proceedings createPublication() { + return new Proceedings(); + } + +} diff --git a/sci-publications/src/main/java/com/arsdigita/cms/contenttypes/ui/TalkCreateForm.java b/sci-publications/src/main/java/com/arsdigita/cms/contenttypes/ui/TalkCreateForm.java new file mode 100644 index 0000000..e0ac972 --- /dev/null +++ b/sci-publications/src/main/java/com/arsdigita/cms/contenttypes/ui/TalkCreateForm.java @@ -0,0 +1,33 @@ +/* + * 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 com.arsdigita.cms.contenttypes.ui; + +import com.arsdigita.bebop.parameters.StringParameter; +import com.arsdigita.cms.ItemSelectionModel; +import com.arsdigita.cms.ui.authoring.CreationSelector; + +import org.scientificcms.publications.Talk; +import org.scientificcms.publications.contenttypes.TalkItem; + +/** + * + * @author Jens Pelzetter + */ +public class TalkCreateForm + extends AbstractPublicationCreateForm { + + public TalkCreateForm(final ItemSelectionModel itemModel, + final CreationSelector creationSelector, + final StringParameter selectedLanguageParam) { + super(itemModel, creationSelector, selectedLanguageParam); + } + + @Override + protected Talk createPublication() { + return new Talk(); + } + +} diff --git a/sci-publications/src/main/java/com/arsdigita/cms/contenttypes/ui/WorkingPaperCreateForm.java b/sci-publications/src/main/java/com/arsdigita/cms/contenttypes/ui/WorkingPaperCreateForm.java new file mode 100644 index 0000000..6aedba1 --- /dev/null +++ b/sci-publications/src/main/java/com/arsdigita/cms/contenttypes/ui/WorkingPaperCreateForm.java @@ -0,0 +1,33 @@ +/* + * 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 com.arsdigita.cms.contenttypes.ui; + +import com.arsdigita.bebop.parameters.StringParameter; +import com.arsdigita.cms.ItemSelectionModel; +import com.arsdigita.cms.ui.authoring.CreationSelector; + +import org.scientificcms.publications.WorkingPaper; +import org.scientificcms.publications.contenttypes.WorkingPaperItem; + +/** + * + * @author Jens Pelzetter + */ +public class WorkingPaperCreateForm + extends AbstractPublicationCreateForm { + + public WorkingPaperCreateForm(final ItemSelectionModel itemModel, + final CreationSelector creationSelector, + final StringParameter selectedLanguageParam) { + super(itemModel, creationSelector, selectedLanguageParam); + } + + @Override + protected WorkingPaper createPublication() { + return new WorkingPaper(); + } + +} diff --git a/sci-publications/src/main/java/org/scientificcms/publications/PublicationManager.java b/sci-publications/src/main/java/org/scientificcms/publications/PublicationManager.java index 0245ace..bf6d121 100644 --- a/sci-publications/src/main/java/org/scientificcms/publications/PublicationManager.java +++ b/sci-publications/src/main/java/org/scientificcms/publications/PublicationManager.java @@ -169,7 +169,7 @@ public class PublicationManager { .filter(authorship -> authorship.getAuthor().equals(author)) .findAny(); - if (result.isEmpty()) { + if (!result.isPresent()) { throw new IllegalArgumentException( String.format( "Person %s is not an author of the publication %s.", diff --git a/sci-publications/src/main/java/org/scientificcms/publications/assets/CollectedVolumeAsset.java b/sci-publications/src/main/java/org/scientificcms/publications/assets/CollectedVolumeAsset.java index 4e375e9..67568fb 100644 --- a/sci-publications/src/main/java/org/scientificcms/publications/assets/CollectedVolumeAsset.java +++ b/sci-publications/src/main/java/org/scientificcms/publications/assets/CollectedVolumeAsset.java @@ -42,7 +42,7 @@ public class CollectedVolumeAsset extends Asset { return collectedVolume; } - protected void setCollectedVolume(final CollectedVolume collectedVolume) { + public void setCollectedVolume(final CollectedVolume collectedVolume) { this.collectedVolume = collectedVolume; } diff --git a/sci-publications/src/main/java/org/scientificcms/publications/assets/JournalAsset.java b/sci-publications/src/main/java/org/scientificcms/publications/assets/JournalAsset.java index 10f0b2a..807b3dc 100644 --- a/sci-publications/src/main/java/org/scientificcms/publications/assets/JournalAsset.java +++ b/sci-publications/src/main/java/org/scientificcms/publications/assets/JournalAsset.java @@ -43,7 +43,7 @@ public class JournalAsset extends Asset { return journal; } - protected void setJournal(final Journal journal) { + public void setJournal(final Journal journal) { this.journal = journal; } diff --git a/sci-publications/src/main/java/org/scientificcms/publications/assets/PublisherAsset.java b/sci-publications/src/main/java/org/scientificcms/publications/assets/PublisherAsset.java index e288865..cf2b413 100644 --- a/sci-publications/src/main/java/org/scientificcms/publications/assets/PublisherAsset.java +++ b/sci-publications/src/main/java/org/scientificcms/publications/assets/PublisherAsset.java @@ -44,7 +44,7 @@ public class PublisherAsset extends Asset { return publisher; } - protected void setPublisher(final Publisher publisher) { + public void setPublisher(final Publisher publisher) { this.publisher = publisher; } diff --git a/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/ArticleInCollectedVolumeItem.java b/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/ArticleInCollectedVolumeItem.java index 64c4328..36c31ad 100644 --- a/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/ArticleInCollectedVolumeItem.java +++ b/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/ArticleInCollectedVolumeItem.java @@ -25,33 +25,33 @@ import static org.scientificcms.publications.SciPublicationsConstants.*; @Entity @Table(name = "ARTICLE_IN_COLLECTED_VOLUME_ITEMS", schema = DB_SCHEMA) @Audited -public class ArticleInCollectedVolumeItem - extends AbstractPublicationItem { +public class ArticleInCollectedVolumeItem + extends PublicationItem { private static final long serialVersionUID = 1L; - @OneToOne(cascade = {CascadeType.DETACH, - CascadeType.MERGE, - CascadeType.PERSIST, - CascadeType.REFRESH - }) - @JoinColumn(name = "ARTICLE_ID") - private ArticleInCollectedVolume article; - - @Override - public ArticleInCollectedVolume getPublication() { - return article; - } - - @Override - protected void setPublication(final ArticleInCollectedVolume article) { - this.article = article; - } +// @OneToOne(cascade = {CascadeType.DETACH, +// CascadeType.MERGE, +// CascadeType.PERSIST, +// CascadeType.REFRESH +// }) +// @JoinColumn(name = "ARTICLE_ID") +// private ArticleInCollectedVolume article; +// +// @Override +// public ArticleInCollectedVolume getPublication() { +// return article; +// } +// +// @Override +// protected void setPublication(final ArticleInCollectedVolume article) { +// this.article = article; +// } @Override public int hashCode() { int hash = super.hashCode(); - hash = 67 * hash + Objects.hashCode(article); +// hash = 67 * hash + Objects.hashCode(article); return hash; } @@ -71,10 +71,11 @@ public class ArticleInCollectedVolumeItem } final ArticleInCollectedVolumeItem other = (ArticleInCollectedVolumeItem) obj; - if (!other.canEqual(this)) { - return false; - } - return Objects.equals(article, other.getPublication()); +// if (!other.canEqual(this)) { +// return false; +// } +// return Objects.equals(article, other.getPublication()); +return other.canEqual(this); } @Override @@ -82,11 +83,11 @@ public class ArticleInCollectedVolumeItem return obj instanceof ArticleInCollectedVolumeItem; } - @Override - public String toString(final String data) { - return super.toString(String.format(", article = %s%s", - Objects.toString(article), - data)); - } +// @Override +// public String toString(final String data) { +// return super.toString(String.format(", article = %s%s", +// Objects.toString(article), +// data)); +// } } diff --git a/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/ArticleInJournalItem.java b/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/ArticleInJournalItem.java index b278b73..a8df79a 100644 --- a/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/ArticleInJournalItem.java +++ b/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/ArticleInJournalItem.java @@ -8,12 +8,7 @@ package org.scientificcms.publications.contenttypes; import org.hibernate.envers.Audited; import org.scientificcms.publications.ArticleInJournal; -import java.util.Objects; - -import javax.persistence.CascadeType; import javax.persistence.Entity; -import javax.persistence.JoinColumn; -import javax.persistence.OneToOne; import javax.persistence.Table; import static org.scientificcms.publications.SciPublicationsConstants.*; @@ -25,33 +20,30 @@ import static org.scientificcms.publications.SciPublicationsConstants.*; @Entity @Table(name = "ARTICLE_IN_COLLECTED_VOLUME_ITEMS", schema = DB_SCHEMA) @Audited -public class ArticleInJournalItem - extends AbstractPublicationItem { +public class ArticleInJournalItem extends PublicationItem { private static final long serialVersionUID = 1L; - @OneToOne(cascade = {CascadeType.DETACH, - CascadeType.MERGE, - CascadeType.PERSIST, - CascadeType.REFRESH - }) - @JoinColumn(name = "ARTICLE_ID") - private ArticleInJournal article; - - @Override - public ArticleInJournal getPublication() { - return article; - } - - @Override - protected void setPublication(final ArticleInJournal article) { - this.article = article; - } - +// @OneToOne(cascade = {CascadeType.DETACH, +// CascadeType.MERGE, +// CascadeType.PERSIST, +// CascadeType.REFRESH +// }) +// @JoinColumn(name = "ARTICLE_ID") +// private ArticleInJournal article; +// @Override +// public ArticleInJournal getPublication() { +// return article; +// } +// +// @Override +// protected void setPublication(final ArticleInJournal article) { +// this.article = article; +// } @Override public int hashCode() { int hash = super.hashCode(); - hash = 67 * hash + Objects.hashCode(this.article); +// hash = 67 * hash + Objects.hashCode(this.article); return hash; } @@ -70,11 +62,12 @@ public class ArticleInJournalItem return false; } final ArticleInJournalItem other - = (ArticleInJournalItem) obj; - if (!other.canEqual(this)) { - return false; - } - return Objects.equals(this.article, other.getPublication()); + = (ArticleInJournalItem) obj; +// if (!other.canEqual(this)) { +// return false; +// } +// return Objects.equals(this.article, other.getPublication()); + return other.canEqual(this); } @Override @@ -82,11 +75,11 @@ public class ArticleInJournalItem return obj instanceof ArticleInJournalItem; } - @Override - public String toString(final String data) { - return super.toString(String.format(", article = %s%s", - Objects.toString(article), - data)); - } +// @Override +// public String toString(final String data) { +// return super.toString(String.format(", article = %s%s", +// Objects.toString(article), +// data)); +// } } diff --git a/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/CollectedVolumeItem.java b/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/CollectedVolumeItem.java index 0e289cf..c1d450d 100644 --- a/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/CollectedVolumeItem.java +++ b/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/CollectedVolumeItem.java @@ -27,32 +27,32 @@ import static org.scientificcms.publications.SciPublicationsConstants.*; @Table(name = "COLLECTED_VOLUME_ITEMS", schema = DB_SCHEMA) @Audited public class CollectedVolumeItem - extends AbstractPublicationWithPublisherItem { + extends PublicationWithPublisherItem { private static final long serialVersionUID = 1L; - @OneToOne(cascade = {CascadeType.DETACH, - CascadeType.MERGE, - CascadeType.PERSIST, - CascadeType.REFRESH - }) - @JoinColumn(name = "COLLECTED_VOLUME_ID") - private CollectedVolume collectedVolume; - - @Override - public CollectedVolume getPublication() { - return collectedVolume; - } - - @Override - protected void setPublication(final CollectedVolume collectedVolume) { - this.collectedVolume = collectedVolume; - } +// @OneToOne(cascade = {CascadeType.DETACH, +// CascadeType.MERGE, +// CascadeType.PERSIST, +// CascadeType.REFRESH +// }) +// @JoinColumn(name = "COLLECTED_VOLUME_ID") +// private CollectedVolume collectedVolume; +// +// @Override +// public CollectedVolume getPublication() { +// return collectedVolume; +// } +// +// @Override +// protected void setPublication(final CollectedVolume collectedVolume) { +// this.collectedVolume = collectedVolume; +// } @Override public int hashCode() { int hash = super.hashCode(); - hash = 59 * hash + Objects.hashCode(collectedVolume); +// hash = 59 * hash + Objects.hashCode(collectedVolume); return hash; } @@ -71,10 +71,11 @@ public class CollectedVolumeItem return false; } final CollectedVolumeItem other = (CollectedVolumeItem) obj; - if (!other.canEqual(this)) { - return false; - } - return Objects.equals(collectedVolume, other.getPublication()); +// if (!other.canEqual(this)) { +// return false; +// } +// return Objects.equals(collectedVolume, other.getPublication()); +return other.canEqual(this); } @Override @@ -82,11 +83,11 @@ public class CollectedVolumeItem return obj instanceof CollectedVolumeItem; } - @Override - public String toString(final String data) { - return super.toString(String.format(", collectedVolume = %s%s", - Objects.toString(collectedVolume), - data)); - } +// @Override +// public String toString(final String data) { +// return super.toString(String.format(", collectedVolume = %s%s", +// Objects.toString(collectedVolume), +// data)); +// } } diff --git a/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/ExpertiseItem.java b/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/ExpertiseItem.java index e2b8e32..7b24e05 100644 --- a/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/ExpertiseItem.java +++ b/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/ExpertiseItem.java @@ -25,33 +25,32 @@ import static org.scientificcms.publications.SciPublicationsConstants.*; @Entity @Table(name = "EXPERTISE_ITEMS", schema = DB_SCHEMA) @Audited -public class ExpertiseItem - extends AbstractPublicationItem { +public class ExpertiseItem extends PublicationItem { private static final long serialVersionUID = 1L; - @OneToOne(cascade = {CascadeType.DETACH, - CascadeType.MERGE, - CascadeType.PERSIST, - CascadeType.REFRESH - }) - @JoinColumn(name = "EXPERTISE_ID") - private Expertise expertise; - - @Override - public Expertise getPublication() { - return expertise; - } - - @Override - protected void setPublication(final Expertise expertise) { - this.expertise = expertise; - } +// @OneToOne(cascade = {CascadeType.DETACH, +// CascadeType.MERGE, +// CascadeType.PERSIST, +// CascadeType.REFRESH +// }) +// @JoinColumn(name = "EXPERTISE_ID") +// private Expertise expertise; +// +// @Override +// public Expertise getPublication() { +// return expertise; +// } +// +// @Override +// protected void setPublication(final Expertise expertise) { +// this.expertise = expertise; +// } @Override public int hashCode() { int hash = super.hashCode(); - hash = 67 * hash + Objects.hashCode(expertise); +// hash = 67 * hash + Objects.hashCode(expertise); return hash; } @@ -71,10 +70,11 @@ public class ExpertiseItem } final ExpertiseItem other = (ExpertiseItem) obj; - if (!other.canEqual(this)) { - return false; - } - return Objects.equals(this.expertise, other.getPublication()); +// if (!other.canEqual(this)) { +// return false; +// } +// return Objects.equals(this.expertise, other.getPublication()); +return other.canEqual(this); } @Override @@ -82,11 +82,11 @@ public class ExpertiseItem return obj instanceof ExpertiseItem; } - @Override - public String toString(final String data) { - return super.toString(String.format(", expertise = %s%s", - Objects.toString(expertise), - data)); - } +// @Override +// public String toString(final String data) { +// return super.toString(String.format(", expertise = %s%s", +// Objects.toString(expertise), +// data)); +// } } diff --git a/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/GreyLiteratureItem.java b/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/GreyLiteratureItem.java index b8cec4c..238ec7e 100644 --- a/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/GreyLiteratureItem.java +++ b/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/GreyLiteratureItem.java @@ -25,33 +25,31 @@ import static org.scientificcms.publications.SciPublicationsConstants.*; @Entity @Table(name = "GREY_LITERATURE_ITEMS", schema = DB_SCHEMA) @Audited -public class GreyLiteratureItem - extends AbstractPublicationItem { +public class GreyLiteratureItem extends PublicationItem { private static final long serialVersionUID = 1L; - @OneToOne(cascade = {CascadeType.DETACH, - CascadeType.MERGE, - CascadeType.PERSIST, - CascadeType.REFRESH - }) - @JoinColumn(name = "GREY_LITERATURE_ID") - private GreyLiterature greyLiterature; - - @Override - public GreyLiterature getPublication() { - return greyLiterature; - } - - @Override - protected void setPublication(final GreyLiterature greyLiterature) { - this.greyLiterature = greyLiterature; - } - +// @OneToOne(cascade = {CascadeType.DETACH, +// CascadeType.MERGE, +// CascadeType.PERSIST, +// CascadeType.REFRESH +// }) +// @JoinColumn(name = "GREY_LITERATURE_ID") +// private GreyLiterature greyLiterature; +// +// @Override +// public GreyLiterature getPublication() { +// return greyLiterature; +// } +// +// @Override +// protected void setPublication(final GreyLiterature greyLiterature) { +// this.greyLiterature = greyLiterature; +// } @Override public int hashCode() { int hash = super.hashCode(); - hash = 67 * hash + Objects.hashCode(greyLiterature); +// hash = 67 * hash + Objects.hashCode(greyLiterature); return hash; } @@ -70,11 +68,12 @@ public class GreyLiteratureItem return false; } final GreyLiteratureItem other - = (GreyLiteratureItem) obj; - if (!other.canEqual(this)) { - return false; - } - return Objects.equals(this.greyLiterature, other.getPublication()); + = (GreyLiteratureItem) obj; +// if (!other.canEqual(this)) { +// return false; +// } +// return Objects.equals(this.greyLiterature, other.getPublication()); + return other.canEqual(this); } @Override @@ -82,11 +81,11 @@ public class GreyLiteratureItem return obj instanceof GreyLiteratureItem; } - @Override - public String toString(final String data) { - return super.toString(String.format(", greyLiterature = %s%s", - Objects.toString(greyLiterature), - data)); - } +// @Override +// public String toString(final String data) { +// return super.toString(String.format(", greyLiterature = %s%s", +// Objects.toString(greyLiterature), +// data)); +// } } diff --git a/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/InProceedingsItem.java b/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/InProceedingsItem.java index b0b5815..1e722bb 100644 --- a/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/InProceedingsItem.java +++ b/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/InProceedingsItem.java @@ -25,33 +25,32 @@ import static org.scientificcms.publications.SciPublicationsConstants.*; @Entity @Table(name = "INPROCEEDINGS_ITEMS", schema = DB_SCHEMA) @Audited -public class InProceedingsItem - extends AbstractPublicationItem { +public class InProceedingsItem extends PublicationItem { private static final long serialVersionUID = 1L; - @OneToOne(cascade = {CascadeType.DETACH, - CascadeType.MERGE, - CascadeType.PERSIST, - CascadeType.REFRESH - }) - @JoinColumn(name = "INPROCEEDINGS_ID") - private InProceedings inProcedings; - - @Override - public InProceedings getPublication() { - return inProcedings; - } - - @Override - protected void setPublication(final InProceedings inProceedings) { - this.inProcedings = inProceedings; - } +// @OneToOne(cascade = {CascadeType.DETACH, +// CascadeType.MERGE, +// CascadeType.PERSIST, +// CascadeType.REFRESH +// }) +// @JoinColumn(name = "INPROCEEDINGS_ID") +// private InProceedings inProcedings; +// +// @Override +// public InProceedings getPublication() { +// return inProcedings; +// } +// +// @Override +// protected void setPublication(final InProceedings inProceedings) { +// this.inProcedings = inProceedings; +// } @Override public int hashCode() { int hash = super.hashCode(); - hash = 67 * hash + Objects.hashCode(inProcedings); +// hash = 67 * hash + Objects.hashCode(inProcedings); return hash; } @@ -70,11 +69,12 @@ public class InProceedingsItem return false; } final InProceedingsItem other - = (InProceedingsItem) obj; - if (!other.canEqual(this)) { - return false; - } - return Objects.equals(this.inProcedings, other.getPublication()); + = (InProceedingsItem) obj; +// if (!other.canEqual(this)) { +// return false; +// } +// return Objects.equals(this.inProcedings, other.getPublication()); +return other.canEqual(this); } @Override @@ -82,11 +82,11 @@ public class InProceedingsItem return obj instanceof InProceedingsItem; } - @Override - public String toString(final String data) { - return super.toString(String.format(", inProceedings = %s%s", - Objects.toString(inProcedings), - data)); - } +// @Override +// public String toString(final String data) { +// return super.toString(String.format(", inProceedings = %s%s", +// Objects.toString(inProcedings), +// data)); +// } } diff --git a/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/InternetArticleItem.java b/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/InternetArticleItem.java index becb01a..8a547a5 100644 --- a/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/InternetArticleItem.java +++ b/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/InternetArticleItem.java @@ -25,33 +25,31 @@ import static org.scientificcms.publications.SciPublicationsConstants.*; @Entity @Table(name = "INTERNET_ARTICLE_ITEMS", schema = DB_SCHEMA) @Audited -public class InternetArticleItem - extends AbstractPublicationItem { +public class InternetArticleItem extends PublicationItem { private static final long serialVersionUID = 1L; - @OneToOne(cascade = {CascadeType.DETACH, - CascadeType.MERGE, - CascadeType.PERSIST, - CascadeType.REFRESH - }) - @JoinColumn(name = "EXPERTISE_ID") - private InternetArticle expertise; - - @Override - public InternetArticle getPublication() { - return expertise; - } - - @Override - protected void setPublication(final InternetArticle internetArticle) { - this.expertise = internetArticle; - } - +// @OneToOne(cascade = {CascadeType.DETACH, +// CascadeType.MERGE, +// CascadeType.PERSIST, +// CascadeType.REFRESH +// }) +// @JoinColumn(name = "EXPERTISE_ID") +// private InternetArticle expertise; +// +// @Override +// public InternetArticle getPublication() { +// return expertise; +// } +// +// @Override +// protected void setPublication(final InternetArticle internetArticle) { +// this.expertise = internetArticle; +// } @Override public int hashCode() { int hash = super.hashCode(); - hash = 67 * hash + Objects.hashCode(expertise); +// hash = 67 * hash + Objects.hashCode(expertise); return hash; } @@ -71,10 +69,11 @@ public class InternetArticleItem } final InternetArticleItem other = (InternetArticleItem) obj; - if (!other.canEqual(this)) { - return false; - } - return Objects.equals(this.expertise, other.getPublication()); +// if (!other.canEqual(this)) { +// return false; +// } +// return Objects.equals(this.expertise, other.getPublication()); + return other.canEqual(this); } @Override @@ -82,11 +81,11 @@ public class InternetArticleItem return obj instanceof InternetArticleItem; } - @Override - public String toString(final String data) { - return super.toString(String.format(", internetArticle = %s%s", - Objects.toString(expertise), - data)); - } +// @Override +// public String toString(final String data) { +// return super.toString(String.format(", internetArticle = %s%s", +// Objects.toString(expertise), +// data)); +// } } diff --git a/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/MonographItem.java b/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/MonographItem.java index e650095..ee659e4 100644 --- a/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/MonographItem.java +++ b/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/MonographItem.java @@ -7,12 +7,7 @@ package org.scientificcms.publications.contenttypes; import org.scientificcms.publications.Monograph; -import java.util.Objects; - -import javax.persistence.CascadeType; import javax.persistence.Entity; -import javax.persistence.JoinColumn; -import javax.persistence.OneToOne; import javax.persistence.Table; import static org.scientificcms.publications.SciPublicationsConstants.*; @@ -23,33 +18,31 @@ import static org.scientificcms.publications.SciPublicationsConstants.*; */ @Entity @Table(name = "MONOGRAPH_ITEMS", schema = DB_SCHEMA) -public class MonographItem - extends AbstractPublicationWithPublisherItem { +public class MonographItem extends PublicationWithPublisherItem { private static final long serialVersionUID = 1L; - @OneToOne(cascade = {CascadeType.DETACH, - CascadeType.MERGE, - CascadeType.PERSIST, - CascadeType.REFRESH - }) - @JoinColumn(name = "MONOGRAPH_ID") - private Monograph monograph; - - @Override - public Monograph getPublication() { - return monograph; - } - - @Override - protected void setPublication(final Monograph monograph) { - this.monograph = monograph; - } - +// @OneToOne(cascade = {CascadeType.DETACH, +// CascadeType.MERGE, +// CascadeType.PERSIST, +// CascadeType.REFRESH +// }) +// @JoinColumn(name = "MONOGRAPH_ID") +// private Monograph monograph; +// +// @Override +// public Monograph getPublication() { +// return monograph; +// } +// +// @Override +// protected void setPublication(final Monograph monograph) { +// this.monograph = monograph; +// } @Override public int hashCode() { int hash = super.hashCode(); - hash = 29 * hash + Objects.hashCode(monograph); +// hash = 29 * hash + Objects.hashCode(monograph); return hash; } @@ -68,10 +61,11 @@ public class MonographItem return false; } final MonographItem other = (MonographItem) obj; - if (!other.canEqual(this)) { - return false; - } - return Objects.equals(monograph, other.getPublication()); +// if (!other.canEqual(this)) { +// return false; +// } +// return Objects.equals(monograph, other.getPublication()); + return other.canEqual(this); } @Override @@ -79,11 +73,11 @@ public class MonographItem return obj instanceof MonographItem; } - @Override - public String toString(final String data) { - return super.toString(String.format(", publication = %s%s", - Objects.toString(monograph), - data)); - } +// @Override +// public String toString(final String data) { +// return super.toString(String.format(", publication = %s%s", +// Objects.toString(monograph), +// data)); +// } } diff --git a/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/ProceedingsItem.java b/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/ProceedingsItem.java index 0be31bb..4ba3958 100644 --- a/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/ProceedingsItem.java +++ b/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/ProceedingsItem.java @@ -7,12 +7,7 @@ package org.scientificcms.publications.contenttypes; import org.scientificcms.publications.Proceedings; -import java.util.Objects; - -import javax.persistence.CascadeType; import javax.persistence.Entity; -import javax.persistence.JoinColumn; -import javax.persistence.OneToOne; import javax.persistence.Table; import static org.scientificcms.publications.SciPublicationsConstants.*; @@ -23,33 +18,31 @@ import static org.scientificcms.publications.SciPublicationsConstants.*; */ @Entity @Table(name = "PROCEEDINGS_ITEMS", schema = DB_SCHEMA) -public class ProceedingsItem - extends AbstractPublicationWithPublisherItem { +public class ProceedingsItem extends PublicationWithPublisherItem { private static final long serialVersionUID = 1L; - @OneToOne(cascade = {CascadeType.DETACH, - CascadeType.MERGE, - CascadeType.PERSIST, - CascadeType.REFRESH - }) - @JoinColumn(name = "PROCEEDINGS_ID") - private Proceedings article; - - @Override - public Proceedings getPublication() { - return article; - } - - @Override - protected void setPublication(final Proceedings article) { - this.article = article; - } - +// @OneToOne(cascade = {CascadeType.DETACH, +// CascadeType.MERGE, +// CascadeType.PERSIST, +// CascadeType.REFRESH +// }) +// @JoinColumn(name = "PROCEEDINGS_ID") +// private Proceedings article; +// +// @Override +// public Proceedings getPublication() { +// return article; +// } +// +// @Override +// protected void setPublication(final Proceedings article) { +// this.article = article; +// } @Override public int hashCode() { int hash = super.hashCode(); - hash = 67 * hash + Objects.hashCode(article); +// hash = 67 * hash + Objects.hashCode(article); return hash; } @@ -69,10 +62,11 @@ public class ProceedingsItem } final ProceedingsItem other = (ProceedingsItem) obj; - if (!other.canEqual(this)) { - return false; - } - return Objects.equals(this.article, other.getPublication()); +// if (!other.canEqual(this)) { +// return false; +// } +// return Objects.equals(this.article, other.getPublication()); + return other.canEqual(this); } @Override @@ -80,11 +74,11 @@ public class ProceedingsItem return obj instanceof ProceedingsItem; } - @Override - public String toString(final String data) { - return super.toString(String.format(", proceedings = %s%s", - Objects.toString(article), - data)); - } +// @Override +// public String toString(final String data) { +// return super.toString(String.format(", proceedings = %s%s", +// Objects.toString(article), +// data)); +// } } diff --git a/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/AbstractPublicationItem.java b/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/PublicationItem.java similarity index 53% rename from sci-publications/src/main/java/org/scientificcms/publications/contenttypes/AbstractPublicationItem.java rename to sci-publications/src/main/java/org/scientificcms/publications/contenttypes/PublicationItem.java index 78800e5..6d59eb6 100644 --- a/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/AbstractPublicationItem.java +++ b/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/PublicationItem.java @@ -9,27 +9,51 @@ import org.hibernate.envers.Audited; import org.librecms.contentsection.ContentItem; import org.scientificcms.publications.Publication; +import javax.persistence.CascadeType; import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.NamedQueries; +import javax.persistence.NamedQuery; +import javax.persistence.OneToOne; import javax.persistence.Table; import static org.scientificcms.publications.SciPublicationsConstants.*; /** - * + * Base Item for Publications. + * * @author Jens Pelzetter * @param */ @Entity @Table(name = "PUBLICATION_ITEMS", schema = DB_SCHEMA) @Audited -public abstract class AbstractPublicationItem - extends ContentItem { +@NamedQueries({ + @NamedQuery( + name = "PublicationItem.findForPublication", + query = "SELECT i FROM PublicationItem i WHERE i.publication = :publication" + ) +}) +public class PublicationItem extends ContentItem { private static final long serialVersionUID = 1L; - public abstract T getPublication(); + @OneToOne(cascade = {CascadeType.DETACH, + CascadeType.MERGE, + CascadeType.PERSIST, + CascadeType.REFRESH}, + fetch = FetchType.LAZY, + targetEntity = Publication.class + ) + private T publication; - protected abstract void setPublication(T publication); + public T getPublication() { + return publication; + } + + public void setPublication(final T publication) { + this.publication = publication; + } @Override public int hashCode() { @@ -49,18 +73,17 @@ public abstract class AbstractPublicationItem if (!super.equals(obj)) { return false; } - if (!(obj instanceof AbstractPublicationItem)) { + if (!(obj instanceof PublicationItem)) { return false; } - final AbstractPublicationItem other - = (AbstractPublicationItem) obj; + final PublicationItem other = (PublicationItem) obj; return other.canEqual(this); } @Override public boolean canEqual(final Object obj) { - return obj instanceof AbstractPublicationItem; + return obj instanceof PublicationItem; } } diff --git a/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/PublicationItemRepository.java b/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/PublicationItemRepository.java new file mode 100644 index 0000000..6d3b569 --- /dev/null +++ b/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/PublicationItemRepository.java @@ -0,0 +1,40 @@ +/* + * 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.contenttypes; + +import org.librecms.contentsection.ContentItemRepository; +import org.scientificcms.publications.Publication; + +import java.util.Optional; + +import javax.persistence.NoResultException; + +/** + * + * @author Jens Pelzetter + */ +public class PublicationItemRepository extends ContentItemRepository { + + private static final long serialVersionUID = 1L; + + @SuppressWarnings("unchecked") + public Optional> findForPublication( + final T publication, final Class publicationType + ) { + try { + return Optional.of( + (PublicationItem) getEntityManager() + .createNamedQuery("PublicationItem.findForPublication", + PublicationItem.class) + .setParameter("publication", publication) + .getSingleResult() + ); + } catch (NoResultException ex) { + return Optional.empty(); + } + } + +} diff --git a/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/AbstractPublicationWithPublisherItem.java b/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/PublicationWithPublisherItem.java similarity index 74% rename from sci-publications/src/main/java/org/scientificcms/publications/contenttypes/AbstractPublicationWithPublisherItem.java rename to sci-publications/src/main/java/org/scientificcms/publications/contenttypes/PublicationWithPublisherItem.java index e59e1d1..7e43e9f 100644 --- a/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/AbstractPublicationWithPublisherItem.java +++ b/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/PublicationWithPublisherItem.java @@ -21,8 +21,8 @@ import static org.scientificcms.publications.SciPublicationsConstants.*; @Entity @Table(name = "PUBLICATION_WITH_PUBLISHER_ITEMS", schema = DB_SCHEMA) @Audited -public abstract class AbstractPublicationWithPublisherItem - extends AbstractPublicationItem { +public class PublicationWithPublisherItem + extends PublicationItem { private static final long serialVersionUID = 1L; @@ -44,17 +44,17 @@ public abstract class AbstractPublicationWithPublisherItem other - = (AbstractPublicationWithPublisherItem) obj; + final PublicationWithPublisherItem other + = (PublicationWithPublisherItem) obj; return other.canEqual(this); } @Override public boolean canEqual(final Object obj) { - return obj instanceof AbstractPublicationWithPublisherItem; + return obj instanceof PublicationWithPublisherItem; } } diff --git a/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/TalkItem.java b/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/TalkItem.java index a8648af..e619d87 100644 --- a/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/TalkItem.java +++ b/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/TalkItem.java @@ -25,33 +25,31 @@ import static org.scientificcms.publications.SciPublicationsConstants.*; @Entity @Table(name = "TALK_ITEMS", schema = DB_SCHEMA) @Audited -public class TalkItem - extends AbstractPublicationItem { +public class TalkItem extends PublicationItem { private static final long serialVersionUID = 1L; - @OneToOne(cascade = {CascadeType.DETACH, - CascadeType.MERGE, - CascadeType.PERSIST, - CascadeType.REFRESH - }) - @JoinColumn(name = "TALK_ID") - private Talk talk; - - @Override - public Talk getPublication() { - return talk; - } - - @Override - protected void setPublication(final Talk talk) { - this.talk = talk; - } - +// @OneToOne(cascade = {CascadeType.DETACH, +// CascadeType.MERGE, +// CascadeType.PERSIST, +// CascadeType.REFRESH +// }) +// @JoinColumn(name = "TALK_ID") +// private Talk talk; +// +// @Override +// public Talk getPublication() { +// return talk; +// } +// +// @Override +// protected void setPublication(final Talk talk) { +// this.talk = talk; +// } @Override public int hashCode() { int hash = super.hashCode(); - hash = 67 * hash + Objects.hashCode(talk); +// hash = 67 * hash + Objects.hashCode(talk); return hash; } @@ -71,10 +69,11 @@ public class TalkItem } final TalkItem other = (TalkItem) obj; - if (!other.canEqual(this)) { - return false; - } - return Objects.equals(this.talk, other.getPublication()); +// if (!other.canEqual(this)) { +// return false; +// } +// return Objects.equals(this.talk, other.getPublication()); + return other.canEqual(this); } @Override @@ -82,11 +81,11 @@ public class TalkItem return obj instanceof TalkItem; } - @Override - public String toString(final String data) { - return super.toString(String.format(", talk = %s%s", - Objects.toString(talk), - data)); - } +// @Override +// public String toString(final String data) { +// return super.toString(String.format(", talk = %s%s", +// Objects.toString(talk), +// data)); +// } } diff --git a/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/WorkingPaperItem.java b/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/WorkingPaperItem.java index 6be3a53..fd7ec13 100644 --- a/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/WorkingPaperItem.java +++ b/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/WorkingPaperItem.java @@ -8,12 +8,7 @@ package org.scientificcms.publications.contenttypes; import org.hibernate.envers.Audited; import org.scientificcms.publications.WorkingPaper; -import java.util.Objects; - -import javax.persistence.CascadeType; import javax.persistence.Entity; -import javax.persistence.JoinColumn; -import javax.persistence.OneToOne; import javax.persistence.Table; import static org.scientificcms.publications.SciPublicationsConstants.*; @@ -25,33 +20,31 @@ import static org.scientificcms.publications.SciPublicationsConstants.*; @Entity @Table(name = "WORKING_PAPER_ITEMS", schema = DB_SCHEMA) @Audited -public class WorkingPaperItem - extends AbstractPublicationItem { +public class WorkingPaperItem extends PublicationItem { private static final long serialVersionUID = 1L; - @OneToOne(cascade = {CascadeType.DETACH, - CascadeType.MERGE, - CascadeType.PERSIST, - CascadeType.REFRESH - }) - @JoinColumn(name = "EXPERTISE_ID") - private WorkingPaper workingPaper; - - @Override - public WorkingPaper getPublication() { - return workingPaper; - } - - @Override - protected void setPublication(final WorkingPaper workingPaper) { - this.workingPaper = workingPaper; - } - +// @OneToOne(cascade = {CascadeType.DETACH, +// CascadeType.MERGE, +// CascadeType.PERSIST, +// CascadeType.REFRESH +// }) +// @JoinColumn(name = "EXPERTISE_ID") +// private WorkingPaper workingPaper; +// +// @Override +// public WorkingPaper getPublication() { +// return workingPaper; +// } +// +// @Override +// protected void setPublication(final WorkingPaper workingPaper) { +// this.workingPaper = workingPaper; +// } @Override public int hashCode() { int hash = super.hashCode(); - hash = 67 * hash + Objects.hashCode(workingPaper); +// hash = 67 * hash + Objects.hashCode(workingPaper); return hash; } @@ -71,10 +64,11 @@ public class WorkingPaperItem } final WorkingPaperItem other = (WorkingPaperItem) obj; - if (!other.canEqual(this)) { - return false; - } - return Objects.equals(this.workingPaper, other.getPublication()); +// if (!other.canEqual(this)) { +// return false; +// } +// return Objects.equals(this.workingPaper, other.getPublication()); + return other.canEqual(this); } @Override @@ -82,11 +76,11 @@ public class WorkingPaperItem return obj instanceof WorkingPaperItem; } - @Override - public String toString(final String data) { - return super.toString(String.format(", workingPaper = %s%s", - Objects.toString(workingPaper), - data)); - } +// @Override +// public String toString(final String data) { +// return super.toString(String.format(", workingPaper = %s%s", +// Objects.toString(workingPaper), +// data)); +// } }