findAll(Context context) throws SQLException;
diff --git a/dspace-api/src/main/java/org/dspace/core/Context.java b/dspace-api/src/main/java/org/dspace/core/Context.java
index e878367ec4..2181626250 100644
--- a/dspace-api/src/main/java/org/dspace/core/Context.java
+++ b/dspace-api/src/main/java/org/dspace/core/Context.java
@@ -46,8 +46,6 @@ import org.springframework.util.CollectionUtils;
* changes and free up the resources.
*
* The context object is also used as a cache for CM API objects.
- *
- * @version $Revision$
*/
public class Context implements AutoCloseable {
private static final Logger log = org.apache.logging.log4j.LogManager.getLogger(Context.class);
diff --git a/dspace-api/src/main/java/org/dspace/core/I18nUtil.java b/dspace-api/src/main/java/org/dspace/core/I18nUtil.java
index cd0609e29f..68db217f1e 100644
--- a/dspace-api/src/main/java/org/dspace/core/I18nUtil.java
+++ b/dspace-api/src/main/java/org/dspace/core/I18nUtil.java
@@ -217,12 +217,11 @@ public class I18nUtil {
*/
public static String getInputFormsFileName(Locale locale) {
/** Name of the form definition XML file */
- String fileName = "";
final String FORM_DEF_FILE = "submission-forms";
final String FILE_TYPE = ".xml";
String defsFilename = DSpaceServicesFactory.getInstance().getConfigurationService().getProperty("dspace.dir")
+ File.separator + "config" + File.separator + FORM_DEF_FILE;
- fileName = getFilename(locale, defsFilename, FILE_TYPE);
+ String fileName = getFilename(locale, defsFilename, FILE_TYPE);
return fileName;
}
@@ -286,14 +285,13 @@ public class I18nUtil {
*/
public static String getDefaultLicense(Context context) {
Locale locale = context.getCurrentLocale();
- String fileName = "";
/** Name of the default license */
final String DEF_LIC_FILE = "default";
final String FILE_TYPE = ".license";
String defsFilename = DSpaceServicesFactory.getInstance().getConfigurationService().getProperty("dspace.dir")
+ File.separator + "config" + File.separator + DEF_LIC_FILE;
- fileName = getFilename(locale, defsFilename, FILE_TYPE);
+ String fileName = getFilename(locale, defsFilename, FILE_TYPE);
return fileName;
}
@@ -316,8 +314,7 @@ public class I18nUtil {
// with Language, Country
String fileNameLC = null;
// with Language
- String fileNameL = null;
- fileNameL = fileName + "_" + locale.getLanguage();
+ String fileNameL = fileName + "_" + locale.getLanguage();
if (fileType == null) {
fileType = "";
@@ -372,12 +369,11 @@ public class I18nUtil {
* String - localized filename of an email template
*/
public static String getEmailFilename(Locale locale, String name) {
- String templateName = "";
String templateFile = DSpaceServicesFactory.getInstance().getConfigurationService().getProperty("dspace.dir")
+ File.separator + "config" + File.separator + "emails"
+ File.separator + name;
- templateName = getFilename(locale, templateFile, "");
+ String templateName = getFilename(locale, templateFile, "");
return templateName;
}
@@ -389,7 +385,7 @@ public class I18nUtil {
* @return array of locale results, possibly empty
*/
public static Locale[] parseLocales(String[] locales) {
- List resultList = new ArrayList();
+ List resultList = new ArrayList<>();
for (String ls : locales) {
Locale lc = makeLocale(ls);
if (lc != null) {
diff --git a/dspace-api/src/main/java/org/dspace/core/Utils.java b/dspace-api/src/main/java/org/dspace/core/Utils.java
index 18daa5a69e..8968c8950f 100644
--- a/dspace-api/src/main/java/org/dspace/core/Utils.java
+++ b/dspace-api/src/main/java/org/dspace/core/Utils.java
@@ -33,8 +33,10 @@ import java.util.regex.Matcher;
import java.util.regex.Pattern;
import com.coverity.security.Escape;
+import java.nio.charset.StandardCharsets;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.text.StringSubstitutor;
+import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.dspace.services.ConfigurationService;
import org.dspace.services.factory.DSpaceServicesFactory;
@@ -43,13 +45,12 @@ import org.dspace.services.factory.DSpaceServicesFactory;
* Utility functions for DSpace.
*
* @author Peter Breton
- * @version $Revision$
*/
public final class Utils {
/**
* log4j logger
*/
- private static Logger log = org.apache.logging.log4j.LogManager.getLogger(Utils.class);
+ private static final Logger log = LogManager.getLogger(Utils.class);
private static final Pattern DURATION_PATTERN = Pattern
.compile("(\\d+)([smhdwy])");
@@ -68,12 +69,12 @@ public final class Utils {
private static int counter = 0;
- private static Random random = new Random();
+ private static final Random random = new Random();
- private static VMID vmid = new VMID();
+ private static final VMID vmid = new VMID();
// for parseISO8601Date
- private static SimpleDateFormat parseFmt[] = {
+ private static final SimpleDateFormat parseFmt[] = {
// first try at parsing, has milliseconds (note General time zone)
new SimpleDateFormat("yyyy'-'MM'-'dd'T'HH':'mm':'ss.SSSz"),
@@ -88,12 +89,14 @@ public final class Utils {
// for formatISO8601Date
// output canonical format (note RFC22 time zone, easier to hack)
- private static SimpleDateFormat outFmtSecond = new SimpleDateFormat("yyyy'-'MM'-'dd'T'HH':'mm':'ssZ");
+ private static final SimpleDateFormat outFmtSecond
+ = new SimpleDateFormat("yyyy'-'MM'-'dd'T'HH':'mm':'ssZ");
// output format with millsecond precision
- private static SimpleDateFormat outFmtMillisec = new SimpleDateFormat("yyyy'-'MM'-'dd'T'HH':'mm':'ss.SSSZ");
+ private static final SimpleDateFormat outFmtMillisec
+ = new SimpleDateFormat("yyyy'-'MM'-'dd'T'HH':'mm':'ss.SSSZ");
- private static Calendar outCal = GregorianCalendar.getInstance();
+ private static final Calendar outCal = GregorianCalendar.getInstance();
/**
* Private constructor
@@ -107,7 +110,7 @@ public final class Utils {
* @return MD5 checksum for the data in hex format.
*/
public static String getMD5(String data) {
- return getMD5(data.getBytes());
+ return getMD5(data.getBytes(StandardCharsets.UTF_8));
}
/**
@@ -150,7 +153,7 @@ public final class Utils {
return null;
}
- StringBuffer result = new StringBuffer();
+ StringBuilder result = new StringBuilder();
// This is far from the most efficient way to do things...
for (int i = 0; i < data.length; i++) {
@@ -194,10 +197,14 @@ public final class Utils {
random.nextBytes(junk);
- String input = new StringBuffer().append(vmid).append(
- new java.util.Date()).append(Arrays.toString(junk)).append(counter++).toString();
+ String input = new StringBuilder()
+ .append(vmid)
+ .append(new java.util.Date())
+ .append(Arrays.toString(junk))
+ .append(counter++)
+ .toString();
- return getMD5Bytes(input.getBytes());
+ return getMD5Bytes(input.getBytes(StandardCharsets.UTF_8));
}
// The following two methods are taken from the Jakarta IOUtil class.
diff --git a/dspace-api/src/main/java/org/dspace/curate/AbstractCurationTask.java b/dspace-api/src/main/java/org/dspace/curate/AbstractCurationTask.java
index d5ec37d60b..fa16d27369 100644
--- a/dspace-api/src/main/java/org/dspace/curate/AbstractCurationTask.java
+++ b/dspace-api/src/main/java/org/dspace/curate/AbstractCurationTask.java
@@ -13,7 +13,6 @@ import java.util.Iterator;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
-import org.apache.logging.log4j.Logger;
import org.dspace.content.Collection;
import org.dspace.content.Community;
import org.dspace.content.DSpaceObject;
@@ -39,8 +38,6 @@ public abstract class AbstractCurationTask implements CurationTask {
protected Curator curator = null;
// curator-assigned taskId
protected String taskId = null;
- // logger
- private static Logger log = org.apache.logging.log4j.LogManager.getLogger(AbstractCurationTask.class);
protected CommunityService communityService;
protected ItemService itemService;
protected HandleService handleService;
diff --git a/dspace-api/src/main/java/org/dspace/curate/CitationPage.java b/dspace-api/src/main/java/org/dspace/curate/CitationPage.java
index 386bf0ba92..0f02d5b757 100644
--- a/dspace-api/src/main/java/org/dspace/curate/CitationPage.java
+++ b/dspace-api/src/main/java/org/dspace/curate/CitationPage.java
@@ -19,7 +19,6 @@ import org.apache.commons.lang3.tuple.Pair;
import org.apache.logging.log4j.Logger;
import org.dspace.authorize.AuthorizeException;
import org.dspace.content.Bitstream;
-import org.dspace.content.BitstreamFormat;
import org.dspace.content.Bundle;
import org.dspace.content.DSpaceObject;
import org.dspace.content.Item;
@@ -46,7 +45,7 @@ public class CitationPage extends AbstractCurationTask {
/**
* Class Logger
*/
- private static Logger log = org.apache.logging.log4j.LogManager.getLogger(CitationPage.class);
+ private static final Logger log = org.apache.logging.log4j.LogManager.getLogger(CitationPage.class);
protected int status = Curator.CURATE_UNSET;
protected String result = null;
@@ -97,7 +96,7 @@ public class CitationPage extends AbstractCurationTask {
//Determine if the DISPLAY bundle exits. If not, create it.
List dBundles = itemService.getBundles(item, CitationPage.DISPLAY_BUNDLE_NAME);
Bundle dBundle = null;
- if (dBundles == null || dBundles.size() == 0) {
+ if (dBundles == null || dBundles.isEmpty()) {
try {
dBundle = bundleService.create(Curator.curationContext(), item, CitationPage.DISPLAY_BUNDLE_NAME);
} catch (AuthorizeException e) {
@@ -110,7 +109,7 @@ public class CitationPage extends AbstractCurationTask {
//Create a map of the bitstreams in the displayBundle. This is used to
//check if the bundle being cited is already in the display bundle.
- Map displayMap = new HashMap();
+ Map displayMap = new HashMap<>();
for (Bitstream bs : dBundle.getBitstreams()) {
displayMap.put(bs.getName(), bs);
}
@@ -143,15 +142,16 @@ public class CitationPage extends AbstractCurationTask {
// Loop through each file and generate a cover page for documents
// that are PDFs.
for (Bitstream bitstream : bitstreams) {
- BitstreamFormat format = bitstream.getFormat(Curator.curationContext());
//If bitstream is a PDF document then it is citable.
CitationDocumentService citationDocument = DisseminateServiceFactory.getInstance()
.getCitationDocumentService();
if (citationDocument.canGenerateCitationVersion(Curator.curationContext(), bitstream)) {
- this.resBuilder.append(item.getHandle() + " - "
- + bitstream.getName() + " is citable.");
+ this.resBuilder.append(item.getHandle())
+ .append(" - ")
+ .append(bitstream.getName())
+ .append(" is citable.");
try {
//Create the cited document
Pair citedDocument =
@@ -168,7 +168,9 @@ public class CitationPage extends AbstractCurationTask {
StringBuilder stack = new StringBuilder();
int numLines = Math.min(stackTrace.length, 12);
for (int j = 0; j < numLines; j++) {
- stack.append("\t" + stackTrace[j].toString() + "\n");
+ stack.append("\t")
+ .append(stackTrace[j].toString())
+ .append("\n");
}
if (stackTrace.length > numLines) {
stack.append("\t. . .\n");
@@ -180,8 +182,10 @@ public class CitationPage extends AbstractCurationTask {
}
} else {
//bitstream is not a document
- this.resBuilder.append(item.getHandle() + " - "
- + bitstream.getName() + " is not citable.\n");
+ this.resBuilder.append(item.getHandle())
+ .append(" - ")
+ .append(bitstream.getName())
+ .append(" is not citable.\n");
this.status = Curator.CURATE_SUCCESS;
}
}
@@ -211,11 +215,11 @@ public class CitationPage extends AbstractCurationTask {
//If we are modifying a file that is not in the
//preservation bundle then we have to move it there.
Context context = Curator.curationContext();
- if (bundle.getID() != pBundle.getID()) {
+ if (!bundle.getID().equals(pBundle.getID())) {
bundleService.addBitstream(context, pBundle, bitstream);
bundleService.removeBitstream(context, bundle, bitstream);
List bitstreams = bundle.getBitstreams();
- if (bitstreams == null || bitstreams.size() == 0) {
+ if (bitstreams == null || bitstreams.isEmpty()) {
itemService.removeBundle(context, item, bundle);
}
}
@@ -235,9 +239,11 @@ public class CitationPage extends AbstractCurationTask {
bitstreamService.setFormat(context, citedBitstream, bitstream.getFormat(Curator.curationContext()));
citedBitstream.setDescription(context, bitstream.getDescription());
- this.resBuilder.append(" Added "
- + citedBitstream.getName()
- + " to the " + CitationPage.DISPLAY_BUNDLE_NAME + " bundle.\n");
+ this.resBuilder.append(" Added ")
+ .append(citedBitstream.getName())
+ .append(" to the ")
+ .append(CitationPage.DISPLAY_BUNDLE_NAME)
+ .append(" bundle.\n");
//Run update to propagate changes to the
//database.
diff --git a/dspace-api/src/main/java/org/dspace/curate/TaskResolver.java b/dspace-api/src/main/java/org/dspace/curate/TaskResolver.java
index a9a8e8906a..2b12745d8f 100644
--- a/dspace-api/src/main/java/org/dspace/curate/TaskResolver.java
+++ b/dspace-api/src/main/java/org/dspace/curate/TaskResolver.java
@@ -15,11 +15,13 @@ import java.io.FileWriter;
import java.io.IOException;
import java.io.Reader;
import java.io.Writer;
+import java.nio.charset.StandardCharsets;
import java.util.Properties;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
+import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.dspace.core.factory.CoreServiceFactory;
import org.dspace.services.factory.DSpaceServicesFactory;
@@ -64,7 +66,7 @@ import org.dspace.services.factory.DSpaceServicesFactory;
public class TaskResolver {
// logging service
- private static Logger log = org.apache.logging.log4j.LogManager.getLogger(TaskResolver.class);
+ private static final Logger log = LogManager.getLogger(TaskResolver.class);
// base directory of task scripts & catalog name
protected static final String CATALOG = "task.catalog";
@@ -94,7 +96,7 @@ public class TaskResolver {
if (script.exists()) {
BufferedReader reader = null;
try {
- reader = new BufferedReader(new FileReader(script));
+ reader = new BufferedReader(new FileReader(script, StandardCharsets.UTF_8));
String line = null;
while ((line = reader.readLine()) != null) {
if (line.startsWith("#") && line.indexOf("$td=") > 0) {
@@ -136,7 +138,7 @@ public class TaskResolver {
catalog.put(taskName, descriptor);
Writer writer = null;
try {
- writer = new FileWriter(new File(scriptDir, CATALOG));
+ writer = new FileWriter(new File(scriptDir, CATALOG), StandardCharsets.UTF_8);
catalog.store(writer, "do not edit");
} catch (IOException ioE) {
log.error("Error saving scripted task catalog: " + CATALOG);
@@ -179,7 +181,7 @@ public class TaskResolver {
File script = new File(scriptDir, tokens[1]);
if (script.exists()) {
try {
- Reader reader = new FileReader(script);
+ Reader reader = new FileReader(script, StandardCharsets.UTF_8);
engine.eval(reader);
reader.close();
// third token is the constructor expression for the class
@@ -212,7 +214,7 @@ public class TaskResolver {
File catalogFile = new File(scriptDir, CATALOG);
if (catalogFile.exists()) {
try {
- Reader reader = new FileReader(catalogFile);
+ Reader reader = new FileReader(catalogFile, StandardCharsets.UTF_8);
catalog.load(reader);
reader.close();
} catch (IOException ioE) {
diff --git a/dspace-api/src/main/java/org/dspace/discovery/FullTextContentStreams.java b/dspace-api/src/main/java/org/dspace/discovery/FullTextContentStreams.java
index 97187c79ed..b3ee42fca1 100644
--- a/dspace-api/src/main/java/org/dspace/discovery/FullTextContentStreams.java
+++ b/dspace-api/src/main/java/org/dspace/discovery/FullTextContentStreams.java
@@ -16,9 +16,9 @@ import java.io.Reader;
import java.io.SequenceInputStream;
import java.nio.charset.StandardCharsets;
import java.sql.SQLException;
+import java.util.ArrayList;
import java.util.Enumeration;
import java.util.Iterator;
-import java.util.LinkedList;
import java.util.List;
import javax.annotation.Nullable;
@@ -55,7 +55,7 @@ public class FullTextContentStreams extends ContentStreamBase {
}
protected void init(Item parentItem) {
- fullTextStreams = new LinkedList<>();
+ fullTextStreams = new ArrayList<>();
if (parentItem != null) {
sourceInfo = parentItem.getHandle();
@@ -149,8 +149,8 @@ public class FullTextContentStreams extends ContentStreamBase {
}
private class FullTextBitstream {
- private String itemHandle;
- private Bitstream bitstream;
+ private final String itemHandle;
+ private final Bitstream bitstream;
public FullTextBitstream(final String parentHandle, final Bitstream file) {
this.itemHandle = parentHandle;
@@ -179,18 +179,20 @@ public class FullTextContentStreams extends ContentStreamBase {
}
}
- private class FullTextEnumeration implements Enumeration {
+ private static class FullTextEnumeration implements Enumeration {
private final Iterator fulltextIterator;
- public FullTextEnumeration(final Iterator fulltextStreams) {
- this.fulltextIterator = fulltextStreams;
+ public FullTextEnumeration(final Iterator fulltextIterator) {
+ this.fulltextIterator = fulltextIterator;
}
+ @Override
public boolean hasMoreElements() {
return fulltextIterator.hasNext();
}
+ @Override
public InputStream nextElement() {
InputStream inputStream = null;
FullTextBitstream bitstream = null;
diff --git a/dspace-api/src/main/java/org/dspace/event/ConsumerProfile.java b/dspace-api/src/main/java/org/dspace/event/ConsumerProfile.java
index c66c331332..d1059f8e2f 100644
--- a/dspace-api/src/main/java/org/dspace/event/ConsumerProfile.java
+++ b/dspace-api/src/main/java/org/dspace/event/ConsumerProfile.java
@@ -104,7 +104,9 @@ public class ConsumerProfile {
"No filters configured for consumer named: " + name);
}
- consumer = (Consumer) Class.forName(className.trim()).getDeclaredConstructor().newInstance();
+ consumer = Class.forName(className.trim())
+ .asSubclass(Consumer.class)
+ .getDeclaredConstructor().newInstance();
// Each "filter" is + : ...
filters = new ArrayList<>();
diff --git a/dspace-api/src/main/java/org/dspace/event/Event.java b/dspace-api/src/main/java/org/dspace/event/Event.java
index 45b6407b28..af8b2d4571 100644
--- a/dspace-api/src/main/java/org/dspace/event/Event.java
+++ b/dspace-api/src/main/java/org/dspace/event/Event.java
@@ -48,8 +48,6 @@ import org.dspace.event.factory.EventServiceFactory;
* significance varies by the combination of action and subject type.
* - timestamp -- exact millisecond timestamp at which event was logged.
*
- *
- * @version $Revision$
*/
public class Event implements Serializable {
private static final long serialVersionUID = 1L;
@@ -308,6 +306,7 @@ public class Event implements Serializable {
* @param other the event to compare this one to
* @return true if events are "equal", false otherwise.
*/
+ @Override
public boolean equals(Object other) {
if (other instanceof Event) {
Event otherEvent = (Event) other;
@@ -315,14 +314,15 @@ public class Event implements Serializable {
.equals(otherEvent.detail))
&& this.eventType == otherEvent.eventType
&& this.subjectType == otherEvent.subjectType
- && this.subjectID == otherEvent.subjectID
+ && this.subjectID.equals(otherEvent.subjectID)
&& this.objectType == otherEvent.objectType
- && this.objectID == otherEvent.objectID;
+ && this.objectID.equals(otherEvent.objectID);
}
return false;
}
+ @Override
public int hashCode() {
return new HashCodeBuilder().append(this.detail)
.append(eventType)
@@ -634,6 +634,7 @@ public class Event implements Serializable {
* @return Detailed string representation of contents of this event, to
* help in logging and debugging.
*/
+ @Override
public String toString() {
return "org.dspace.event.Event(eventType="
+ this.getEventTypeAsString()
diff --git a/dspace-api/src/main/java/org/dspace/handle/Handle.java b/dspace-api/src/main/java/org/dspace/handle/Handle.java
index 76fed105b9..c35511353a 100644
--- a/dspace-api/src/main/java/org/dspace/handle/Handle.java
+++ b/dspace-api/src/main/java/org/dspace/handle/Handle.java
@@ -105,7 +105,7 @@ public class Handle implements ReloadableEntity {
return true;
}
- if (o == null || getClass() != o.getClass()) {
+ if (!(o instanceof Handle)) {
return false;
}
diff --git a/dspace-api/src/main/java/org/dspace/text/filter/InitialArticleWord.java b/dspace-api/src/main/java/org/dspace/text/filter/InitialArticleWord.java
index 700b25748e..167b201e0f 100644
--- a/dspace-api/src/main/java/org/dspace/text/filter/InitialArticleWord.java
+++ b/dspace-api/src/main/java/org/dspace/text/filter/InitialArticleWord.java
@@ -110,7 +110,7 @@ public abstract class InitialArticleWord implements TextFilter {
return str.substring(cutPos);
} else {
// No - move the initial article word to the end
- return new StringBuffer(str.substring(cutPos))
+ return new StringBuilder(str.substring(cutPos))
.append(wordSeparator)
.append(str.substring(initialStart, initialEnd))
.toString();
@@ -124,10 +124,12 @@ public abstract class InitialArticleWord implements TextFilter {
}
protected InitialArticleWord(boolean stripWord) {
+ this.wordSeparator = ", ";
stripInitialArticle = stripWord;
}
protected InitialArticleWord() {
+ this.wordSeparator = ", ";
stripInitialArticle = false;
}
@@ -138,9 +140,8 @@ public abstract class InitialArticleWord implements TextFilter {
* @return An array of definite/indefinite article words
*/
protected abstract String[] getArticleWords(String lang);
-
// Separator to use when appending article to end
- private String wordSeparator = ", ";
+ private final String wordSeparator;
// Flag to signify initial article word should be removed
// If false, then the initial article word is appended to the end
diff --git a/dspace-api/src/main/java/org/dspace/xmlworkflow/storedcomponents/InProgressUser.java b/dspace-api/src/main/java/org/dspace/xmlworkflow/storedcomponents/InProgressUser.java
index 5cd714345e..efbd26bde5 100644
--- a/dspace-api/src/main/java/org/dspace/xmlworkflow/storedcomponents/InProgressUser.java
+++ b/dspace-api/src/main/java/org/dspace/xmlworkflow/storedcomponents/InProgressUser.java
@@ -59,6 +59,7 @@ public class InProgressUser implements ReloadableEntity {
}
+ @Override
public Integer getID() {
return id;
}
diff --git a/dspace-api/src/test/java/org/dspace/content/MetadataFieldNameTest.java b/dspace-api/src/test/java/org/dspace/content/MetadataFieldNameTest.java
index f0ca7d25d8..a3a069b35e 100644
--- a/dspace-api/src/test/java/org/dspace/content/MetadataFieldNameTest.java
+++ b/dspace-api/src/test/java/org/dspace/content/MetadataFieldNameTest.java
@@ -26,17 +26,17 @@ public class MetadataFieldNameTest {
@Test
public void testConstruct3() {
MetadataFieldName instance = new MetadataFieldName("one", "two", "three");
- assertEquals("Incorrect schema", "one", instance.SCHEMA);
- assertEquals("Incorrect element", "two", instance.ELEMENT);
- assertEquals("Incorrect qualifier", "three", instance.QUALIFIER);
+ assertEquals("Incorrect schema", "one", instance.schema);
+ assertEquals("Incorrect element", "two", instance.element);
+ assertEquals("Incorrect qualifier", "three", instance.qualifier);
}
@Test
public void testConstruct2() {
MetadataFieldName instance = new MetadataFieldName("one", "two");
- assertEquals("Incorrect schema", "one", instance.SCHEMA);
- assertEquals("Incorrect element", "two", instance.ELEMENT);
- assertNull("Incorrect qualifier", instance.QUALIFIER);
+ assertEquals("Incorrect schema", "one", instance.schema);
+ assertEquals("Incorrect element", "two", instance.element);
+ assertNull("Incorrect qualifier", instance.qualifier);
}
@Test(expected = NullPointerException.class)
From f6112babc3685a2eb84ee55e50215835e43c260d Mon Sep 17 00:00:00 2001
From: "Mark H. Wood"
Date: Tue, 24 Nov 2020 20:22:06 -0500
Subject: [PATCH 0010/1254] More errorprone warnings. #3061
---
.../dspace/administer/MetadataImporter.java | 17 +++-----
.../org/dspace/app/bulkedit/DSpaceCSV.java | 42 ++++++++----------
.../dspace/app/itemupdate/DtoMetadata.java | 1 +
.../dspace/app/itemupdate/ItemArchive.java | 5 ++-
.../org/dspace/app/sherpa/SHERPAResponse.java | 9 ++--
.../app/statistics/CreateStatReport.java | 43 ++++++-------------
.../main/java/org/dspace/app/util/WebApp.java | 1 +
.../java/org/dspace/app/util/XMLUtils.java | 11 +++--
.../authenticate/PasswordAuthentication.java | 8 ++--
.../authorize/AuthorizeServiceImpl.java | 17 ++++----
.../dspace/checker/MostRecentChecksum.java | 2 +-
.../org/dspace/checker/ResultsLogger.java | 2 +-
.../org/dspace/content/BitstreamFormat.java | 4 +-
.../main/java/org/dspace/content/Bundle.java | 10 ++---
.../main/java/org/dspace/content/DCDate.java | 29 ++++++-------
.../org/dspace/content/DCSeriesNumber.java | 4 +-
.../content/DSpaceObjectServiceImpl.java | 7 ++-
.../java/org/dspace/content/EntityType.java | 7 ++-
.../java/org/dspace/content/Relationship.java | 1 +
.../org/dspace/content/RelationshipType.java | 9 ++--
.../dao/impl/MetadataSchemaDAOImpl.java | 4 +-
.../content/packager/PackageException.java | 7 ---
.../content/packager/PackageParameters.java | 2 +-
.../org/dspace/content/virtual/UUIDValue.java | 5 +--
.../main/java/org/dspace/core/Context.java | 36 ++++++++--------
.../main/java/org/dspace/core/I18nUtil.java | 4 +-
.../java/org/dspace/curate/FileTaskQueue.java | 17 +++++---
.../java/org/dspace/curate/ResolvedTask.java | 6 +--
.../org/dspace/discovery/DiscoverQuery.java | 37 ++++++++--------
.../discovery/FullTextContentStreams.java | 5 +++
.../discovery/SolrServiceFileInfoPlugin.java | 2 +-
.../indexobject/AbstractIndexableObject.java | 13 +++---
.../java/org/dspace/eperson/Subscription.java | 1 +
.../eperson/dao/impl/SubscriptionDAOImpl.java | 3 +-
.../dspace/external/OrcidRestConnector.java | 8 ++--
.../external/model/ExternalDataObject.java | 8 ++--
.../provider/orcid/xml/Converter.java | 6 ---
.../org/dspace/harvest/HarvestedItem.java | 2 +-
.../main/java/org/dspace/identifier/DOI.java | 1 +
.../identifier/dao/impl/DOIDAOImpl.java | 14 +++---
.../external/datamodel/ImportRecord.java | 6 +--
.../AbstractMetadataFieldMapping.java | 15 ++++---
.../metadatamapping/MetadataFieldConfig.java | 10 ++---
.../scripts/DSpaceCommandLineParameter.java | 12 +++---
.../org/dspace/scripts/DSpaceRunnable.java | 10 ++---
.../main/java/org/dspace/scripts/Process.java | 8 ++--
.../main/java/org/dspace/search/Harvest.java | 12 +++---
.../java/org/dspace/statistics/Dataset.java | 15 ++++---
.../SolrLoggerUsageEventListener.java | 7 +--
.../content/StatisticsDataVisits.java | 10 +----
.../lookup/ValueConcatenationModifier.java | 10 ++---
.../submit/util/ItemSubmissionLookupDTO.java | 8 ++--
.../java/org/dspace/versioning/Version.java | 1 +
.../org/dspace/versioning/VersionHistory.java | 10 +----
.../dspace/workflow/WorkflowException.java | 3 +-
.../workflowbasic/BasicWorkflowItem.java | 1 +
.../dspace/workflowbasic/TaskListItem.java | 1 +
.../org/dspace/xmlworkflow/RoleMembers.java | 10 ++---
.../WorkflowConfigurationException.java | 7 +--
.../storedcomponents/ClaimedTask.java | 13 +++---
.../storedcomponents/CollectionRole.java | 1 +
.../storedcomponents/PoolTask.java | 13 +++---
.../storedcomponents/WorkflowItemRole.java | 6 +--
.../org/dspace/AbstractIntegrationTest.java | 4 +-
.../dspace/app/bulkedit/MetadataImportIT.java | 14 +++---
.../app/csv/CSVMetadataImportReferenceIT.java | 27 ++++++------
.../util/AbstractBuilderCleanupUtil.java | 40 ++++++++---------
.../dspace/content/MetadataFieldNameTest.java | 10 +++--
.../DSpaceControlledVocabularyTest.java | 5 +--
.../MockCCLicenseConnectorServiceImpl.java | 6 +--
.../ITIrusExportUsageEventListener.java | 27 ++++++------
.../BitstreamEventProcessorTest.java | 6 +--
.../service/MockOpenUrlServiceImpl.java | 12 +++---
73 files changed, 360 insertions(+), 390 deletions(-)
diff --git a/dspace-api/src/main/java/org/dspace/administer/MetadataImporter.java b/dspace-api/src/main/java/org/dspace/administer/MetadataImporter.java
index 37a89fa694..42461d7210 100644
--- a/dspace-api/src/main/java/org/dspace/administer/MetadataImporter.java
+++ b/dspace-api/src/main/java/org/dspace/administer/MetadataImporter.java
@@ -81,7 +81,7 @@ public class MetadataImporter {
* @throws SQLException if database error
* @throws IOException if IO error
* @throws TransformerException if transformer error
- * @throws ParserConfigurationException if config error
+ * @throws ParserConfigurationException if configuration error
* @throws AuthorizeException if authorization error
* @throws SAXException if parser error
* @throws NonUniqueMetadataException if duplicate metadata
@@ -91,7 +91,6 @@ public class MetadataImporter {
throws ParseException, SQLException, IOException, TransformerException,
ParserConfigurationException, AuthorizeException, SAXException,
NonUniqueMetadataException, RegistryImportException {
- boolean forceUpdate = false;
// create an options object and populate it
CommandLineParser parser = new DefaultParser();
@@ -100,16 +99,14 @@ public class MetadataImporter {
options.addOption("u", "update", false, "update an existing schema");
CommandLine line = parser.parse(options, args);
- String file = null;
if (line.hasOption('f')) {
- file = line.getOptionValue('f');
+ String file = line.getOptionValue('f');
+ boolean forceUpdate = line.hasOption('u');
+ loadRegistry(file, forceUpdate);
} else {
usage();
- System.exit(0);
+ System.exit(1);
}
-
- forceUpdate = line.hasOption('u');
- loadRegistry(file, forceUpdate);
}
/**
@@ -120,7 +117,7 @@ public class MetadataImporter {
* @throws SQLException if database error
* @throws IOException if IO error
* @throws TransformerException if transformer error
- * @throws ParserConfigurationException if config error
+ * @throws ParserConfigurationException if configuration error
* @throws AuthorizeException if authorization error
* @throws SAXException if parser error
* @throws NonUniqueMetadataException if duplicate metadata
@@ -227,7 +224,7 @@ public class MetadataImporter {
/**
* Process a node in the metadata registry XML file. The node must
* be a "dc-type" node. If the type already exists, then it
- * will not be reimported
+ * will not be re-imported.
*
* @param context DSpace context object
* @param node the node in the DOM tree
diff --git a/dspace-api/src/main/java/org/dspace/app/bulkedit/DSpaceCSV.java b/dspace-api/src/main/java/org/dspace/app/bulkedit/DSpaceCSV.java
index ad7824bebf..e6ae91ece3 100644
--- a/dspace-api/src/main/java/org/dspace/app/bulkedit/DSpaceCSV.java
+++ b/dspace-api/src/main/java/org/dspace/app/bulkedit/DSpaceCSV.java
@@ -138,7 +138,7 @@ public class DSpaceCSV implements Serializable {
/**
* Create a new instance, reading the lines in from file
*
- * @param inputStream the inputstream to read from
+ * @param inputStream the input stream to read from
* @param c The DSpace Context
* @throws Exception thrown if there is an error reading or processing the file
*/
@@ -159,7 +159,7 @@ public class DSpaceCSV implements Serializable {
columnCounter++;
// Remove surrounding quotes if there are any
- if ((element.startsWith("\"")) && (element.endsWith("\""))) {
+ if (element.startsWith("\"") && element.endsWith("\"")) {
element = element.substring(1, element.length() - 1);
}
@@ -334,15 +334,15 @@ public class DSpaceCSV implements Serializable {
/**
* Set the value separator for multiple values stored in one csv value.
*
- * Is set in bulkedit.cfg as valueseparator
+ * Is set in {@code bulkedit.cfg} as {@code valueseparator}.
*
- * If not set, defaults to double pipe '||'
+ * If not set, defaults to double pipe '||'.
*/
private void setValueSeparator() {
// Get the value separator
valueSeparator = DSpaceServicesFactory.getInstance().getConfigurationService()
.getProperty("bulkedit.valueseparator");
- if ((valueSeparator != null) && (!"".equals(valueSeparator.trim()))) {
+ if ((valueSeparator != null) && !valueSeparator.trim().isEmpty()) {
valueSeparator = valueSeparator.trim();
} else {
valueSeparator = "||";
@@ -357,7 +357,7 @@ public class DSpaceCSV implements Serializable {
/**
* Set the field separator use to separate fields in the csv.
*
- * Is set in bulkedit.cfg as fieldseparator
+ * Is set in {@code bulkedit.cfg} as {@code fieldseparator}.
*
* If not set, defaults to comma ','.
*
@@ -368,7 +368,7 @@ public class DSpaceCSV implements Serializable {
// Get the value separator
fieldSeparator = DSpaceServicesFactory.getInstance().getConfigurationService()
.getProperty("bulkedit.fieldseparator");
- if ((fieldSeparator != null) && (!"".equals(fieldSeparator.trim()))) {
+ if ((fieldSeparator != null) && !fieldSeparator.trim().isEmpty()) {
fieldSeparator = fieldSeparator.trim();
if ("tab".equals(fieldSeparator)) {
fieldSeparator = "\t";
@@ -392,15 +392,15 @@ public class DSpaceCSV implements Serializable {
/**
* Set the authority separator for value with authority data.
*
- * Is set in dspace.cfg as bulkedit.authorityseparator
+ * Is set in {@code dspace.cfg} as {@code bulkedit.authorityseparator}.
*
- * If not set, defaults to double colon '::'
+ * If not set, defaults to double colon '::'.
*/
private void setAuthoritySeparator() {
// Get the value separator
authoritySeparator = DSpaceServicesFactory.getInstance().getConfigurationService()
.getProperty("bulkedit.authorityseparator");
- if ((authoritySeparator != null) && (!"".equals(authoritySeparator.trim()))) {
+ if ((authoritySeparator != null) && !authoritySeparator.trim().isEmpty()) {
authoritySeparator = authoritySeparator.trim();
} else {
authoritySeparator = "::";
@@ -505,7 +505,7 @@ public class DSpaceCSV implements Serializable {
int i = 0;
for (String part : bits) {
int bitcounter = part.length() - part.replaceAll("\"", "").length();
- if ((part.startsWith("\"")) && ((!part.endsWith("\"")) || ((bitcounter & 1) == 1))) {
+ if (part.startsWith("\"") && (!part.endsWith("\"") || ((bitcounter & 1) == 1))) {
found = true;
String add = bits.get(i) + fieldSeparator + bits.get(i + 1);
bits.remove(i);
@@ -521,7 +521,7 @@ public class DSpaceCSV implements Serializable {
// Deal with quotes around the elements
int i = 0;
for (String part : bits) {
- if ((part.startsWith("\"")) && (part.endsWith("\""))) {
+ if (part.startsWith("\"") && part.endsWith("\"")) {
part = part.substring(1, part.length() - 1);
bits.set(i, part);
}
@@ -561,7 +561,7 @@ public class DSpaceCSV implements Serializable {
for (String part : bits) {
if (i > 0) {
// Is this a last empty item?
- if ((last) && (i == headings.size())) {
+ if (last && (i == headings.size())) {
part = "";
}
@@ -574,7 +574,7 @@ public class DSpaceCSV implements Serializable {
csvLine.add(headings.get(i - 1), null);
String[] elements = part.split(escapedValueSeparator);
for (String element : elements) {
- if ((element != null) && (!"".equals(element))) {
+ if ((element != null) && !"".equals(element)) {
csvLine.add(headings.get(i - 1), element);
}
}
@@ -626,18 +626,18 @@ public class DSpaceCSV implements Serializable {
public InputStream getInputStream() {
StringBuilder stringBuilder = new StringBuilder();
for (String csvLine : getCSVLinesAsStringArray()) {
- stringBuilder.append(csvLine + "\n");
+ stringBuilder.append(csvLine).append("\n");
}
return IOUtils.toInputStream(stringBuilder.toString(), StandardCharsets.UTF_8);
}
/**
- * Is it Ok to export this value? When exportAll is set to false, we don't export
+ * Is it okay to export this value? When exportAll is set to false, we don't export
* some of the metadata elements.
*
- * The list can be configured via the key ignore-on-export in bulkedit.cfg
+ * The list can be configured via the key ignore-on-export in {@code bulkedit.cfg}.
*
- * @param md The Metadatum to examine
+ * @param md The MetadataField to examine
* @return Whether or not it is OK to export this element
*/
protected boolean okToExport(MetadataField md) {
@@ -646,12 +646,8 @@ public class DSpaceCSV implements Serializable {
if (md.getQualifier() != null) {
key += "." + md.getQualifier();
}
- if (ignore.get(key) != null) {
- return false;
- }
-
// Must be OK, so don't ignore
- return true;
+ return ignore.get(key) == null;
}
/**
diff --git a/dspace-api/src/main/java/org/dspace/app/itemupdate/DtoMetadata.java b/dspace-api/src/main/java/org/dspace/app/itemupdate/DtoMetadata.java
index 6e4a4a88d6..e67b2221e4 100644
--- a/dspace-api/src/main/java/org/dspace/app/itemupdate/DtoMetadata.java
+++ b/dspace-api/src/main/java/org/dspace/app/itemupdate/DtoMetadata.java
@@ -120,6 +120,7 @@ class DtoMetadata {
return true;
}
+ @Override
public String toString() {
String s = "\tSchema: " + schema + " Element: " + element;
if (qualifier != null) {
diff --git a/dspace-api/src/main/java/org/dspace/app/itemupdate/ItemArchive.java b/dspace-api/src/main/java/org/dspace/app/itemupdate/ItemArchive.java
index 2270d736a8..26de45caf7 100644
--- a/dspace-api/src/main/java/org/dspace/app/itemupdate/ItemArchive.java
+++ b/dspace-api/src/main/java/org/dspace/app/itemupdate/ItemArchive.java
@@ -17,6 +17,7 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
+import java.nio.charset.StandardCharsets;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Iterator;
@@ -55,7 +56,7 @@ public class ItemArchive {
protected Transformer transformer = null;
protected List dtomList = null;
- protected List undoDtomList = new ArrayList();
+ protected List undoDtomList = new ArrayList<>();
protected List undoAddContents = new ArrayList<>(); // for undo of add
@@ -325,7 +326,7 @@ public class ItemArchive {
PrintWriter pw = null;
try {
File f = new File(dir, ItemUpdate.DELETE_CONTENTS_FILE);
- pw = new PrintWriter(new BufferedWriter(new FileWriter(f)));
+ pw = new PrintWriter(new BufferedWriter(new FileWriter(f, StandardCharsets.UTF_8)));
for (UUID i : undoAddContents) {
pw.println(i);
}
diff --git a/dspace-api/src/main/java/org/dspace/app/sherpa/SHERPAResponse.java b/dspace-api/src/main/java/org/dspace/app/sherpa/SHERPAResponse.java
index bd2909c0c1..b0ca1e3d93 100644
--- a/dspace-api/src/main/java/org/dspace/app/sherpa/SHERPAResponse.java
+++ b/dspace-api/src/main/java/org/dspace/app/sherpa/SHERPAResponse.java
@@ -8,12 +8,13 @@
package org.dspace.app.sherpa;
import java.io.InputStream;
-import java.util.LinkedList;
+import java.util.ArrayList;
import java.util.List;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.apache.commons.lang3.StringUtils;
+import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.dspace.app.util.XMLUtils;
import org.w3c.dom.Document;
@@ -25,7 +26,7 @@ import org.w3c.dom.Element;
* @author Andrea Bollini
*/
public class SHERPAResponse {
- private static final Logger log = org.apache.logging.log4j.LogManager.getLogger(SHERPAResponse.class);
+ private static final Logger log = LogManager.getLogger(SHERPAResponse.class);
private int numHits;
@@ -81,7 +82,7 @@ public class SHERPAResponse {
publishersElement, "publisher");
if (journalsList != null) {
- journals = new LinkedList();
+ journals = new ArrayList<>(journalsList.size());
for (Element journalElement : journalsList) {
journals.add(new SHERPAJournal(
XMLUtils.getElementValue(journalElement, "jtitle"),
@@ -92,7 +93,7 @@ public class SHERPAResponse {
}
if (publishersList != null) {
- publishers = new LinkedList();
+ publishers = new ArrayList<>(publishersList.size());
for (Element publisherElement : publishersList) {
Element preprintsElement = XMLUtils.getSingleElement(
publisherElement, "preprints");
diff --git a/dspace-api/src/main/java/org/dspace/app/statistics/CreateStatReport.java b/dspace-api/src/main/java/org/dspace/app/statistics/CreateStatReport.java
index 5785d1ee97..a7d5c4a66a 100644
--- a/dspace-api/src/main/java/org/dspace/app/statistics/CreateStatReport.java
+++ b/dspace-api/src/main/java/org/dspace/app/statistics/CreateStatReport.java
@@ -64,10 +64,6 @@ public class CreateStatReport {
*/
private static Context context;
- /**
- * the config file from which to configure the analyser
- */
-
/**
* Default constructor
*/
@@ -170,22 +166,19 @@ public class CreateStatReport {
String myLogDir = null;
String myFileTemplate = null;
String myConfigFile = null;
- StringBuffer myOutFile = null;
- Date myStartDate = null;
- Date myEndDate = null;
boolean myLookUp = false;
Calendar start = new GregorianCalendar(calendar.get(Calendar.YEAR),
calendar.get(Calendar.MONTH),
calendar.getActualMinimum(Calendar.DAY_OF_MONTH));
- myStartDate = start.getTime();
+ Date myStartDate = start.getTime();
Calendar end = new GregorianCalendar(calendar.get(Calendar.YEAR),
calendar.get(Calendar.MONTH),
calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
- myEndDate = end.getTime();
+ Date myEndDate = end.getTime();
- myOutFile = new StringBuffer(outputLogDirectory);
+ StringBuilder myOutFile = new StringBuilder(outputLogDirectory);
myOutFile.append(outputPrefix);
myOutFile.append(calendar.get(Calendar.YEAR));
myOutFile.append("-");
@@ -211,12 +204,11 @@ public class CreateStatReport {
String myLogDir = null;
String myFileTemplate = null;
String myConfigFile = null;
- StringBuffer myOutFile = null;
Date myStartDate = null;
Date myEndDate = null;
boolean myLookUp = false;
- myOutFile = new StringBuffer(outputLogDirectory);
+ StringBuilder myOutFile = new StringBuilder(outputLogDirectory);
myOutFile.append(outputPrefix);
myOutFile.append(calendar.get(Calendar.YEAR));
myOutFile.append("-");
@@ -245,9 +237,6 @@ public class CreateStatReport {
String myLogDir = null;
String myFileTemplate = null;
String myConfigFile = null;
- StringBuffer myOutFile = null;
- Date myStartDate = null;
- Date myEndDate = null;
boolean myLookUp = false;
Calendar reportEndDate = new GregorianCalendar(calendar.get(Calendar.YEAR),
@@ -260,14 +249,14 @@ public class CreateStatReport {
Calendar start = new GregorianCalendar(currentMonth.get(Calendar.YEAR),
currentMonth.get(Calendar.MONTH),
currentMonth.getActualMinimum(Calendar.DAY_OF_MONTH));
- myStartDate = start.getTime();
+ Date myStartDate = start.getTime();
Calendar end = new GregorianCalendar(currentMonth.get(Calendar.YEAR),
currentMonth.get(Calendar.MONTH),
currentMonth.getActualMaximum(Calendar.DAY_OF_MONTH));
- myEndDate = end.getTime();
+ Date myEndDate = end.getTime();
- myOutFile = new StringBuffer(outputLogDirectory);
+ StringBuilder myOutFile = new StringBuilder(outputLogDirectory);
myOutFile.append(outputPrefix);
myOutFile.append(currentMonth.get(Calendar.YEAR));
myOutFile.append("-");
@@ -293,11 +282,9 @@ public class CreateStatReport {
String outputPrefix = "report-general-";
String myFormat = "html";
- StringBuffer myInput = null;
- StringBuffer myOutput = null;
String myMap = null;
- myInput = new StringBuffer(outputLogDirectory);
+ StringBuilder myInput = new StringBuilder(outputLogDirectory);
myInput.append(inputPrefix);
myInput.append(calendar.get(Calendar.YEAR));
myInput.append("-");
@@ -306,7 +293,7 @@ public class CreateStatReport {
myInput.append(calendar.get(Calendar.DAY_OF_MONTH));
myInput.append(outputSuffix);
- myOutput = new StringBuffer(outputReportDirectory);
+ StringBuilder myOutput = new StringBuilder(outputReportDirectory);
myOutput.append(outputPrefix);
myOutput.append(calendar.get(Calendar.YEAR));
myOutput.append("-");
@@ -332,8 +319,6 @@ public class CreateStatReport {
String outputPrefix = "report-";
String myFormat = "html";
- StringBuffer myInput = null;
- StringBuffer myOutput = null;
String myMap = null;
Calendar reportEndDate = new GregorianCalendar(calendar.get(Calendar.YEAR),
@@ -344,14 +329,14 @@ public class CreateStatReport {
while (currentMonth.before(reportEndDate)) {
- myInput = new StringBuffer(outputLogDirectory);
+ StringBuilder myInput = new StringBuilder(outputLogDirectory);
myInput.append(inputPrefix);
myInput.append(currentMonth.get(Calendar.YEAR));
myInput.append("-");
myInput.append(currentMonth.get(Calendar.MONTH) + 1);
myInput.append(outputSuffix);
- myOutput = new StringBuffer(outputReportDirectory);
+ StringBuilder myOutput = new StringBuilder(outputReportDirectory);
myOutput.append(outputPrefix);
myOutput.append(currentMonth.get(Calendar.YEAR));
myOutput.append("-");
@@ -376,18 +361,16 @@ public class CreateStatReport {
String outputPrefix = "report-";
String myFormat = "html";
- StringBuffer myInput = null;
- StringBuffer myOutput = null;
String myMap = null;
- myInput = new StringBuffer(outputLogDirectory);
+ StringBuilder myInput = new StringBuilder(outputLogDirectory);
myInput.append(inputPrefix);
myInput.append(calendar.get(Calendar.YEAR));
myInput.append("-");
myInput.append(calendar.get(Calendar.MONTH) + 1);
myInput.append(outputSuffix);
- myOutput = new StringBuffer(outputReportDirectory);
+ StringBuilder myOutput = new StringBuilder(outputReportDirectory);
myOutput.append(outputPrefix);
myOutput.append(calendar.get(Calendar.YEAR));
myOutput.append("-");
diff --git a/dspace-api/src/main/java/org/dspace/app/util/WebApp.java b/dspace-api/src/main/java/org/dspace/app/util/WebApp.java
index 7cd2bd8fea..2f42c1459f 100644
--- a/dspace-api/src/main/java/org/dspace/app/util/WebApp.java
+++ b/dspace-api/src/main/java/org/dspace/app/util/WebApp.java
@@ -58,6 +58,7 @@ public class WebApp implements ReloadableEntity {
}
+ @Override
public Integer getID() {
return id;
}
diff --git a/dspace-api/src/main/java/org/dspace/app/util/XMLUtils.java b/dspace-api/src/main/java/org/dspace/app/util/XMLUtils.java
index 884b2a6a92..c39d0d26fd 100644
--- a/dspace-api/src/main/java/org/dspace/app/util/XMLUtils.java
+++ b/dspace-api/src/main/java/org/dspace/app/util/XMLUtils.java
@@ -8,7 +8,6 @@
package org.dspace.app.util;
import java.util.ArrayList;
-import java.util.LinkedList;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
@@ -29,13 +28,13 @@ public class XMLUtils {
/**
* @param dataRoot the starting node
- * @param name the name of the subelement to find
+ * @param name the tag name of the child element to find.
* @return the list of all DOM Element with the provided name direct child
* of the starting node
*/
public static List getElementList(Element dataRoot, String name) {
NodeList list = dataRoot.getElementsByTagName(name);
- List listElements = new ArrayList();
+ List listElements = new ArrayList<>();
for (int i = 0; i < list.getLength(); i++) {
Element item = (Element) list.item(i);
if (item.getParentNode().equals(dataRoot)) {
@@ -105,7 +104,7 @@ public class XMLUtils {
/**
* @param rootElement the starting node
- * @param subElementName the name of the subelement to find
+ * @param subElementName the tag name of the child element to find.
* @return a list of string including all the text contents of the sub
* element with the specified name. If there are not sub element
* with the supplied name the method will return null
@@ -121,7 +120,7 @@ public class XMLUtils {
return null;
}
- List result = new LinkedList();
+ List result = new ArrayList<>();
for (Element el : subElements) {
if (StringUtils.isNotBlank(el.getTextContent())) {
result.add(el.getTextContent().trim());
@@ -152,7 +151,7 @@ public class XMLUtils {
return null;
}
- List result = new LinkedList();
+ List result = new ArrayList<>();
for (Element el : subElements) {
String[] tmp = new String[fieldsName.length];
for (int idx = 0; idx < fieldsName.length; idx++) {
diff --git a/dspace-api/src/main/java/org/dspace/authenticate/PasswordAuthentication.java b/dspace-api/src/main/java/org/dspace/authenticate/PasswordAuthentication.java
index 86cfb50c5f..045e0421ae 100644
--- a/dspace-api/src/main/java/org/dspace/authenticate/PasswordAuthentication.java
+++ b/dspace-api/src/main/java/org/dspace/authenticate/PasswordAuthentication.java
@@ -41,7 +41,6 @@ import org.dspace.services.factory.DSpaceServicesFactory;
* Basic Auth username and password to the AuthenticationManager
.
*
* @author Larry Stone
- * @version $Revision$
*/
public class PasswordAuthentication
implements AuthenticationMethod {
@@ -49,7 +48,7 @@ public class PasswordAuthentication
/**
* log4j category
*/
- private static Logger log = org.apache.logging.log4j.LogManager.getLogger(PasswordAuthentication.class);
+ private static final Logger log = org.apache.logging.log4j.LogManager.getLogger(PasswordAuthentication.class);
/**
@@ -142,7 +141,7 @@ public class PasswordAuthentication
.toString())) {
String groupName = DSpaceServicesFactory.getInstance().getConfigurationService()
.getProperty("authentication-password.login.specialgroup");
- if ((groupName != null) && (!groupName.trim().equals(""))) {
+ if ((groupName != null) && !groupName.trim().isEmpty()) {
Group specialGroup = EPersonServiceFactory.getInstance().getGroupService()
.findByName(context, groupName);
if (specialGroup == null) {
@@ -195,9 +194,8 @@ public class PasswordAuthentication
HttpServletRequest request)
throws SQLException {
if (username != null && password != null) {
- EPerson eperson = null;
log.info(LogManager.getHeader(context, "authenticate", "attempting password auth of user=" + username));
- eperson = EPersonServiceFactory.getInstance().getEPersonService()
+ EPerson eperson = EPersonServiceFactory.getInstance().getEPersonService()
.findByEmail(context, username.toLowerCase());
if (eperson == null) {
diff --git a/dspace-api/src/main/java/org/dspace/authorize/AuthorizeServiceImpl.java b/dspace-api/src/main/java/org/dspace/authorize/AuthorizeServiceImpl.java
index eb7d60d84c..3837ceb7bd 100644
--- a/dspace-api/src/main/java/org/dspace/authorize/AuthorizeServiceImpl.java
+++ b/dspace-api/src/main/java/org/dspace/authorize/AuthorizeServiceImpl.java
@@ -11,7 +11,6 @@ import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
-import java.util.LinkedList;
import java.util.List;
import java.util.UUID;
@@ -228,7 +227,7 @@ public class AuthorizeServiceImpl implements AuthorizeService {
// If authorization was given before and cached
Boolean cachedResult = c.getCachedAuthorizationResult(o, action, e);
if (cachedResult != null) {
- return cachedResult.booleanValue();
+ return cachedResult;
}
// is eperson set? if not, userToCheck = null (anonymous)
@@ -293,7 +292,7 @@ public class AuthorizeServiceImpl implements AuthorizeService {
}
if ((rp.getGroup() != null)
- && (groupService.isMember(c, e, rp.getGroup()))) {
+ && groupService.isMember(c, e, rp.getGroup())) {
// group was set, and eperson is a member
// of that group
c.cacheAuthorizedAction(o, action, e, true, rp);
@@ -351,7 +350,7 @@ public class AuthorizeServiceImpl implements AuthorizeService {
Boolean cachedResult = c.getCachedAuthorizationResult(o, Constants.ADMIN, e);
if (cachedResult != null) {
- return cachedResult.booleanValue();
+ return cachedResult;
}
//
@@ -368,7 +367,7 @@ public class AuthorizeServiceImpl implements AuthorizeService {
}
if ((rp.getGroup() != null)
- && (groupService.isMember(c, e, rp.getGroup()))) {
+ && groupService.isMember(c, e, rp.getGroup())) {
// group was set, and eperson is a member
// of that group
c.cacheAuthorizedAction(o, Constants.ADMIN, e, true, rp);
@@ -428,6 +427,7 @@ public class AuthorizeServiceImpl implements AuthorizeService {
}
}
+ @Override
public boolean isCommunityAdmin(Context c) throws SQLException {
EPerson e = c.getCurrentUser();
return isCommunityAdmin(c, e);
@@ -448,6 +448,7 @@ public class AuthorizeServiceImpl implements AuthorizeService {
return false;
}
+ @Override
public boolean isCollectionAdmin(Context c) throws SQLException {
EPerson e = c.getCurrentUser();
return isCollectionAdmin(c, e);
@@ -527,7 +528,7 @@ public class AuthorizeServiceImpl implements AuthorizeService {
List policies = getPolicies(c, src);
//Only inherit non-ADMIN policies (since ADMIN policies are automatically inherited)
- List nonAdminPolicies = new ArrayList();
+ List nonAdminPolicies = new ArrayList<>();
for (ResourcePolicy rp : policies) {
if (rp.getAction() != Constants.ADMIN) {
nonAdminPolicies.add(rp);
@@ -550,7 +551,7 @@ public class AuthorizeServiceImpl implements AuthorizeService {
public void addPolicies(Context c, List policies, DSpaceObject dest)
throws SQLException, AuthorizeException {
// now add them to the destination object
- List newPolicies = new LinkedList<>();
+ List newPolicies = new ArrayList<>(policies.size());
for (ResourcePolicy srp : policies) {
ResourcePolicy rp = resourcePolicyService.create(c);
@@ -625,7 +626,7 @@ public class AuthorizeServiceImpl implements AuthorizeService {
int actionID) throws java.sql.SQLException {
List policies = getPoliciesActionFilter(c, o, actionID);
- List groups = new ArrayList();
+ List groups = new ArrayList<>();
for (ResourcePolicy resourcePolicy : policies) {
if (resourcePolicy.getGroup() != null && resourcePolicyService.isDateValid(resourcePolicy)) {
groups.add(resourcePolicy.getGroup());
diff --git a/dspace-api/src/main/java/org/dspace/checker/MostRecentChecksum.java b/dspace-api/src/main/java/org/dspace/checker/MostRecentChecksum.java
index 5962d19f68..eff8a8be1c 100644
--- a/dspace-api/src/main/java/org/dspace/checker/MostRecentChecksum.java
+++ b/dspace-api/src/main/java/org/dspace/checker/MostRecentChecksum.java
@@ -170,7 +170,7 @@ public class MostRecentChecksum implements Serializable {
return true;
}
- if (o == null || getClass() != o.getClass()) {
+ if (o == null || !(o instanceof MostRecentChecksum)) {
return false;
}
diff --git a/dspace-api/src/main/java/org/dspace/checker/ResultsLogger.java b/dspace-api/src/main/java/org/dspace/checker/ResultsLogger.java
index 358d0c4018..f95778c4a8 100644
--- a/dspace-api/src/main/java/org/dspace/checker/ResultsLogger.java
+++ b/dspace-api/src/main/java/org/dspace/checker/ResultsLogger.java
@@ -109,7 +109,7 @@ public class ResultsLogger implements ChecksumResultsCollector {
"unknown"));
LOG.info(msg("new-checksum") + ": " + info.getCurrentChecksum());
LOG.info(msg("checksum-comparison-result") + ": "
- + (info.getChecksumResult().getResultCode()));
+ + info.getChecksumResult().getResultCode());
LOG.info("\n\n");
}
}
diff --git a/dspace-api/src/main/java/org/dspace/content/BitstreamFormat.java b/dspace-api/src/main/java/org/dspace/content/BitstreamFormat.java
index 5cf787ffd5..6d64ee3073 100644
--- a/dspace-api/src/main/java/org/dspace/content/BitstreamFormat.java
+++ b/dspace-api/src/main/java/org/dspace/content/BitstreamFormat.java
@@ -9,7 +9,7 @@ package org.dspace.content;
import java.io.Serializable;
import java.sql.SQLException;
-import java.util.LinkedList;
+import java.util.ArrayList;
import java.util.List;
import javax.persistence.CollectionTable;
import javax.persistence.Column;
@@ -111,7 +111,7 @@ public class BitstreamFormat implements Serializable, ReloadableEntity
* {@link org.dspace.content.service.BitstreamFormatService#create(Context)}
*/
protected BitstreamFormat() {
- fileExtensions = new LinkedList<>();
+ fileExtensions = new ArrayList<>();
}
/**
diff --git a/dspace-api/src/main/java/org/dspace/content/Bundle.java b/dspace-api/src/main/java/org/dspace/content/Bundle.java
index 88f21c2c2f..6c62c3dc91 100644
--- a/dspace-api/src/main/java/org/dspace/content/Bundle.java
+++ b/dspace-api/src/main/java/org/dspace/content/Bundle.java
@@ -9,7 +9,6 @@ package org.dspace.content;
import java.sql.SQLException;
import java.util.ArrayList;
-import java.util.LinkedList;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
@@ -138,7 +137,7 @@ public class Bundle extends DSpaceObject implements DSpaceObjectLegacySupport {
* @return the bitstreams
*/
public List getBitstreams() {
- List bitstreamList = new LinkedList<>(this.bitstreams);
+ List bitstreamList = new ArrayList<>(this.bitstreams);
return bitstreamList;
}
@@ -191,7 +190,7 @@ public class Bundle extends DSpaceObject implements DSpaceObjectLegacySupport {
@Override
public boolean equals(Object obj) {
- if (obj == null) {
+ if (obj == null || !(obj instanceof Bundle)) {
return false;
}
Class> objClass = HibernateProxyHelper.getClassWithoutInitializingProxy(obj);
@@ -202,10 +201,7 @@ public class Bundle extends DSpaceObject implements DSpaceObjectLegacySupport {
if (this.getType() != other.getType()) {
return false;
}
- if (!this.getID().equals(other.getID())) {
- return false;
- }
- return true;
+ return this.getID().equals(other.getID());
}
@Override
diff --git a/dspace-api/src/main/java/org/dspace/content/DCDate.java b/dspace-api/src/main/java/org/dspace/content/DCDate.java
index 47ed805d4a..d58aff7b1e 100644
--- a/dspace-api/src/main/java/org/dspace/content/DCDate.java
+++ b/dspace-api/src/main/java/org/dspace/content/DCDate.java
@@ -34,8 +34,8 @@ import org.apache.logging.log4j.Logger;
* There are four levels of granularity, depending on how much date information
* is available: year, month, day, time.
*
- * Examples: 1994-05-03T15:30:24
,1995-10-04
,
- * 2001-10
,1975
+ * Examples: {@code 1994-05-03T15:30:24}, {@code 1995-10-04},
+ * {@code 2001-10}, {@code 1975}
*
* @author Robert Tansley
* @author Larry Stone
@@ -261,7 +261,7 @@ public class DCDate {
* @return the year
*/
public int getYear() {
- return (!withinGranularity(DateGran.YEAR)) ? -1 : localCalendar.get(Calendar.YEAR);
+ return !withinGranularity(DateGran.YEAR) ? -1 : localCalendar.get(Calendar.YEAR);
}
/**
@@ -270,7 +270,7 @@ public class DCDate {
* @return the month
*/
public int getMonth() {
- return (!withinGranularity(DateGran.MONTH)) ? -1 : localCalendar.get(Calendar.MONTH) + 1;
+ return !withinGranularity(DateGran.MONTH) ? -1 : localCalendar.get(Calendar.MONTH) + 1;
}
/**
@@ -279,7 +279,7 @@ public class DCDate {
* @return the day
*/
public int getDay() {
- return (!withinGranularity(DateGran.DAY)) ? -1 : localCalendar.get(Calendar.DAY_OF_MONTH);
+ return !withinGranularity(DateGran.DAY) ? -1 : localCalendar.get(Calendar.DAY_OF_MONTH);
}
/**
@@ -288,7 +288,7 @@ public class DCDate {
* @return the hour
*/
public int getHour() {
- return (!withinGranularity(DateGran.TIME)) ? -1 : localCalendar.get(Calendar.HOUR_OF_DAY);
+ return !withinGranularity(DateGran.TIME) ? -1 : localCalendar.get(Calendar.HOUR_OF_DAY);
}
/**
@@ -297,7 +297,7 @@ public class DCDate {
* @return the minute
*/
public int getMinute() {
- return (!withinGranularity(DateGran.TIME)) ? -1 : localCalendar.get(Calendar.MINUTE);
+ return !withinGranularity(DateGran.TIME) ? -1 : localCalendar.get(Calendar.MINUTE);
}
/**
@@ -306,7 +306,7 @@ public class DCDate {
* @return the second
*/
public int getSecond() {
- return (!withinGranularity(DateGran.TIME)) ? -1 : localCalendar.get(Calendar.SECOND);
+ return !withinGranularity(DateGran.TIME) ? -1 : localCalendar.get(Calendar.SECOND);
}
/**
@@ -315,7 +315,7 @@ public class DCDate {
* @return the year
*/
public int getYearUTC() {
- return (!withinGranularity(DateGran.YEAR)) ? -1 : calendar.get(Calendar.YEAR);
+ return !withinGranularity(DateGran.YEAR) ? -1 : calendar.get(Calendar.YEAR);
}
/**
@@ -324,7 +324,7 @@ public class DCDate {
* @return the month
*/
public int getMonthUTC() {
- return (!withinGranularity(DateGran.MONTH)) ? -1 : calendar.get(Calendar.MONTH) + 1;
+ return !withinGranularity(DateGran.MONTH) ? -1 : calendar.get(Calendar.MONTH) + 1;
}
/**
@@ -333,7 +333,7 @@ public class DCDate {
* @return the day
*/
public int getDayUTC() {
- return (!withinGranularity(DateGran.DAY)) ? -1 : calendar.get(Calendar.DAY_OF_MONTH);
+ return !withinGranularity(DateGran.DAY) ? -1 : calendar.get(Calendar.DAY_OF_MONTH);
}
/**
@@ -342,7 +342,7 @@ public class DCDate {
* @return the hour
*/
public int getHourUTC() {
- return (!withinGranularity(DateGran.TIME)) ? -1 : calendar.get(Calendar.HOUR_OF_DAY);
+ return !withinGranularity(DateGran.TIME) ? -1 : calendar.get(Calendar.HOUR_OF_DAY);
}
/**
@@ -351,7 +351,7 @@ public class DCDate {
* @return the minute
*/
public int getMinuteUTC() {
- return (!withinGranularity(DateGran.TIME)) ? -1 : calendar.get(Calendar.MINUTE);
+ return !withinGranularity(DateGran.TIME) ? -1 : calendar.get(Calendar.MINUTE);
}
/**
@@ -360,10 +360,9 @@ public class DCDate {
* @return the second
*/
public int getSecondUTC() {
- return (!withinGranularity(DateGran.TIME)) ? -1 : calendar.get(Calendar.SECOND);
+ return !withinGranularity(DateGran.TIME) ? -1 : calendar.get(Calendar.SECOND);
}
-
/**
* Get the date as a string to put back in the Dublin Core. Use the UTC/GMT calendar version.
*
diff --git a/dspace-api/src/main/java/org/dspace/content/DCSeriesNumber.java b/dspace-api/src/main/java/org/dspace/content/DCSeriesNumber.java
index bec81494be..37b9fb7d7d 100644
--- a/dspace-api/src/main/java/org/dspace/content/DCSeriesNumber.java
+++ b/dspace-api/src/main/java/org/dspace/content/DCSeriesNumber.java
@@ -8,10 +8,9 @@
package org.dspace.content;
/**
- * Series and report number, as stored in relation.ispartofseries
+ * Series and report number, as stored in {@code relation.ispartofseries}.
*
* @author Robert Tansley
- * @version $Id$
*/
public class DCSeriesNumber {
/**
@@ -70,6 +69,7 @@ public class DCSeriesNumber {
*
* @return the series and number as they should be stored in the DB
*/
+ @Override
public String toString() {
if (series == null) {
return (null);
diff --git a/dspace-api/src/main/java/org/dspace/content/DSpaceObjectServiceImpl.java b/dspace-api/src/main/java/org/dspace/content/DSpaceObjectServiceImpl.java
index 90893e030d..961e59d264 100644
--- a/dspace-api/src/main/java/org/dspace/content/DSpaceObjectServiceImpl.java
+++ b/dspace-api/src/main/java/org/dspace/content/DSpaceObjectServiceImpl.java
@@ -13,7 +13,6 @@ import java.util.Arrays;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Iterator;
-import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.StringTokenizer;
@@ -450,7 +449,7 @@ public abstract class DSpaceObjectServiceImpl implements
clearMetadata(context, dso, field.schema, field.element, field.qualifier,
language);
- String newValueLanguage = (Item.ANY.equals(language)) ? null : language;
+ String newValueLanguage = Item.ANY.equals(language) ? null : language;
addMetadata(context, dso, field.schema, field.element, field.qualifier,
newValueLanguage, value);
dso.setMetadataModified();
@@ -595,7 +594,7 @@ public abstract class DSpaceObjectServiceImpl implements
*/
// A map created to store the latest place for each metadata field
Map fieldToLastPlace = new HashMap<>();
- List metadataValues = new LinkedList<>();
+ List metadataValues;
if (dso.getType() == Constants.ITEM) {
metadataValues = getMetadata(dso, Item.ANY, Item.ANY, Item.ANY, Item.ANY);
} else {
@@ -628,7 +627,7 @@ public abstract class DSpaceObjectServiceImpl implements
String authority = metadataValue.getAuthority();
String relationshipId = StringUtils.split(authority, "::")[1];
Relationship relationship = relationshipService.find(context, Integer.parseInt(relationshipId));
- if (relationship.getLeftItem() == (Item) dso) {
+ if (relationship.getLeftItem().equals((Item) dso)) {
relationship.setLeftPlace(mvPlace);
} else {
relationship.setRightPlace(mvPlace);
diff --git a/dspace-api/src/main/java/org/dspace/content/EntityType.java b/dspace-api/src/main/java/org/dspace/content/EntityType.java
index d44ec5a35d..20ab758a0b 100644
--- a/dspace-api/src/main/java/org/dspace/content/EntityType.java
+++ b/dspace-api/src/main/java/org/dspace/content/EntityType.java
@@ -78,6 +78,7 @@ public class EntityType implements ReloadableEntity {
*
* @return The ID for this EntityType
*/
+ @Override
public Integer getID() {
return id;
}
@@ -87,6 +88,7 @@ public class EntityType implements ReloadableEntity {
* @param obj object to be compared
* @return
*/
+ @Override
public boolean equals(Object obj) {
if (!(obj instanceof EntityType)) {
return false;
@@ -97,10 +99,7 @@ public class EntityType implements ReloadableEntity {
return false;
}
- if (!StringUtils.equals(this.getLabel(), entityType.getLabel())) {
- return false;
- }
- return true;
+ return StringUtils.equals(this.getLabel(), entityType.getLabel());
}
/**
diff --git a/dspace-api/src/main/java/org/dspace/content/Relationship.java b/dspace-api/src/main/java/org/dspace/content/Relationship.java
index 3a2aad5bdf..f4bcf78a79 100644
--- a/dspace-api/src/main/java/org/dspace/content/Relationship.java
+++ b/dspace-api/src/main/java/org/dspace/content/Relationship.java
@@ -218,6 +218,7 @@ public class Relationship implements ReloadableEntity {
* Standard getter for the ID for this Relationship
* @return The ID of this relationship
*/
+ @Override
public Integer getID() {
return id;
}
diff --git a/dspace-api/src/main/java/org/dspace/content/RelationshipType.java b/dspace-api/src/main/java/org/dspace/content/RelationshipType.java
index 5f16870bc6..676b7fd2a8 100644
--- a/dspace-api/src/main/java/org/dspace/content/RelationshipType.java
+++ b/dspace-api/src/main/java/org/dspace/content/RelationshipType.java
@@ -201,7 +201,7 @@ public class RelationshipType implements ReloadableEntity {
/**
* Standard setter for the leftMinCardinality Integer for this RelationshipType
- * @param leftMinCardinality The leftMinCardinality Integer that this RelationshipType should recieve
+ * @param leftMinCardinality The leftMinCardinality Integer that this RelationshipType should receive
*/
public void setLeftMinCardinality(Integer leftMinCardinality) {
this.leftMinCardinality = leftMinCardinality;
@@ -217,7 +217,7 @@ public class RelationshipType implements ReloadableEntity {
/**
* Standard setter for the leftMaxCardinality Integer for this RelationshipType
- * @param leftMaxCardinality The leftMaxCardinality Integer that this RelationshipType should recieve
+ * @param leftMaxCardinality The leftMaxCardinality Integer that this RelationshipType should receive
*/
public void setLeftMaxCardinality(Integer leftMaxCardinality) {
this.leftMaxCardinality = leftMaxCardinality;
@@ -233,7 +233,7 @@ public class RelationshipType implements ReloadableEntity {
/**
* Standard setter for the rightMinCardinality Integer for this RelationshipType
- * @param rightMinCardinality The rightMinCardinality Integer that this RelationshipType should recieve
+ * @param rightMinCardinality The rightMinCardinality Integer that this RelationshipType should receive
*/
public void setRightMinCardinality(Integer rightMinCardinality) {
this.rightMinCardinality = rightMinCardinality;
@@ -249,7 +249,7 @@ public class RelationshipType implements ReloadableEntity {
/**
* Standard setter for the rightMaxCardinality Integer for this RelationshipType
- * @param rightMaxCardinality The rightMaxCardinality Integer that this RelationshipType should recieve
+ * @param rightMaxCardinality The rightMaxCardinality Integer that this RelationshipType should receive
*/
public void setRightMaxCardinality(Integer rightMaxCardinality) {
this.rightMaxCardinality = rightMaxCardinality;
@@ -291,6 +291,7 @@ public class RelationshipType implements ReloadableEntity {
* Standard getter for the ID of this RelationshipType
* @return The ID of this RelationshipType
*/
+ @Override
public Integer getID() {
return id;
}
diff --git a/dspace-api/src/main/java/org/dspace/content/dao/impl/MetadataSchemaDAOImpl.java b/dspace-api/src/main/java/org/dspace/content/dao/impl/MetadataSchemaDAOImpl.java
index 80198a1e89..71eb487b83 100644
--- a/dspace-api/src/main/java/org/dspace/content/dao/impl/MetadataSchemaDAOImpl.java
+++ b/dspace-api/src/main/java/org/dspace/content/dao/impl/MetadataSchemaDAOImpl.java
@@ -8,7 +8,7 @@
package org.dspace.content.dao.impl;
import java.sql.SQLException;
-import java.util.LinkedList;
+import java.util.ArrayList;
import java.util.List;
import javax.persistence.Query;
import javax.persistence.criteria.CriteriaBuilder;
@@ -63,7 +63,7 @@ public class MetadataSchemaDAOImpl extends AbstractHibernateDAO
Root metadataSchemaRoot = criteriaQuery.from(MetadataSchema.class);
criteriaQuery.select(metadataSchemaRoot);
- List orderList = new LinkedList<>();
+ List orderList = new ArrayList<>();
orderList.add(criteriaBuilder.asc(metadataSchemaRoot.get(MetadataSchema_.id)));
criteriaQuery.orderBy(orderList);
diff --git a/dspace-api/src/main/java/org/dspace/content/packager/PackageException.java b/dspace-api/src/main/java/org/dspace/content/packager/PackageException.java
index 58f2621afb..13c705c932 100644
--- a/dspace-api/src/main/java/org/dspace/content/packager/PackageException.java
+++ b/dspace-api/src/main/java/org/dspace/content/packager/PackageException.java
@@ -19,7 +19,6 @@ import org.apache.logging.log4j.Logger;
* exceptions. This class is intended for declarations and catch clauses.
*
* @author Larry Stone
- * @version $Revision$
*/
public class PackageException extends Exception {
/**
@@ -76,10 +75,4 @@ public class PackageException extends Exception {
log.error(sw.toString());
}
}
-
- public String toString() {
- String base = getClass().getName() + ": " + getMessage();
- return (getCause() == null) ? base :
- base + ", Reason: " + getCause().toString();
- }
}
diff --git a/dspace-api/src/main/java/org/dspace/content/packager/PackageParameters.java b/dspace-api/src/main/java/org/dspace/content/packager/PackageParameters.java
index 1bd68bea26..b472a52c3b 100644
--- a/dspace-api/src/main/java/org/dspace/content/packager/PackageParameters.java
+++ b/dspace-api/src/main/java/org/dspace/content/packager/PackageParameters.java
@@ -57,7 +57,7 @@ public class PackageParameters extends Properties {
} else if (v.length == 1) {
result.setProperty(name, v[0]);
} else {
- StringBuffer sb = new StringBuffer();
+ StringBuilder sb = new StringBuilder();
for (int i = 0; i < v.length; ++i) {
if (i > 0) {
sb.append(SEPARATOR);
diff --git a/dspace-api/src/main/java/org/dspace/content/virtual/UUIDValue.java b/dspace-api/src/main/java/org/dspace/content/virtual/UUIDValue.java
index 252faf019c..0b08cc309f 100644
--- a/dspace-api/src/main/java/org/dspace/content/virtual/UUIDValue.java
+++ b/dspace-api/src/main/java/org/dspace/content/virtual/UUIDValue.java
@@ -8,7 +8,6 @@
package org.dspace.content.virtual;
import java.sql.SQLException;
-import java.util.LinkedList;
import java.util.List;
import org.dspace.content.Item;
@@ -24,9 +23,7 @@ public class UUIDValue implements VirtualMetadataConfiguration {
@Override
public List getValues(Context context, Item item) throws SQLException {
- List list = new LinkedList<>();
- list.add(String.valueOf(item.getID()));
- return list;
+ return List.of(String.valueOf(item.getID()));
}
@Override
diff --git a/dspace-api/src/main/java/org/dspace/core/Context.java b/dspace-api/src/main/java/org/dspace/core/Context.java
index 2181626250..be52595c09 100644
--- a/dspace-api/src/main/java/org/dspace/core/Context.java
+++ b/dspace-api/src/main/java/org/dspace/core/Context.java
@@ -8,13 +8,13 @@
package org.dspace.core;
import java.sql.SQLException;
+import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.EmptyStackException;
import java.util.LinkedList;
import java.util.List;
import java.util.Locale;
import java.util.Set;
-import java.util.Stack;
import java.util.UUID;
import java.util.concurrent.atomic.AtomicBoolean;
@@ -79,13 +79,13 @@ public class Context implements AutoCloseable {
/**
* A stack with the history of authorisation system check modify
*/
- private Stack authStateChangeHistory;
+ private ArrayDeque authStateChangeHistory;
/**
* A stack with the name of the caller class that modify authorisation
* system check
*/
- private Stack authStateClassCallHistory;
+ private ArrayDeque authStateClassCallHistory;
/**
* Group IDs of special groups user is a member of
@@ -115,7 +115,7 @@ public class Context implements AutoCloseable {
/**
* Cache that is only used the context is in READ_ONLY mode
*/
- private ContextReadOnlyCache readOnlyCache = new ContextReadOnlyCache();
+ private final ContextReadOnlyCache readOnlyCache = new ContextReadOnlyCache();
protected EventService eventService;
@@ -183,8 +183,8 @@ public class Context implements AutoCloseable {
specialGroups = new ArrayList<>();
- authStateChangeHistory = new Stack<>();
- authStateClassCallHistory = new Stack<>();
+ authStateChangeHistory = new ArrayDeque<>();
+ authStateClassCallHistory = new ArrayDeque<>();
setMode(this.mode);
}
@@ -336,7 +336,7 @@ public class Context implements AutoCloseable {
+ previousCaller));
}
}
- ignoreAuth = previousState.booleanValue();
+ ignoreAuth = previousState;
}
/**
@@ -488,7 +488,7 @@ public class Context implements AutoCloseable {
throw new IllegalStateException("Attempt to mutate object in read-only context");
}
if (events == null) {
- events = new LinkedList();
+ events = new LinkedList<>();
}
events.add(event);
@@ -622,11 +622,7 @@ public class Context implements AutoCloseable {
* @return true if member
*/
public boolean inSpecialGroup(UUID groupID) {
- if (specialGroups.contains(groupID)) {
- return true;
- }
-
- return false;
+ return specialGroups.contains(groupID);
}
/**
@@ -636,7 +632,7 @@ public class Context implements AutoCloseable {
* @throws SQLException if database error
*/
public List getSpecialGroups() throws SQLException {
- List myGroups = new ArrayList();
+ List myGroups = new ArrayList<>();
for (UUID groupId : specialGroups) {
myGroups.add(EPersonServiceFactory.getInstance().getGroupService().find(this, groupId));
}
@@ -661,7 +657,7 @@ public class Context implements AutoCloseable {
currentUserPreviousState = currentUser;
specialGroupsPreviousState = specialGroups;
- specialGroups = new ArrayList();
+ specialGroups = new ArrayList<>();
currentUser = newUser;
}
@@ -703,11 +699,13 @@ public class Context implements AutoCloseable {
/**
- * Returns the size of the cache of all object that have been read from the database so far. A larger number
- * means that more memory is consumed by the cache. This also has a negative impact on the query performance. In
- * that case you should consider uncaching entities when they are no longer needed (see
- * {@link Context#uncacheEntity(ReloadableEntity)} () uncacheEntity}).
+ * Returns the size of the cache of all object that have been read from the
+ * database so far. A larger number means that more memory is consumed by
+ * the cache. This also has a negative impact on the query performance. In
+ * that case you should consider uncaching entities when they are no longer
+ * needed (see {@link Context#uncacheEntity(ReloadableEntity)} () uncacheEntity}).
*
+ * @return cache size.
* @throws SQLException When connecting to the active cache fails.
*/
public long getCacheSize() throws SQLException {
diff --git a/dspace-api/src/main/java/org/dspace/core/I18nUtil.java b/dspace-api/src/main/java/org/dspace/core/I18nUtil.java
index 68db217f1e..8c101a8f05 100644
--- a/dspace-api/src/main/java/org/dspace/core/I18nUtil.java
+++ b/dspace-api/src/main/java/org/dspace/core/I18nUtil.java
@@ -320,11 +320,11 @@ public class I18nUtil {
fileType = "";
}
- if (!("".equals(locale.getCountry()))) {
+ if (!"".equals(locale.getCountry())) {
fileNameLC = fileName + "_" + locale.getLanguage() + "_"
+ locale.getCountry();
- if (!("".equals(locale.getVariant()))) {
+ if (!"".equals(locale.getVariant())) {
fileNameLCV = fileName + "_" + locale.getLanguage() + "_"
+ locale.getCountry() + "_" + locale.getVariant();
}
diff --git a/dspace-api/src/main/java/org/dspace/curate/FileTaskQueue.java b/dspace-api/src/main/java/org/dspace/curate/FileTaskQueue.java
index 979ade99a5..f603fa2e9a 100644
--- a/dspace-api/src/main/java/org/dspace/curate/FileTaskQueue.java
+++ b/dspace-api/src/main/java/org/dspace/curate/FileTaskQueue.java
@@ -13,16 +13,17 @@ import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
+import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
+import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.dspace.services.factory.DSpaceServicesFactory;
-
/**
* FileTaskQueue provides a TaskQueue implementation based on flat files
* for the queues and semaphores.
@@ -30,14 +31,16 @@ import org.dspace.services.factory.DSpaceServicesFactory;
* @author richardrodgers
*/
public class FileTaskQueue implements TaskQueue {
- private static Logger log = org.apache.logging.log4j.LogManager.getLogger(TaskQueue.class);
+ private static final Logger log = LogManager.getLogger(TaskQueue.class);
+
// base directory for curation task queues
protected String tqDir;
// ticket for queue readers
protected long readTicket = -1L;
+
// list of queues owned by reader
- protected List readList = new ArrayList();
+ protected List readList = new ArrayList<>();
public FileTaskQueue() {
tqDir = DSpaceServicesFactory.getInstance().getConfigurationService().getProperty("curate.taskqueue.dir");
@@ -72,7 +75,7 @@ public class FileTaskQueue implements TaskQueue {
BufferedWriter writer = null;
try {
File queue = new File(qDir, "queue" + Integer.toString(queueIdx));
- writer = new BufferedWriter(new FileWriter(queue, true));
+ writer = new BufferedWriter(new FileWriter(queue, StandardCharsets.UTF_8, true));
Iterator iter = entrySet.iterator();
while (iter.hasNext()) {
writer.write(iter.next().toString());
@@ -96,7 +99,7 @@ public class FileTaskQueue implements TaskQueue {
@Override
public synchronized Set dequeue(String queueName, long ticket)
throws IOException {
- Set entrySet = new HashSet();
+ Set entrySet = new HashSet<>();
if (readTicket == -1L) {
// hold the ticket & copy all Ids available, locking queues
// stop when no more queues or one found locked
@@ -113,8 +116,8 @@ public class FileTaskQueue implements TaskQueue {
// read contents from file
BufferedReader reader = null;
try {
- reader = new BufferedReader(new FileReader(queue));
- String entryStr = null;
+ reader = new BufferedReader(new FileReader(queue, StandardCharsets.UTF_8));
+ String entryStr;
while ((entryStr = reader.readLine()) != null) {
entryStr = entryStr.trim();
if (entryStr.length() > 0) {
diff --git a/dspace-api/src/main/java/org/dspace/curate/ResolvedTask.java b/dspace-api/src/main/java/org/dspace/curate/ResolvedTask.java
index 89e92609f0..0b05ab3e0f 100644
--- a/dspace-api/src/main/java/org/dspace/curate/ResolvedTask.java
+++ b/dspace-api/src/main/java/org/dspace/curate/ResolvedTask.java
@@ -24,7 +24,7 @@ public class ResolvedTask {
private CurationTask cTask;
private ScriptedTask sTask;
// local name of task
- private String taskName;
+ private final String taskName;
// annotation data
private boolean distributive = false;
private boolean mutative = false;
@@ -76,7 +76,7 @@ public class ResolvedTask {
* @throws IOException if error
*/
public int perform(DSpaceObject dso) throws IOException {
- return (unscripted()) ? cTask.perform(dso) : sTask.performDso(dso);
+ return unscripted() ? cTask.perform(dso) : sTask.performDso(dso);
}
/**
@@ -88,7 +88,7 @@ public class ResolvedTask {
* @throws IOException if error
*/
public int perform(Context ctx, String id) throws IOException {
- return (unscripted()) ? cTask.perform(ctx, id) : sTask.performId(ctx, id);
+ return unscripted() ? cTask.perform(ctx, id) : sTask.performId(ctx, id);
}
/**
diff --git a/dspace-api/src/main/java/org/dspace/discovery/DiscoverQuery.java b/dspace-api/src/main/java/org/dspace/discovery/DiscoverQuery.java
index d82779015f..f9ca9c2e9c 100644
--- a/dspace-api/src/main/java/org/dspace/discovery/DiscoverQuery.java
+++ b/dspace-api/src/main/java/org/dspace/discovery/DiscoverQuery.java
@@ -33,9 +33,9 @@ public class DiscoverQuery {
* Main attributes for the discovery query
**/
private String query;
- private List filterQueries;
+ private final List filterQueries;
private List dspaceObjectFilters = new ArrayList<>();
- private List fieldPresentQueries;
+ private final List fieldPresentQueries;
private boolean spellCheck;
private int start = 0;
@@ -55,36 +55,35 @@ public class DiscoverQuery {
/**
* Attributes required for the faceting of values
**/
- private List facetFields;
- private List facetQueries;
- private int facetLimit = -1;
+ private final List facetFields;
+ private final List facetQueries;
private int facetMinCount = -1;
private int facetOffset = 0;
- private Map hitHighlighting;
+ private final Map hitHighlighting;
/**
* Used when you want to search for a specific field value
**/
- private List searchFields;
+ private final List searchFields;
/**
* Misc attributes can be implementation dependent
**/
- private Map> properties;
+ private final Map> properties;
private String discoveryConfigurationName;
public DiscoverQuery() {
//Initialize all our lists
- this.filterQueries = new ArrayList();
- this.fieldPresentQueries = new ArrayList();
+ this.filterQueries = new ArrayList<>();
+ this.fieldPresentQueries = new ArrayList<>();
- this.facetFields = new ArrayList();
- this.facetQueries = new ArrayList();
- this.searchFields = new ArrayList();
- this.hitHighlighting = new HashMap();
+ this.facetFields = new ArrayList<>();
+ this.facetQueries = new ArrayList<>();
+ this.searchFields = new ArrayList<>();
+ this.hitHighlighting = new HashMap<>();
//Use a linked hashmap since sometimes insertion order might matter
- this.properties = new LinkedHashMap>();
+ this.properties = new LinkedHashMap<>();
}
@@ -309,7 +308,7 @@ public class DiscoverQuery {
public void addProperty(String property, String value) {
List toAddList = properties.get(property);
if (toAddList == null) {
- toAddList = new ArrayList();
+ toAddList = new ArrayList<>();
}
toAddList.add(value);
@@ -322,7 +321,7 @@ public class DiscoverQuery {
}
public List getHitHighlightingFields() {
- return new ArrayList(hitHighlighting.values());
+ return new ArrayList<>(hitHighlighting.values());
}
public void addHitHighlightingField(DiscoverHitHighlightingField hitHighlighting) {
@@ -368,7 +367,7 @@ public class DiscoverQuery {
private List buildFacetQueriesWithGap(int newestYear, int oldestYear, String dateFacet, int gap,
int topYear, int facetLimit) {
- List facetQueries = new LinkedList<>();
+ List facetQueries = new ArrayList<>();
for (int year = topYear; year > oldestYear && (facetQueries.size() < facetLimit); year -= gap) {
//Add a filter to remove the last year only if we aren't the last year
int bottomYear = year - gap;
@@ -392,7 +391,7 @@ public class DiscoverQuery {
}
private int getTopYear(int newestYear, int gap) {
- return (int) (Math.ceil((float) (newestYear) / gap) * gap);
+ return (int) (Math.ceil((float) newestYear / gap) * gap);
}
/**
diff --git a/dspace-api/src/main/java/org/dspace/discovery/FullTextContentStreams.java b/dspace-api/src/main/java/org/dspace/discovery/FullTextContentStreams.java
index b3ee42fca1..ee220e5a4f 100644
--- a/dspace-api/src/main/java/org/dspace/discovery/FullTextContentStreams.java
+++ b/dspace-api/src/main/java/org/dspace/discovery/FullTextContentStreams.java
@@ -179,6 +179,11 @@ public class FullTextContentStreams extends ContentStreamBase {
}
}
+ /**
+ * {@link Enumeration} is implemented because instances of this class are
+ * passed to a JDK class that requires this obsolete type.
+ */
+ @SuppressWarnings("JdkObsolete")
private static class FullTextEnumeration implements Enumeration {
private final Iterator fulltextIterator;
diff --git a/dspace-api/src/main/java/org/dspace/discovery/SolrServiceFileInfoPlugin.java b/dspace-api/src/main/java/org/dspace/discovery/SolrServiceFileInfoPlugin.java
index 3f5e765b0e..52e0043ff4 100644
--- a/dspace-api/src/main/java/org/dspace/discovery/SolrServiceFileInfoPlugin.java
+++ b/dspace-api/src/main/java/org/dspace/discovery/SolrServiceFileInfoPlugin.java
@@ -55,7 +55,7 @@ public class SolrServiceFileInfoPlugin implements SolrServiceIndexPlugin {
document.addField(SOLR_FIELD_NAME_FOR_FILENAMES, bitstream.getName());
String description = bitstream.getDescription();
- if ((description != null) && (!description.isEmpty())) {
+ if ((description != null) && !description.isEmpty()) {
document.addField(SOLR_FIELD_NAME_FOR_DESCRIPTIONS, description);
}
}
diff --git a/dspace-api/src/main/java/org/dspace/discovery/indexobject/AbstractIndexableObject.java b/dspace-api/src/main/java/org/dspace/discovery/indexobject/AbstractIndexableObject.java
index 90aafcbd30..21c9a66b9f 100644
--- a/dspace-api/src/main/java/org/dspace/discovery/indexobject/AbstractIndexableObject.java
+++ b/dspace-api/src/main/java/org/dspace/discovery/indexobject/AbstractIndexableObject.java
@@ -14,10 +14,13 @@ import org.dspace.discovery.IndexableObject;
/**
* This class exists in order to provide a default implementation for the equals and hashCode methods.
- * Since IndexableObjects can be made multiple times for the same underlying object, we needed a more finetuned
- * equals and hashcode methods. We're simply checking that the underlying objects are equal and generating the hashcode
- * for the underlying object. This way, we'll always get a proper result when calling equals or hashcode on an
- * IndexableObject because it'll depend on the underlying object
+ * Since IndexableObjects can be made multiple times for the same underlying
+ * object, we needed more finely-tuned {@link equals} and {@link hashCode} methods.
+ * We're simply checking that the underlying objects are equal and returning the
+ * hash-code for the underlying object. This way, we'll always get a proper
+ * result when calling {@link equals} or {@link hashCode} on an IndexableObject
+ * because it'll depend on the underlying object.
+ *
* @param Refers to the underlying entity that is linked to this object
* @param The type of ID that this entity uses
*/
@@ -30,7 +33,7 @@ public abstract class AbstractIndexableObject, PK
if (!(obj instanceof AbstractIndexableObject)) {
return false;
}
- IndexableDSpaceObject other = (IndexableDSpaceObject) obj;
+ AbstractIndexableObject other = (AbstractIndexableObject) obj;
return other.getIndexedObject().equals(getIndexedObject());
}
diff --git a/dspace-api/src/main/java/org/dspace/eperson/Subscription.java b/dspace-api/src/main/java/org/dspace/eperson/Subscription.java
index abe8ad481c..1719888ca8 100644
--- a/dspace-api/src/main/java/org/dspace/eperson/Subscription.java
+++ b/dspace-api/src/main/java/org/dspace/eperson/Subscription.java
@@ -53,6 +53,7 @@ public class Subscription implements ReloadableEntity {
}
+ @Override
public Integer getID() {
return id;
}
diff --git a/dspace-api/src/main/java/org/dspace/eperson/dao/impl/SubscriptionDAOImpl.java b/dspace-api/src/main/java/org/dspace/eperson/dao/impl/SubscriptionDAOImpl.java
index a90c5da5a1..40d031ac29 100644
--- a/dspace-api/src/main/java/org/dspace/eperson/dao/impl/SubscriptionDAOImpl.java
+++ b/dspace-api/src/main/java/org/dspace/eperson/dao/impl/SubscriptionDAOImpl.java
@@ -8,6 +8,7 @@
package org.dspace.eperson.dao.impl;
import java.sql.SQLException;
+import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import javax.persistence.Query;
@@ -97,7 +98,7 @@ public class SubscriptionDAOImpl extends AbstractHibernateDAO impl
Root subscriptionRoot = criteriaQuery.from(Subscription.class);
criteriaQuery.select(subscriptionRoot);
- List orderList = new LinkedList<>();
+ List orderList = new ArrayList<>(1);
orderList.add(criteriaBuilder.asc(subscriptionRoot.get(Subscription_.ePerson)));
criteriaQuery.orderBy(orderList);
diff --git a/dspace-api/src/main/java/org/dspace/external/OrcidRestConnector.java b/dspace-api/src/main/java/org/dspace/external/OrcidRestConnector.java
index c04f64f674..f6f5f6cfd9 100644
--- a/dspace-api/src/main/java/org/dspace/external/OrcidRestConnector.java
+++ b/dspace-api/src/main/java/org/dspace/external/OrcidRestConnector.java
@@ -8,6 +8,7 @@
package org.dspace.external;
import java.io.InputStream;
+import java.nio.charset.StandardCharsets;
import java.util.Scanner;
import org.apache.commons.lang3.StringUtils;
@@ -15,6 +16,7 @@ import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.HttpClientBuilder;
+import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
/**
@@ -28,9 +30,9 @@ public class OrcidRestConnector {
/**
* log4j logger
*/
- private static Logger log = org.apache.logging.log4j.LogManager.getLogger(OrcidRestConnector.class);
+ private static final Logger log = LogManager.getLogger(OrcidRestConnector.class);
- private String url;
+ private final String url;
public OrcidRestConnector(String url) {
this.url = url;
@@ -73,7 +75,7 @@ public class OrcidRestConnector {
}
public static String convertStreamToString(InputStream is) {
- Scanner s = new Scanner(is).useDelimiter("\\A");
+ Scanner s = new Scanner(is, StandardCharsets.UTF_8).useDelimiter("\\A");
return s.hasNext() ? s.next() : "";
}
diff --git a/dspace-api/src/main/java/org/dspace/external/model/ExternalDataObject.java b/dspace-api/src/main/java/org/dspace/external/model/ExternalDataObject.java
index cc2587056c..eac9921df6 100644
--- a/dspace-api/src/main/java/org/dspace/external/model/ExternalDataObject.java
+++ b/dspace-api/src/main/java/org/dspace/external/model/ExternalDataObject.java
@@ -7,7 +7,7 @@
*/
package org.dspace.external.model;
-import java.util.LinkedList;
+import java.util.ArrayList;
import java.util.List;
import org.dspace.content.dto.MetadataValueDTO;
@@ -32,7 +32,7 @@ public class ExternalDataObject {
/**
* The list of Metadata values. These our MetadataValueDTO because they won't exist in the DB
*/
- private List metadata = new LinkedList<>();
+ private List metadata = new ArrayList<>();
/**
* The display value of the ExternalDataObject
*/
@@ -87,11 +87,11 @@ public class ExternalDataObject {
/**
* This method will add a Metadata value to the list of metadata values
- * @param metadataValueDTO The metadatavalue to be added
+ * @param metadataValueDTO The metadata value to be added.
*/
public void addMetadata(MetadataValueDTO metadataValueDTO) {
if (metadata == null) {
- metadata = new LinkedList<>();
+ metadata = new ArrayList<>();
}
metadata.add(metadataValueDTO);
}
diff --git a/dspace-api/src/main/java/org/dspace/external/provider/orcid/xml/Converter.java b/dspace-api/src/main/java/org/dspace/external/provider/orcid/xml/Converter.java
index 582c49d407..8f48cda712 100644
--- a/dspace-api/src/main/java/org/dspace/external/provider/orcid/xml/Converter.java
+++ b/dspace-api/src/main/java/org/dspace/external/provider/orcid/xml/Converter.java
@@ -13,7 +13,6 @@ import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
-import org.apache.logging.log4j.Logger;
import org.xml.sax.SAXException;
/**
@@ -25,11 +24,6 @@ import org.xml.sax.SAXException;
*/
public abstract class Converter {
- /**
- * log4j logger
- */
- private static Logger log = org.apache.logging.log4j.LogManager.getLogger(Converter.class);
-
public abstract T convert(InputStream document);
protected Object unmarshall(InputStream input, Class> type) throws SAXException, URISyntaxException {
diff --git a/dspace-api/src/main/java/org/dspace/harvest/HarvestedItem.java b/dspace-api/src/main/java/org/dspace/harvest/HarvestedItem.java
index 87d2a58749..343347136b 100644
--- a/dspace-api/src/main/java/org/dspace/harvest/HarvestedItem.java
+++ b/dspace-api/src/main/java/org/dspace/harvest/HarvestedItem.java
@@ -56,6 +56,7 @@ public class HarvestedItem implements ReloadableEntity {
protected HarvestedItem() {
}
+ @Override
public Integer getID() {
return id;
}
@@ -89,7 +90,6 @@ public class HarvestedItem implements ReloadableEntity {
*/
public void setOaiID(String itemOaiID) {
this.oaiId = itemOaiID;
- return;
}
diff --git a/dspace-api/src/main/java/org/dspace/identifier/DOI.java b/dspace-api/src/main/java/org/dspace/identifier/DOI.java
index b73fb2b155..67668c3abe 100644
--- a/dspace-api/src/main/java/org/dspace/identifier/DOI.java
+++ b/dspace-api/src/main/java/org/dspace/identifier/DOI.java
@@ -62,6 +62,7 @@ public class DOI
protected DOI() {
}
+ @Override
public Integer getID() {
return id;
}
diff --git a/dspace-api/src/main/java/org/dspace/identifier/dao/impl/DOIDAOImpl.java b/dspace-api/src/main/java/org/dspace/identifier/dao/impl/DOIDAOImpl.java
index 019e89c129..13c53d12f7 100644
--- a/dspace-api/src/main/java/org/dspace/identifier/dao/impl/DOIDAOImpl.java
+++ b/dspace-api/src/main/java/org/dspace/identifier/dao/impl/DOIDAOImpl.java
@@ -8,7 +8,7 @@
package org.dspace.identifier.dao.impl;
import java.sql.SQLException;
-import java.util.LinkedList;
+import java.util.ArrayList;
import java.util.List;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
@@ -24,7 +24,7 @@ import org.dspace.identifier.dao.DOIDAO;
/**
* Hibernate implementation of the Database Access Object interface class for the DOI object.
- * This class is responsible for all database calls for the DOI object and is autowired by spring
+ * This class is responsible for all database calls for the DOI object and is autowired by Spring.
* This class should never be accessed directly.
*
* @author kevinvandevelde at atmire.com
@@ -52,7 +52,7 @@ public class DOIDAOImpl extends AbstractHibernateDAO implements DOIDAO {
Root doiRoot = criteriaQuery.from(DOI.class);
criteriaQuery.select(doiRoot);
- List listToIncludeInOrPredicate = new LinkedList<>();
+ List listToIncludeInOrPredicate = new ArrayList<>(statusToExclude.size() + 1);
for (Integer status : statusToExclude) {
listToIncludeInOrPredicate.add(criteriaBuilder.notEqual(doiRoot.get(DOI_.status), status));
@@ -75,7 +75,7 @@ public class DOIDAOImpl extends AbstractHibernateDAO implements DOIDAO {
CriteriaQuery criteriaQuery = getCriteriaQuery(criteriaBuilder, DOI.class);
Root doiRoot = criteriaQuery.from(DOI.class);
criteriaQuery.select(doiRoot);
- List orPredicates = new LinkedList<>();
+ List orPredicates = new ArrayList<>(statuses.size());
for (Integer status : statuses) {
orPredicates.add(criteriaBuilder.equal(doiRoot.get(DOI_.status), status));
}
@@ -92,13 +92,13 @@ public class DOIDAOImpl extends AbstractHibernateDAO implements DOIDAO {
Root doiRoot = criteriaQuery.from(DOI.class);
criteriaQuery.select(doiRoot);
- List listToIncludeInOrPredicate = new LinkedList<>();
+ List listToIncludeInOrPredicate = new ArrayList<>(excludedStatuses.size());
for (Integer status : excludedStatuses) {
listToIncludeInOrPredicate.add(criteriaBuilder.notEqual(doiRoot.get(DOI_.status), status));
}
- List listToIncludeInAndPredicate = new LinkedList<>();
+ List listToIncludeInAndPredicate = new ArrayList<>();
listToIncludeInAndPredicate.add(criteriaBuilder.like(doiRoot.get(DOI_.doi), doi));
listToIncludeInAndPredicate.add(criteriaBuilder.or(listToIncludeInOrPredicate.toArray(new Predicate[] {})));
@@ -107,8 +107,6 @@ public class DOIDAOImpl extends AbstractHibernateDAO implements DOIDAO {
}
criteriaQuery.where(listToIncludeInAndPredicate.toArray(new Predicate[] {}));
return list(context, criteriaQuery, false, DOI.class, -1, -1);
-
-
}
@Override
diff --git a/dspace-api/src/main/java/org/dspace/importer/external/datamodel/ImportRecord.java b/dspace-api/src/main/java/org/dspace/importer/external/datamodel/ImportRecord.java
index f5d3a6f722..3fc34dc511 100644
--- a/dspace-api/src/main/java/org/dspace/importer/external/datamodel/ImportRecord.java
+++ b/dspace-api/src/main/java/org/dspace/importer/external/datamodel/ImportRecord.java
@@ -7,9 +7,9 @@
*/
package org.dspace.importer.external.datamodel;
+import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
-import java.util.LinkedList;
import java.util.List;
import org.dspace.importer.external.metadatamapping.MetadatumDTO;
@@ -38,7 +38,7 @@ public class ImportRecord {
*/
public ImportRecord(List valueList) {
//don't want to alter the original list. Also now I can control the type of list
- this.valueList = new LinkedList<>(valueList);
+ this.valueList = new ArrayList<>(valueList);
}
/**
@@ -81,7 +81,7 @@ public class ImportRecord {
* @return the MetadatumDTO's that are related to a given schema/element/qualifier pair/triplet
*/
public Collection getValue(String schema, String element, String qualifier) {
- List values = new LinkedList();
+ List values = new ArrayList();
for (MetadatumDTO value : valueList) {
if (value.getSchema().equals(schema) && value.getElement().equals(element)) {
if (qualifier == null && value.getQualifier() == null) {
diff --git a/dspace-api/src/main/java/org/dspace/importer/external/metadatamapping/AbstractMetadataFieldMapping.java b/dspace-api/src/main/java/org/dspace/importer/external/metadatamapping/AbstractMetadataFieldMapping.java
index aed2f0e084..d2f0df6d04 100644
--- a/dspace-api/src/main/java/org/dspace/importer/external/metadatamapping/AbstractMetadataFieldMapping.java
+++ b/dspace-api/src/main/java/org/dspace/importer/external/metadatamapping/AbstractMetadataFieldMapping.java
@@ -7,18 +7,19 @@
*/
package org.dspace.importer.external.metadatamapping;
+import java.util.ArrayList;
import java.util.Collection;
-import java.util.LinkedList;
import java.util.List;
import java.util.Map;
+import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.dspace.importer.external.metadatamapping.contributor.MetadataContributor;
import org.dspace.importer.external.metadatamapping.transform.MetadataProcessorService;
/**
- * Abstract class that implements {@link MetadataFieldMapping}
- * This class adds a default implementation for the MetadataFieldMapping methods
+ * Abstract class that implements {@link MetadataFieldMapping}.
+ * This class adds a default implementation for the MetadataFieldMapping methods.
*
* @author Roeland Dillen (roeland at atmire dot com)
*/
@@ -30,7 +31,7 @@ public abstract class AbstractMetadataFieldMapping
/**
* log4j logger
*/
- private static Logger log = org.apache.logging.log4j.LogManager.getLogger(AbstractMetadataFieldMapping.class);
+ private static final Logger log = LogManager.getLogger(AbstractMetadataFieldMapping.class);
/* A map containing what processing has to be done on a given metadataFieldConfig.
* The processing of a value is used to determine the actual value that will be returned used.
@@ -66,6 +67,7 @@ public abstract class AbstractMetadataFieldMapping
* @param value The value to map to a MetadatumDTO
* @return A metadatumDTO created from the field and value
*/
+ @Override
public MetadatumDTO toDCValue(MetadataFieldConfig field, String value) {
MetadatumDTO dcValue = new MetadatumDTO();
@@ -108,14 +110,15 @@ public abstract class AbstractMetadataFieldMapping
}
/**
- * Loop over the MetadataContributors and return their concatenated retrieved metadatumDTO objects
+ * Loop over the MetadataContributors and return their concatenated
+ * retrieved metadatumDTO objects.
*
* @param record Used to retrieve the MetadatumDTO
* @return Lit of metadatumDTO
*/
@Override
public Collection resultToDCValueMapping(RecordType record) {
- List values = new LinkedList();
+ List values = new ArrayList<>();
for (MetadataContributor query : getMetadataFieldMap().values()) {
try {
diff --git a/dspace-api/src/main/java/org/dspace/importer/external/metadatamapping/MetadataFieldConfig.java b/dspace-api/src/main/java/org/dspace/importer/external/metadatamapping/MetadataFieldConfig.java
index d19939248c..be3c85ab62 100644
--- a/dspace-api/src/main/java/org/dspace/importer/external/metadatamapping/MetadataFieldConfig.java
+++ b/dspace-api/src/main/java/org/dspace/importer/external/metadatamapping/MetadataFieldConfig.java
@@ -8,7 +8,7 @@
package org.dspace.importer.external.metadatamapping;
/**
- * A generalised configuration for metadatafields.
+ * A generalised configuration for metadata fields.
* This is used to make the link between values and the actual MetadatumDTO object.
*
* @author Roeland Dillen (roeland at atmire dot com)
@@ -31,7 +31,7 @@ public class MetadataFieldConfig {
if (this == o) {
return true;
}
- if (o == null || getClass() != o.getClass()) {
+ if (o == null || !(o instanceof MetadataFieldConfig)) {
return false;
}
@@ -43,11 +43,7 @@ public class MetadataFieldConfig {
if (qualifier != null ? !qualifier.equals(that.qualifier) : that.qualifier != null) {
return false;
}
- if (!schema.equals(that.schema)) {
- return false;
- }
-
- return true;
+ return schema.equals(that.schema);
}
/**
diff --git a/dspace-api/src/main/java/org/dspace/scripts/DSpaceCommandLineParameter.java b/dspace-api/src/main/java/org/dspace/scripts/DSpaceCommandLineParameter.java
index 2862d014c9..f8b5f23b8c 100644
--- a/dspace-api/src/main/java/org/dspace/scripts/DSpaceCommandLineParameter.java
+++ b/dspace-api/src/main/java/org/dspace/scripts/DSpaceCommandLineParameter.java
@@ -14,7 +14,8 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.builder.HashCodeBuilder;
/**
- * This class serves as a representation of a command line parameter by holding a String name and a String value
+ * This class serves as a representation of a command line parameter by holding
+ * a String name and a String value.
*/
public class DSpaceCommandLineParameter {
private String name;
@@ -23,7 +24,7 @@ public class DSpaceCommandLineParameter {
public static String SEPARATOR = "|||";
/**
- * This constructor will take a String key and String value and store them in their appriopriate fields
+ * This constructor will take a String key and String value and store them in their appropriate fields.
* @param key The String value to be stored as the name of the parameter
* @param value The String value to be stored as the value of the parameter
*/
@@ -64,9 +65,10 @@ public class DSpaceCommandLineParameter {
/**
* Converts the DSpaceCommandLineParameter into a String format by concatenating the value and the name String
- * values by separating them with a space
+ * values by separating them with a space.
* @return The String representation of a DSpaceCommandlineParameter object
*/
+ @Override
public String toString() {
String stringToReturn = "";
stringToReturn += getName();
@@ -92,7 +94,7 @@ public class DSpaceCommandLineParameter {
}
/**
- * Will return a boolean indicating whether the given param is equal to this object
+ * Will return a boolean indicating whether the given parameter is equal to this object.
* @param other The other object
* @return A boolean indicating equality
*/
@@ -101,7 +103,7 @@ public class DSpaceCommandLineParameter {
if (other == null) {
return false;
}
- if (other.getClass() != DSpaceCommandLineParameter.class) {
+ if (!(other instanceof DSpaceCommandLineParameter)) {
return false;
}
return StringUtils.equals(this.getName(), ((DSpaceCommandLineParameter) other).getName()) && StringUtils
diff --git a/dspace-api/src/main/java/org/dspace/scripts/DSpaceRunnable.java b/dspace-api/src/main/java/org/dspace/scripts/DSpaceRunnable.java
index d0fffdb57d..2319aee317 100644
--- a/dspace-api/src/main/java/org/dspace/scripts/DSpaceRunnable.java
+++ b/dspace-api/src/main/java/org/dspace/scripts/DSpaceRunnable.java
@@ -8,7 +8,7 @@
package org.dspace.scripts;
import java.io.InputStream;
-import java.util.LinkedList;
+import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
@@ -37,7 +37,7 @@ public abstract class DSpaceRunnable implements R
protected CommandLine commandLine;
/**
- * This EPerson identifier variable is the uuid of the eperson that's running the script
+ * This EPerson identifier variable is the UUID of the EPerson that's running the script
*/
private UUID epersonIdentifier;
@@ -129,7 +129,7 @@ public abstract class DSpaceRunnable implements R
* @return The list of Strings representing filenames from the options given to the script
*/
public List getFileNamesFromInputStreamOptions() {
- List fileNames = new LinkedList<>();
+ List fileNames = new ArrayList<>();
for (Option option : getScriptConfiguration().getOptions().getOptions()) {
if (option.getType() == InputStream.class &&
@@ -151,8 +151,8 @@ public abstract class DSpaceRunnable implements R
}
/**
- * Generic setter for the epersonIdentifier
- * This EPerson identifier variable is the uuid of the eperson that's running the script
+ * Generic setter for the epersonIdentifier.
+ * This EPerson identifier variable is the UUID of the EPerson that's running the script.
* @param epersonIdentifier The epersonIdentifier to be set on this DSpaceRunnable
*/
public void setEpersonIdentifier(UUID epersonIdentifier) {
diff --git a/dspace-api/src/main/java/org/dspace/scripts/Process.java b/dspace-api/src/main/java/org/dspace/scripts/Process.java
index 574ba59760..2f5ab10f3e 100644
--- a/dspace-api/src/main/java/org/dspace/scripts/Process.java
+++ b/dspace-api/src/main/java/org/dspace/scripts/Process.java
@@ -7,8 +7,8 @@
*/
package org.dspace.scripts;
+import java.util.Collections;
import java.util.Date;
-import java.util.LinkedList;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
@@ -91,6 +91,7 @@ public class Process implements ReloadableEntity {
* This method returns the ID that the Process holds within the Database
* @return The ID that the process holds within the database
*/
+ @Override
public Integer getID() {
return processId;
}
@@ -162,7 +163,8 @@ public class Process implements ReloadableEntity {
/**
* To get the parameters, use ProcessService.getParameters() to get a parsed list of DSpaceCommandLineParameters
- * This String representation is the parameter in an unparsed fashion. For example "-c test"
+ * This String representation is the parameter in an unparsed fashion.For example "-c test"
+ * @return the raw parameter string.
*/
protected String getParameters() {
return parameters;
@@ -179,7 +181,7 @@ public class Process implements ReloadableEntity {
*/
public List getBitstreams() {
if (bitstreams == null) {
- bitstreams = new LinkedList<>();
+ bitstreams = Collections.EMPTY_LIST;
}
return bitstreams;
}
diff --git a/dspace-api/src/main/java/org/dspace/search/Harvest.java b/dspace-api/src/main/java/org/dspace/search/Harvest.java
index a0b3698592..b0bafd367f 100644
--- a/dspace-api/src/main/java/org/dspace/search/Harvest.java
+++ b/dspace-api/src/main/java/org/dspace/search/Harvest.java
@@ -11,7 +11,6 @@ import java.sql.SQLException;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Iterator;
-import java.util.LinkedList;
import java.util.List;
import org.apache.logging.log4j.Logger;
@@ -129,7 +128,7 @@ public class Harvest {
// several smaller operations (e.g. for OAI resumption tokens.)
discoverQuery.setSortField("search.resourceid", DiscoverQuery.SORT_ORDER.asc);
- List infoObjects = new LinkedList();
+ List infoObjects = new ArrayList<>();
// Count of items read from the record set that match the selection criteria.
// Note : Until 'index > offset' the records are not added to the output set.
@@ -155,7 +154,7 @@ public class Harvest {
if (collections) {
// Add collections data
- fillCollections(context, itemInfo);
+ fillCollections(itemInfo);
}
if (items) {
@@ -163,7 +162,7 @@ public class Harvest {
itemInfo.item = itemService.find(context, itemInfo.itemID);
}
- if ((nonAnon) || (itemInfo.item == null) || (withdrawn && itemInfo.withdrawn)) {
+ if (nonAnon || (itemInfo.item == null) || (withdrawn && itemInfo.withdrawn)) {
index++;
if (index > offset) {
infoObjects.add(itemInfo);
@@ -221,7 +220,7 @@ public class Harvest {
// Get the sets
if (collections) {
- fillCollections(context, itemInfo);
+ fillCollections(itemInfo);
}
return itemInfo;
@@ -234,8 +233,7 @@ public class Harvest {
* @param itemInfo HarvestedItemInfo object to fill out
* @throws SQLException if database error
*/
- private static void fillCollections(Context context,
- HarvestedItemInfo itemInfo) throws SQLException {
+ private static void fillCollections(HarvestedItemInfo itemInfo) throws SQLException {
// Get the collection Handles from DB
List collections = itemInfo.item.getCollections();
itemInfo.collectionHandles = new ArrayList<>();
diff --git a/dspace-api/src/main/java/org/dspace/statistics/Dataset.java b/dspace-api/src/main/java/org/dspace/statistics/Dataset.java
index 9204c56a21..f5a5e05e04 100644
--- a/dspace-api/src/main/java/org/dspace/statistics/Dataset.java
+++ b/dspace-api/src/main/java/org/dspace/statistics/Dataset.java
@@ -18,6 +18,7 @@ import java.util.List;
import java.util.Map;
import au.com.bytecode.opencsv.CSVWriter;
+import java.nio.charset.StandardCharsets;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
@@ -65,20 +66,20 @@ public class Dataset {
}
private void initRowLabels(int rows) {
- rowLabels = new ArrayList(rows);
- rowLabelsAttrs = new ArrayList