diff --git a/dspace-api/src/main/java/org/dspace/browse/BrowseCreateDAO.java b/dspace-api/src/main/java/org/dspace/browse/BrowseCreateDAO.java index b97dcd2869..da4f6798ee 100644 --- a/dspace-api/src/main/java/org/dspace/browse/BrowseCreateDAO.java +++ b/dspace-api/src/main/java/org/dspace/browse/BrowseCreateDAO.java @@ -103,7 +103,7 @@ public interface BrowseCreateDAO * @param sortCols an Integer-String map of sort column numbers and values * @throws BrowseException */ - public void insertIndex(String table, int itemID, Map sortCols) throws BrowseException; + public void insertIndex(String table, int itemID, Map sortCols) throws BrowseException; /** * Updates an index record into the given table for the given item id. The Map should contain @@ -127,7 +127,7 @@ public interface BrowseCreateDAO * @return true if the record is updated, false if not found * @throws BrowseException */ - public boolean updateIndex(String table, int itemID, Map sortCols) throws BrowseException; + public boolean updateIndex(String table, int itemID, Map sortCols) throws BrowseException; /** * Get the browse index's internal id for the location of the given string diff --git a/dspace-api/src/main/java/org/dspace/browse/BrowseCreateDAOOracle.java b/dspace-api/src/main/java/org/dspace/browse/BrowseCreateDAOOracle.java index b7f2f6deeb..b3fd587757 100644 --- a/dspace-api/src/main/java/org/dspace/browse/BrowseCreateDAOOracle.java +++ b/dspace-api/src/main/java/org/dspace/browse/BrowseCreateDAOOracle.java @@ -688,7 +688,7 @@ public class BrowseCreateDAOOracle implements BrowseCreateDAO } } - public void insertIndex(String table, int itemID, Map sortCols) + public void insertIndex(String table, int itemID, Map sortCols) throws BrowseException { try @@ -700,12 +700,9 @@ public class BrowseCreateDAOOracle implements BrowseCreateDAO row.setColumn("item_id", itemID); // now set the columns for the other sort values - Iterator itra = sortCols.keySet().iterator(); - while (itra.hasNext()) + for (Map.Entry sortCol : sortCols.entrySet()) { - Integer key = (Integer) itra.next(); - String nValue = (String) sortCols.get(key); - row.setColumn("sort_" + key.toString(), utils.truncateSortValue(nValue)); + row.setColumn("sort_" + sortCol.getKey().toString(), utils.truncateSortValue(sortCol.getValue())); } DatabaseManager.update(context, row); @@ -720,7 +717,7 @@ public class BrowseCreateDAOOracle implements BrowseCreateDAO /* (non-Javadoc) * @see org.dspace.browse.BrowseCreateDAO#updateIndex(java.lang.String, int, java.util.Map) */ - public boolean updateIndex(String table, int itemID, Map sortCols) + public boolean updateIndex(String table, int itemID, Map sortCols) throws BrowseException { try @@ -733,16 +730,13 @@ public class BrowseCreateDAOOracle implements BrowseCreateDAO return false; // Iterate through all the sort values - Iterator itra = sortCols.keySet().iterator(); - while (itra.hasNext()) + for (Map.Entry sortCol : sortCols.entrySet()) { - Integer key = (Integer) itra.next(); - // Generate the appropriate column name - String column = "sort_" + key.toString(); + String column = "sort_" + sortCol.getKey().toString(); // Create the value that will be written in to the column - String newValue = utils.truncateSortValue( (String) sortCols.get(key) ); + String newValue = utils.truncateSortValue( sortCol.getValue() ); // Check the column exists - if it doesn't, something has gone seriously wrong if (!row.hasColumn(column)) diff --git a/dspace-api/src/main/java/org/dspace/browse/BrowseCreateDAOPostgres.java b/dspace-api/src/main/java/org/dspace/browse/BrowseCreateDAOPostgres.java index caa5b71a60..4fd511cde0 100644 --- a/dspace-api/src/main/java/org/dspace/browse/BrowseCreateDAOPostgres.java +++ b/dspace-api/src/main/java/org/dspace/browse/BrowseCreateDAOPostgres.java @@ -695,7 +695,7 @@ public class BrowseCreateDAOPostgres implements BrowseCreateDAO /* (non-Javadoc) * @see org.dspace.browse.BrowseCreateDAO#insertIndex(java.lang.String, int, java.lang.String, java.lang.String, java.util.Map) */ - public void insertIndex(String table, int itemID, Map sortCols) + public void insertIndex(String table, int itemID, Map sortCols) throws BrowseException { try @@ -707,12 +707,9 @@ public class BrowseCreateDAOPostgres implements BrowseCreateDAO row.setColumn("item_id", itemID); // now set the columns for the other sort values - Iterator itra = sortCols.keySet().iterator(); - while (itra.hasNext()) + for (Map.Entry sortCol : sortCols.entrySet()) { - Integer key = (Integer) itra.next(); - String nValue = (String) sortCols.get(key); - row.setColumn("sort_" + key.toString(), utils.truncateSortValue(nValue)); + row.setColumn("sort_" + sortCol.getKey().toString(), utils.truncateSortValue(sortCol.getValue())); } DatabaseManager.update(context, row); @@ -727,7 +724,7 @@ public class BrowseCreateDAOPostgres implements BrowseCreateDAO /* (non-Javadoc) * @see org.dspace.browse.BrowseCreateDAO#updateIndex(java.lang.String, int, java.util.Map) */ - public boolean updateIndex(String table, int itemID, Map sortCols) + public boolean updateIndex(String table, int itemID, Map sortCols) throws BrowseException { try @@ -740,16 +737,13 @@ public class BrowseCreateDAOPostgres implements BrowseCreateDAO return false; // Iterate through all the sort values - Iterator itra = sortCols.keySet().iterator(); - while (itra.hasNext()) + for (Map.Entry sortCol : sortCols.entrySet()) { - Integer key = (Integer) itra.next(); - // Generate the appropriate column name - String column = "sort_" + key.toString(); + String column = "sort_" + sortCol.getKey().toString(); // Create the value that will be written in to the column - String newValue = utils.truncateSortValue( (String) sortCols.get(key) ); + String newValue = utils.truncateSortValue( sortCol.getValue() ); // Check the column exists - if it doesn't, something has gone seriously wrong if (!row.hasColumn(column)) diff --git a/dspace-api/src/main/java/org/dspace/checker/ChecksumHistoryDAO.java b/dspace-api/src/main/java/org/dspace/checker/ChecksumHistoryDAO.java index 0aea45dbe2..af03c7d20b 100644 --- a/dspace-api/src/main/java/org/dspace/checker/ChecksumHistoryDAO.java +++ b/dspace-api/src/main/java/org/dspace/checker/ChecksumHistoryDAO.java @@ -267,10 +267,10 @@ public class ChecksumHistoryDAO extends DAOSupport * @param interests * set of results and the duration of time before they are * removed from the database - * + * * @return number of bitstreams deleted */ - public int prune(Map interests) + public int prune(Map interests) { Connection conn = null; try @@ -278,12 +278,10 @@ public class ChecksumHistoryDAO extends DAOSupport conn = DatabaseManager.getConnection(); long now = System.currentTimeMillis(); int count = 0; - for (Iterator iter = interests.keySet().iterator(); iter.hasNext();) + for (Map.Entry interest : interests.entrySet()) { - String result = (String) iter.next(); - Long dur = (Long) interests.get(result); count += deleteHistoryByDateAndCode(new Date(now - - dur.longValue()), result, conn); + - interest.getValue().longValue()), interest.getKey(), conn); conn.commit(); } return count; diff --git a/dspace-api/src/main/java/org/dspace/checker/ResultsPruner.java b/dspace-api/src/main/java/org/dspace/checker/ResultsPruner.java index 1f79b97f67..952ea9d590 100644 --- a/dspace-api/src/main/java/org/dspace/checker/ResultsPruner.java +++ b/dspace-api/src/main/java/org/dspace/checker/ResultsPruner.java @@ -180,7 +180,7 @@ public final class ResultsPruner /** * Map of retention durations, keyed by result code name */ - Map interests = new HashMap(); + Map interests = new HashMap(); /** * Checksum results database Data access diff --git a/dspace-api/src/main/java/org/dspace/content/LicenseUtils.java b/dspace-api/src/main/java/org/dspace/content/LicenseUtils.java index dc7c1aacf1..0b905e7304 100644 --- a/dspace-api/src/main/java/org/dspace/content/LicenseUtils.java +++ b/dspace-api/src/main/java/org/dspace/content/LicenseUtils.java @@ -70,11 +70,10 @@ public class LicenseUtils if (additionalInfo != null) { - int i = 1; - for (String key : additionalInfo.keySet()) + int i = 7; // Start is next index after previous args + for (Map.Entry info : additionalInfo.entrySet()) { - args[6 + i] = new FormattableArgument(key, additionalInfo - .get(key)); + args[i] = new FormattableArgument(info.getKey(), info.getValue()); i++; } } diff --git a/dspace-api/src/main/java/org/dspace/eperson/Group.java b/dspace-api/src/main/java/org/dspace/eperson/Group.java index 6e52a84660..cdae188c90 100644 --- a/dspace-api/src/main/java/org/dspace/eperson/Group.java +++ b/dspace-api/src/main/java/org/dspace/eperson/Group.java @@ -1255,23 +1255,10 @@ public class Group extends DSpaceObject // so now to establish all parent,child relationships we can iterate // through the parents hash - Iterator i = parents.keySet().iterator(); - - while (i.hasNext()) + for (Map.Entry> parent : parents.entrySet()) { - Integer parentID = i.next(); - - Set myChildren = getChildren(parents, parentID); - - Iterator j = myChildren.iterator(); - - while (j.hasNext()) - { - // child of a parent - Integer childID = j.next(); - - ((Set) parents.get(parentID)).add(childID); - } + Set myChildren = getChildren(parents, parent.getKey()); + parent.getValue().addAll(myChildren); } // empty out group2groupcache table diff --git a/dspace-api/src/main/java/org/dspace/search/QueryArgs.java b/dspace-api/src/main/java/org/dspace/search/QueryArgs.java index 96d2699618..c760ac21cd 100644 --- a/dspace-api/src/main/java/org/dspace/search/QueryArgs.java +++ b/dspace-api/src/main/java/org/dspace/search/QueryArgs.java @@ -44,6 +44,7 @@ import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; +import java.util.Map; import java.util.StringTokenizer; import javax.servlet.http.HttpServletRequest; @@ -342,33 +343,30 @@ public class QueryArgs * * @return the created HashMap */ - public HashMap buildQueryHash(HttpServletRequest request) + public Map buildQueryMap(HttpServletRequest request) { - HashMap queryHash = new HashMap(); + Map queryMap = new HashMap(); String numFieldStr = request.getParameter("num_search_field"); // for backward compatibility if (numFieldStr == null) numFieldStr = "3"; int numField = Integer.parseInt(numFieldStr); for (int i = 1; i < numField; i++) { - queryHash.put("query"+i, (request.getParameter("query"+i) == null) ? "" - : request.getParameter("query"+i)); - queryHash.put("field"+i, - (request.getParameter("field"+i) == null) ? "ANY" : request - .getParameter("field"+i)); - queryHash.put("conjunction"+i, - (request.getParameter("conjunction"+i) == null) ? "AND" - : request.getParameter("conjunction"+i)); + String queryStr = "query" + i; + String fieldStr = "field" + i; + String conjunctionStr = "conjunction" + i; + + queryMap.put(queryStr, StringUtils.defaultString(request.getParameter(queryStr), "")); + queryMap.put(fieldStr, StringUtils.defaultString(request.getParameter(fieldStr), "ANY")); + queryMap.put(conjunctionStr, StringUtils.defaultString(request.getParameter(conjunctionStr), "AND")); } - queryHash.put("query"+numField, (request.getParameter("query"+numField) == null) ? "" - : request.getParameter("query"+numField)); + String queryStr = "query" + numField; + String fieldStr = "field" + numField; + queryMap.put(queryStr, StringUtils.defaultString(request.getParameter(queryStr), "")); + queryMap.put(fieldStr, StringUtils.defaultString(request.getParameter(fieldStr), "ANY")); - queryHash.put("field"+numField, - (request.getParameter("field"+numField) == null) ? "ANY" - : request.getParameter("field"+numField)); - - return (queryHash); + return (queryMap); } /** @@ -396,25 +394,23 @@ public class QueryArgs public String buildHTTPQuery(HttpServletRequest request) throws UnsupportedEncodingException { - String querystring = ""; - HashMap queryHash = buildQueryHash(request); + StringBuilder queryString = new StringBuilder(); + Map queryMap = buildQueryMap(request); - Iterator i = queryHash.keySet().iterator(); - - while (i.hasNext()) + for (Map.Entry query : queryMap.entrySet()) { - String key = (String) i.next(); - String value = (String) queryHash.get(key); - - querystring = querystring + "&" + key + "=" - + URLEncoder.encode(value, Constants.DEFAULT_ENCODING); + queryString.append("&") + .append(query.getKey()) + .append("=") + .append(URLEncoder.encode(query.getValue(), Constants.DEFAULT_ENCODING)); } + if (request.getParameter("num_search_field") != null) { - querystring = querystring + "&num_search_field="+request.getParameter("num_search_field"); - } + queryString.append("&num_search_field=").append(request.getParameter("num_search_field")); + } // return the result with the leading "&" removed - return (querystring.substring(1)); + return queryString.substring(1); } } diff --git a/dspace-api/src/main/java/org/dspace/text/filter/MARC21InitialArticleWord.java b/dspace-api/src/main/java/org/dspace/text/filter/MARC21InitialArticleWord.java index 879d816240..e2a94edc72 100644 --- a/dspace-api/src/main/java/org/dspace/text/filter/MARC21InitialArticleWord.java +++ b/dspace-api/src/main/java/org/dspace/text/filter/MARC21InitialArticleWord.java @@ -259,7 +259,7 @@ public class MARC21InitialArticleWord extends InitialArticleWord // Iterate through word/language array // Generate temporary language map - Map langWordMap = new HashMap(); + Map langWordMap = new HashMap(); for (wordIdx = 0; wordIdx < articleWordArray.length; wordIdx++) { for (langIdx = 1; langIdx < articleWordArray[wordIdx].length; langIdx++) @@ -268,7 +268,7 @@ public class MARC21InitialArticleWord extends InitialArticleWord if (lang != null && lang.IANA.length() > 0) { - List words = (List)langWordMap.get(lang); + List words = langWordMap.get(lang); if (words == null) { @@ -284,22 +284,21 @@ public class MARC21InitialArticleWord extends InitialArticleWord } // Iterate through languages - Iterator langIter = langWordMap.keySet().iterator(); - while (langIter.hasNext()) + for (Map.Entry langToWord : langWordMap.entrySet()) { - Language lang = (Language)langIter.next(); - List wordList = (List)langWordMap.get(lang); + Language lang = langToWord.getKey(); + List wordList = langToWord.getValue(); // Convert the list into an array of strings String[] words = new String[wordList.size()]; - + for (int idx = 0; idx < wordList.size(); idx++) words[idx] = (String)wordList.get(idx); // Sort the array into length order - longest to shortest // This ensures maximal matching on the article words Arrays.sort(words, new MARC21InitialArticleWord.InverseLengthComparator() ); - + // Add language/article entry to map ianaArticleMap.put(lang.IANA, new MARC21InitialArticleWord.ArticlesForLang(lang, words)); } diff --git a/dspace-jspui/dspace-jspui-api/src/main/java/org/dspace/app/webui/servlet/SimpleSearchServlet.java b/dspace-jspui/dspace-jspui-api/src/main/java/org/dspace/app/webui/servlet/SimpleSearchServlet.java index 94a90b1ccc..f9bf344e49 100644 --- a/dspace-jspui/dspace-jspui-api/src/main/java/org/dspace/app/webui/servlet/SimpleSearchServlet.java +++ b/dspace-jspui/dspace-jspui-api/src/main/java/org/dspace/app/webui/servlet/SimpleSearchServlet.java @@ -46,7 +46,7 @@ import java.sql.SQLException; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; -import java.util.List; +import java.util.Map; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; @@ -71,7 +71,6 @@ import org.dspace.search.DSQuery; import org.dspace.search.QueryArgs; import org.dspace.search.QueryResults; import org.dspace.sort.SortOption; -import org.dspace.browse.*; /** * Servlet for handling a simple search. @@ -108,7 +107,7 @@ public class SimpleSearchServlet extends DSpaceServlet String order = request.getParameter("order"); int rpp = UIUtil.getIntParameter(request, "rpp"); String advancedQuery = ""; - HashMap queryHash = new HashMap(); + Map queryHash = new HashMap(); // can't start earlier than 0 in the results! if (start < 0) @@ -402,7 +401,7 @@ public class SimpleSearchServlet extends DSpaceServlet request.setAttribute("communities", communities); request.setAttribute("no_results", "yes"); - queryHash = qArgs.buildQueryHash(request); + queryHash = qArgs.buildQueryMap(request); Iterator i = queryHash.keySet().iterator();