Updated ImExporters for assets in sci-types-publications to implement

new interface.
master
Jens Pelzetter 2023-01-22 08:59:23 +01:00
parent 764689066a
commit 9b4f077088
6 changed files with 50 additions and 104 deletions

View File

@ -5,7 +5,6 @@
*/
package org.scientificcms.publications.assets;
import com.fasterxml.jackson.annotation.JsonIdentityReference;
import org.hibernate.envers.Audited;
import org.librecms.assets.AssetType;
@ -48,11 +47,14 @@ public class JournalAsset extends Asset {
private static final long serialVersionUID = 1L;
@OneToOne(cascade = {CascadeType.DETACH,
CascadeType.MERGE,
CascadeType.PERSIST,
CascadeType.REFRESH
})
@OneToOne(
cascade = {
CascadeType.DETACH,
CascadeType.MERGE,
CascadeType.PERSIST,
CascadeType.REFRESH
}
)
@JoinColumn(name = "JOURNAL_ID")
@JsonIdentityReference(alwaysAsId = true)
private Journal journal;

View File

@ -1,17 +1,12 @@
package org.scientificcms.publications.assets;
import org.libreccm.imexport.AbstractEntityImExporter;
import org.libreccm.imexport.Processes;
import org.librecms.contentsection.AssetRepository;
import org.librecms.assets.AbstractAssetImExporter;
import org.scientificcms.publications.Journal;
import java.util.Objects;
import java.util.Set;
import javax.annotation.PostConstruct;
import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;
import javax.transaction.Transactional;
/**
* Importer/Exporter for {@link JournalAsset}s.
@ -21,14 +16,10 @@ import javax.transaction.Transactional;
@RequestScoped
@Processes(JournalAsset.class)
public class JournalAssetImExporter
extends AbstractEntityImExporter<JournalAsset> {
extends AbstractAssetImExporter<JournalAsset> {
@Inject
private AssetRepository assetRepo;
@PostConstruct
@Override
protected void init() {
protected void initAssetImExporter() {
addRequiredEntities(Set.of(Journal.class));
}
@ -38,23 +29,11 @@ public class JournalAssetImExporter
}
@Override
@Transactional(Transactional.TxType.REQUIRED)
protected void saveImportedEntity(final JournalAsset entity) {
assetRepo.save(entity);
}
@Override
protected JournalAsset reloadEntity(final JournalAsset entity) {
return assetRepo
.findById(entity.getObjectId(), getEntityClass())
.orElseThrow(
() -> new IllegalArgumentException(
String.format(
"The JournalAsset %s was not found in the database.",
Objects.toString(entity)
)
)
);
protected void updateExistingAsset(
final JournalAsset exisitingAsset,
final JournalAsset importedAsset
) {
// Nothing to update in JournalAsset
}
}

View File

@ -43,11 +43,14 @@ public class PublisherAsset extends Asset {
private static final long serialVersionUID = 1L;
@OneToOne(cascade = {CascadeType.DETACH,
CascadeType.MERGE,
CascadeType.PERSIST,
CascadeType.REFRESH
})
@OneToOne(
cascade = {
CascadeType.DETACH,
CascadeType.MERGE,
CascadeType.PERSIST,
CascadeType.REFRESH
}
)
@JoinColumn(name = "PUBLISHER_ID")
@JsonIdentityReference(alwaysAsId = true)
private Publisher publisher;

View File

@ -1,17 +1,12 @@
package org.scientificcms.publications.assets;
import org.libreccm.imexport.AbstractEntityImExporter;
import org.libreccm.imexport.Processes;
import org.librecms.contentsection.AssetRepository;
import org.librecms.assets.AbstractAssetImExporter;
import org.scientificcms.publications.Publisher;
import java.util.Objects;
import java.util.Set;
import javax.annotation.PostConstruct;
import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;
import javax.transaction.Transactional;
/**
*
@ -20,14 +15,10 @@ import javax.transaction.Transactional;
@RequestScoped
@Processes(PublisherAsset.class)
public class PublisherAssetImExporter
extends AbstractEntityImExporter<PublisherAsset> {
extends AbstractAssetImExporter<PublisherAsset> {
@Inject
private AssetRepository assetRepo;
@PostConstruct
@Override
protected void init() {
protected void initAssetImExporter() {
addRequiredEntities(Set.of(Publisher.class));
}
@ -37,23 +28,11 @@ public class PublisherAssetImExporter
}
@Override
@Transactional(Transactional.TxType.REQUIRED)
protected void saveImportedEntity(final PublisherAsset entity) {
assetRepo.save(entity);
}
@Override
protected PublisherAsset reloadEntity(final PublisherAsset entity) {
return assetRepo
.findById(entity.getObjectId(), getEntityClass())
.orElseThrow(
() -> new IllegalArgumentException(
String.format(
"The JournalAsset %s was not found in the database.",
Objects.toString(entity)
)
)
);
protected void updateExistingAsset(
final PublisherAsset existingAsset,
final PublisherAsset importedAsset
) {
// Nothing to update in PublishAsset
}
}

View File

@ -46,11 +46,14 @@ public class SeriesAsset extends Asset {
private static final long serialVersionUID = 1L;
@OneToOne(cascade = {CascadeType.DETACH,
CascadeType.MERGE,
CascadeType.PERSIST,
CascadeType.REFRESH
})
@OneToOne(
cascade = {
CascadeType.DETACH,
CascadeType.MERGE,
CascadeType.PERSIST,
CascadeType.REFRESH
}
)
@JoinColumn(name = "SERIES_ID")
@JsonIdentityReference(alwaysAsId = true)
private Series series;

View File

@ -1,17 +1,12 @@
package org.scientificcms.publications.assets;
import org.libreccm.imexport.AbstractEntityImExporter;
import org.libreccm.imexport.Processes;
import org.librecms.contentsection.AssetRepository;
import org.librecms.assets.AbstractAssetImExporter;
import org.scientificcms.publications.Series;
import java.util.Objects;
import java.util.Set;
import javax.annotation.PostConstruct;
import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;
import javax.transaction.Transactional;
/**
*
@ -20,14 +15,10 @@ import javax.transaction.Transactional;
@RequestScoped
@Processes(PublisherAsset.class)
public class SeriesAssetImExporter
extends AbstractEntityImExporter<SeriesAsset> {
extends AbstractAssetImExporter<SeriesAsset> {
@Inject
private AssetRepository assetRepo;
@PostConstruct
@Override
protected void init() {
protected void initAssetImExporter() {
addRequiredEntities(Set.of(Series.class));
}
@ -37,24 +28,13 @@ extends AbstractEntityImExporter<SeriesAsset> {
}
@Override
@Transactional(Transactional.TxType.REQUIRED)
protected void saveImportedEntity(final SeriesAsset entity) {
assetRepo.save(entity);
protected void updateExistingAsset(
final SeriesAsset existingAsset,
final SeriesAsset importedAsset
) {
// Nothing to update in SeriesAsset
}
@Override
protected SeriesAsset reloadEntity(final SeriesAsset entity) {
return assetRepo
.findById(entity.getObjectId(), getEntityClass())
.orElseThrow(
() -> new IllegalArgumentException(
String.format(
"The JournalAsset %s was not found in the database.",
Objects.toString(entity)
)
)
);
}
}