Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions src/main/java/edu/harvard/iq/dataverse/TemplatePage.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import edu.harvard.iq.dataverse.engine.command.impl.UpdateDataverseTemplateCommand;
import edu.harvard.iq.dataverse.license.LicenseServiceBean;
import edu.harvard.iq.dataverse.util.BundleUtil;
import edu.harvard.iq.dataverse.util.DatasetFieldUtil;
import edu.harvard.iq.dataverse.util.JsfHelper;
import static edu.harvard.iq.dataverse.util.JsfHelper.JH;
import java.sql.Timestamp;
Expand Down Expand Up @@ -177,6 +178,9 @@ public String save(String redirectPage) {
Long createdId = new Long(0);
Template created;
try {

DatasetFieldUtil.tidyUpFields( template.getDatasetFields(), false );

if (editMode == EditMode.CREATE) {
template.setCreateTime(new Timestamp(new Date().getTime()));
template.setUsageCount(new Long(0));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
import edu.harvard.iq.dataverse.util.BundleUtil;
import java.sql.Timestamp;
import java.util.Date;
import java.util.Iterator;
import java.util.Set;
import java.util.logging.Level;
import java.util.logging.Logger;
Expand Down Expand Up @@ -115,27 +114,7 @@ protected void validateOrDie(DatasetVersion dsv, Boolean lenient) throws Command
}
}

/**
* Removed empty fields, sets field value display order.
*
* @param dsv the dataset version show fields we want to tidy up.
*/
protected void tidyUpFields(DatasetVersion dsv) {
Iterator<DatasetField> dsfIt = dsv.getDatasetFields().iterator();
while (dsfIt.hasNext()) {
if (dsfIt.next().removeBlankDatasetFieldValues()) {
dsfIt.remove();
}
}
Iterator<DatasetField> dsfItSort = dsv.getDatasetFields().iterator();
while (dsfItSort.hasNext()) {
dsfItSort.next().setValueDisplayOrder();
}
Iterator<DatasetField> dsfItTrim = dsv.getDatasetFields().iterator();
while (dsfItTrim.hasNext()) {
dsfItTrim.next().trimTrailingSpaces();
}
}


/**
* Whether it's EZID or DataCite, if the registration is refused because the
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@
import edu.harvard.iq.dataverse.engine.command.RequiredPermissions;
import edu.harvard.iq.dataverse.engine.command.exception.CommandException;
import edu.harvard.iq.dataverse.engine.command.exception.IllegalCommandException;
import edu.harvard.iq.dataverse.util.DatasetFieldUtil;

import java.util.ArrayList;
import java.util.List;
import java.util.logging.Logger;
Expand Down Expand Up @@ -76,7 +78,7 @@ public void prepareDatasetAndVersion() throws CommandException {
//throwing constraint violations because they
//had been stripped from the dataset fields prior to validation
validateOrDie(newVersion, false);
tidyUpFields(newVersion);
DatasetFieldUtil.tidyUpFields(newVersion.getDatasetFields(), true);

final List<DatasetVersion> currentVersions = dataset.getVersions();
ArrayList<DatasetVersion> dsvs = new ArrayList<>(currentVersions.size());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import edu.harvard.iq.dataverse.export.ExportException;
import edu.harvard.iq.dataverse.export.ExportService;
import edu.harvard.iq.dataverse.util.BundleUtil;
import edu.harvard.iq.dataverse.util.DatasetFieldUtil;
import edu.harvard.iq.dataverse.workflows.WorkflowComment;
import edu.harvard.iq.dataverse.Dataset;
import edu.harvard.iq.dataverse.DatasetVersion;
Expand Down Expand Up @@ -59,7 +60,7 @@ public Dataset execute(CommandContext ctxt) throws CommandException {
validateOrDie(updateVersion, isValidateLenient());

// final DatasetVersion editVersion = getDataset().getEditVersion();
tidyUpFields(updateVersion);
DatasetFieldUtil.tidyUpFields(updateVersion.getDatasetFields(), true);

// Merge the new version into our JPA context
ctxt.em().merge(updateVersion);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import edu.harvard.iq.dataverse.engine.command.RequiredPermissions;
import edu.harvard.iq.dataverse.engine.command.exception.CommandException;
import edu.harvard.iq.dataverse.engine.command.exception.IllegalCommandException;
import edu.harvard.iq.dataverse.util.DatasetFieldUtil;
import edu.harvard.iq.dataverse.util.FileMetadataUtil;

import java.io.IOException;
Expand Down Expand Up @@ -117,8 +118,8 @@ public Dataset execute(CommandContext ctxt) throws CommandException {
validateOrDie(getDataset().getEditVersion(fmVarMet), isValidateLenient());

final DatasetVersion editVersion = getDataset().getEditVersion(fmVarMet);
tidyUpFields(editVersion);

DatasetFieldUtil.tidyUpFields(editVersion.getDatasetFields(), true);

// Merge the new version into out JPA context, if needed.
if (editVersion.getId() == null || editVersion.getId() == 0L) {
Expand Down
42 changes: 42 additions & 0 deletions src/main/java/edu/harvard/iq/dataverse/util/DatasetFieldUtil.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package edu.harvard.iq.dataverse.util;

import edu.harvard.iq.dataverse.DatasetField;

import java.util.Iterator;
import java.util.List;
import java.util.logging.Logger;

/**
* Toolkit for datasetFields
* @author alejandra.tenorio
* @author qqmyers
*/
public class DatasetFieldUtil {

private static final Logger logger = Logger.getLogger(DatasetFieldUtil.class.getCanonicalName());

/**
* Removed empty fields, sets field value display order.
* @param datasetFields the datasetFields from templates or datasetVersions we want to tidy up.
* @param removeBlanks if remove blank fields
*/
public static void tidyUpFields(List<DatasetField> datasetFields, boolean removeBlanks) {
if(removeBlanks){
Iterator<DatasetField> dsfIt = datasetFields.iterator();
while (dsfIt.hasNext()) {
if (dsfIt.next().removeBlankDatasetFieldValues()) {
dsfIt.remove();
}
}
Iterator<DatasetField> dsfItTrim = datasetFields.iterator();
while (dsfItTrim.hasNext()) {
dsfItTrim.next().trimTrailingSpaces();
}
}
Iterator<DatasetField> dsfItSort = datasetFields.iterator();
while (dsfItSort.hasNext()) {
dsfItSort.next().setValueDisplayOrder();
}

}
}