Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP: MetadataBlock refactoring #9932

Open
wants to merge 9 commits into
base: develop
Choose a base branch
from
Original file line number Diff line number Diff line change
Expand Up @@ -246,6 +246,12 @@ public DatasetFieldType save(DatasetFieldType dsfType) {
return em.merge(dsfType);
}

/**
* Not sure why this method is here, better use the metadataBlockServiceBean
* @param mdb
* @return
*/
@Deprecated
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You should add the @deprecated tag to the javadoc and provide a reason in the @Deprecated annotation, according to Sonarcloud.

public MetadataBlock save(MetadataBlock mdb) {
return em.merge(mdb);
}
Expand Down
8 changes: 5 additions & 3 deletions src/main/java/edu/harvard/iq/dataverse/DataversePage.java
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,8 @@ public enum LinkMode {
@EJB
DataverseFacetServiceBean dataverseFacetService;
@EJB
MetadataBlockServiceBean metadataBlockServiceBean;
@EJB
UserNotificationServiceBean userNotificationService;
@EJB
FeaturedDataverseServiceBean featuredDataverseService;
Expand Down Expand Up @@ -980,15 +982,15 @@ private void refreshAllMetadataBlocks() {

List<MetadataBlock> availableBlocks = new ArrayList<>();
//Add System level blocks
availableBlocks.addAll(dataverseService.findSystemMetadataBlocks());
availableBlocks.addAll(metadataBlockServiceBean.findSystemMetadataBlocks());

Dataverse testDV = dataverse;
//Add blocks associated with DV
availableBlocks.addAll(dataverseService.findMetadataBlocksByDataverseId(dataverse.getId()));
availableBlocks.addAll(metadataBlockServiceBean.findMetadataBlocksByDataverseId(dataverse.getId()));

//Add blocks associated with dv going up inheritance tree
while (testDV.getOwner() != null) {
availableBlocks.addAll(dataverseService.findMetadataBlocksByDataverseId(testDV.getOwner().getId()));
availableBlocks.addAll(metadataBlockServiceBean.findMetadataBlocksByDataverseId(testDV.getOwner().getId()));
testDV = testDV.getOwner();
}

Expand Down
47 changes: 34 additions & 13 deletions src/main/java/edu/harvard/iq/dataverse/DataverseServiceBean.java
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would be good to complete the javadoc tags if you add them. For deprecated code, could you add @deprecated to the javadoc to explain why it is deprecated? Sonarcloud rule Java:S1123 explains why you should do this.

Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,9 @@ public class DataverseServiceBean implements java.io.Serializable {

@EJB
PermissionServiceBean permissionService;


@EJB
MetadataBlockServiceBean metadataBlockServiceBean;
@EJB
SystemConfig systemConfig;

Expand Down Expand Up @@ -275,29 +277,48 @@ public String determineDataversePath(Dataverse dataverse) {
return dataversePath.toString();
}

/**
* Use MetadataBlockServiceBean#findById()
* @return
*/
@Deprecated
public MetadataBlock findMDB(Long id) {
return em.find(MetadataBlock.class, id);
return metadataBlockServiceBean.findById(id);
}

/**
* Use MetadataBlockServiceBean#findByName()
* @return
*/
@Deprecated
public MetadataBlock findMDBByName(String name) {
return em.createQuery("select m from MetadataBlock m WHERE m.name=:name", MetadataBlock.class)
.setParameter("name", name)
.getSingleResult();
return metadataBlockServiceBean.findByName(name);
}

/**
* Use MetadataBlockServiceBean#listMetadataBlocks()
* @return
*/
@Deprecated
public List<MetadataBlock> findAllMetadataBlocks() {
return em.createQuery("select object(o) from MetadataBlock as o order by o.id", MetadataBlock.class).getResultList();
return metadataBlockServiceBean.listMetadataBlocks();
}

/**
* Use MetadataBlockServiceBean#findSystemMetadataBlocks()
* @return
*/
@Deprecated
public List<MetadataBlock> findSystemMetadataBlocks(){
String qr = "select object(o) from MetadataBlock as o where o.owner.id=null order by o.id";
return em.createQuery(qr, MetadataBlock.class).getResultList();
return metadataBlockServiceBean.findSystemMetadataBlocks();
}


/**
* Use MetadataBlockServiceBean#findMetadataBlocksByDataverseId()
* @return
*/
@Deprecated
public List<MetadataBlock> findMetadataBlocksByDataverseId(Long dataverse_id) {
String qr = "select object(o) from MetadataBlock as o where o.owner.id=:dataverse_id order by o.id";
return em.createQuery(qr, MetadataBlock.class)
.setParameter("dataverse_id", dataverse_id).getResultList();
return metadataBlockServiceBean.findMetadataBlocksByDataverseId(dataverse_id);
}

public DataverseFacet findFacet(Long id) {
Expand Down
7 changes: 5 additions & 2 deletions src/main/java/edu/harvard/iq/dataverse/MetadataBlock.java
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,13 @@
* @author skraffmiller
*/
@Table(indexes = {@Index(columnList="name")
, @Index(columnList="owner_id")})
, @Index(columnList="owner_id"),})

Check failure on line 32 in src/main/java/edu/harvard/iq/dataverse/MetadataBlock.java

View workflow job for this annotation

GitHub Actions / Checkstyle job

[reviewdog] reported by reviewdog 🐶 File contains tab characters (this is the first instance). Raw Output: /github/workspace/./src/main/java/edu/harvard/iq/dataverse/MetadataBlock.java:32:1: error: File contains tab characters (this is the first instance). (com.puppycrawl.tools.checkstyle.checks.whitespace.FileTabCharacterCheck)
@NamedQueries({
@NamedQuery( name="MetadataBlock.listAll", query = "SELECT mdb FROM MetadataBlock mdb"),
@NamedQuery( name="MetadataBlock.findByName", query = "SELECT mdb FROM MetadataBlock mdb WHERE mdb.name=:name")
@NamedQuery( name="MetadataBlock.listSystem", query = "SELECT mdb FROM MetadataBlock mdb WHERE mdb.owner_id=null"),
@NamedQuery( name="MetadataBlock.findByName", query = "SELECT mdb FROM MetadataBlock mdb WHERE mdb.name=:name"),
@NamedQuery( name="MetadataBlock.findByDataverseId", query = "SELECT mdb FROM MetadataBlock mdb WHERE mdb.owner_id=:dataverse_id"),

})
@Entity
public class MetadataBlock implements Serializable, Comparable {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,10 @@
public class MetadataBlockConverter implements Converter {

//@EJB
DataverseServiceBean dataverseService = CDI.current().select(DataverseServiceBean.class).get();
MetadataBlockServiceBean dataverseService = CDI.current().select(MetadataBlockServiceBean.class).get();

public Object getAsObject(FacesContext facesContext, UIComponent component, String submittedValue) {
MetadataBlock mdb = dataverseService.findMDB(new Long(submittedValue));
MetadataBlock mdb = dataverseService.findById(new Long(submittedValue));
johannes-darms marked this conversation as resolved.
Show resolved Hide resolved
return mdb;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,4 +40,18 @@ public MetadataBlock findByName( String name ) {
return null;
}
}

public List<MetadataBlock> findSystemMetadataBlocks(){
return em.createNamedQuery("MetadataBlock.listSystem", MetadataBlock.class).getResultList();
}

public List<MetadataBlock> findMetadataBlocksByDataverseId(Long dataverse_id) {
try {
return em.createNamedQuery("MetadataBlock.findByDataverseId", MetadataBlock.class)
.setParameter("dataverse_id", dataverse_id)
.getResultList();
} catch ( NoResultException nre ) {
return null;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -425,7 +425,7 @@ private String parseDatasetField(String[] values) {
} else {
dsf.setParentDatasetFieldType(null);
}
dsf.setMetadataBlock(dataverseService.findMDBByName(values[15]));
dsf.setMetadataBlock(metadataBlockService.findByName(values[15]));
if(values.length>16 && !StringUtils.isEmpty(values[16])) {
dsf.setUri(values[16]);
}
Expand Down
Loading