diff --git a/Viral_Load_Assay/src/org/labkey/viral_load_assay/assay/ABI7500ImportMethod.java b/Viral_Load_Assay/src/org/labkey/viral_load_assay/assay/ABI7500ImportMethod.java index 71600d53c..4ba259521 100644 --- a/Viral_Load_Assay/src/org/labkey/viral_load_assay/assay/ABI7500ImportMethod.java +++ b/Viral_Load_Assay/src/org/labkey/viral_load_assay/assay/ABI7500ImportMethod.java @@ -27,6 +27,7 @@ import org.json.JSONException; import org.json.JSONObject; import org.labkey.api.collections.CaseInsensitiveHashMap; +import org.labkey.api.collections.IntHashMap; import org.labkey.api.data.CompareType; import org.labkey.api.data.Container; import org.labkey.api.data.ConvertHelper; @@ -573,7 +574,7 @@ public void doGenerateTemplate(JSONObject json, HttpServletRequest request, Http response.setHeader("Pragma", "private"); response.setHeader("Cache-Control", "private"); - Map rowMap = new HashMap<>(); + Map rowMap = new IntHashMap<>(); int rowIdx = 0; for (JSONObject row : results) diff --git a/ehr/src/org/labkey/ehr/EHRManager.java b/ehr/src/org/labkey/ehr/EHRManager.java index 1396e319c..33b9412c9 100644 --- a/ehr/src/org/labkey/ehr/EHRManager.java +++ b/ehr/src/org/labkey/ehr/EHRManager.java @@ -24,6 +24,7 @@ import org.labkey.api.cache.CacheManager; import org.labkey.api.collections.CaseInsensitiveHashMap; import org.labkey.api.collections.CaseInsensitiveHashSet; +import org.labkey.api.collections.IntHashMap; import org.labkey.api.data.CompareType; import org.labkey.api.data.Container; import org.labkey.api.data.ContainerManager; @@ -108,6 +109,9 @@ import java.util.Set; import java.util.TreeSet; +import static org.labkey.api.exp.api.ExperimentService.asInteger; +import static org.labkey.api.exp.api.ExperimentService.asLong; + public class EHRManager { private static final EHRManager _instance = new EHRManager(); @@ -314,7 +318,7 @@ public List ensureStudyQCStates(Container c, final User u, final boolean row.put("publicdata", qc[2]); row = Table.insert(u, ti, row); - qcMap.put((String)row.get("label"), (Integer)row.get("rowid")); + qcMap.put((String)row.get("label"), asInteger(row.get("rowid"))); shouldClearCache = true; } @@ -1110,24 +1114,24 @@ private void updatePropertyURI(Domain d, PropertyDescriptor pd) throws SQLExcept //find propertyId TableSelector ts = new TableSelector(propertyDescriptor, Collections.singleton("propertyid"), new SimpleFilter(FieldKey.fromString("PropertyURI"), pd.getPropertyURI()), null); - Integer[] ids = ts.getArray(Integer.class); + Long[] ids = ts.getArray(Long.class); if (ids.length == 0) { throw new SQLException("Unknown propertyURI: " + pd.getPropertyURI()); } - int propertyId = ids[0]; + long propertyId = ids[0]; //first ensure the propertyURI exists SQLFragment sql = new SQLFragment("select propertyid from exp.propertydomain p where domainId = ? AND propertyid in (select propertyid from exp.propertydescriptor pd where pd.name " + (expSchema.getSqlDialect().isPostgreSQL() ? "ilike" : "like") + " ?)", d.getTypeId(), pd.getName()); SqlSelector selector = new SqlSelector(expSchema.getScope(), sql); - List oldIds = new ArrayList<>(); + List oldIds = new ArrayList<>(); try (TableResultSet results = selector.getResultSet()) { while (results.next()) { Map row = results.getRowMap(); - oldIds.add((Integer) row.get("propertyid")); + oldIds.add(asLong(row.get("propertyid"))); } } @@ -1170,7 +1174,7 @@ private void updatePropertyURI(Domain d, PropertyDescriptor pd) throws SQLExcept executor.execute(updateSql, propertyId, d.getTypeId(), oldIds, minSort); oldIds.remove(propertyId); - for (Integer id : oldIds) + for (Long id : oldIds) { PropertyDescriptor toDelete = OntologyManager.getPropertyDescriptor(id); if (toDelete != null) @@ -1338,7 +1342,7 @@ public boolean canDiscardTask(Container c, User u, String taskId, List e { DataEntryForm def = getDataEntryFormForTask(c, u, taskId); - Map qcStateMap = new HashMap<>(); + Map qcStateMap = new IntHashMap<>(); for (EHRQCState qc : EHRManager.get().getQCStates(c)) { qcStateMap.put(qc.getRowId(), qc); diff --git a/ehr/src/org/labkey/ehr/history/DefaultEncountersDataSource.java b/ehr/src/org/labkey/ehr/history/DefaultEncountersDataSource.java index 2f5940d44..afb28706a 100644 --- a/ehr/src/org/labkey/ehr/history/DefaultEncountersDataSource.java +++ b/ehr/src/org/labkey/ehr/history/DefaultEncountersDataSource.java @@ -16,6 +16,7 @@ package org.labkey.ehr.history; import org.jetbrains.annotations.NotNull; +import org.labkey.api.collections.StringHashMap; import org.labkey.api.data.BaseColumnInfo; import org.labkey.api.data.ColumnInfo; import org.labkey.api.data.CompareType; @@ -39,7 +40,6 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.util.Date; -import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; @@ -185,7 +185,7 @@ protected Map>> getSnomedTags(Containe final Map columns = QueryService.get().getColumns(snomed, colKeys); TableSelector ts = new TableSelector(snomed, columns.values(), newFilter, null); - final Map>> snomedMap = new HashMap<>(); + final Map>> snomedMap = new StringHashMap<>(); ts.forEach(new Selector.ForEachBlock<>() { diff --git a/ehr/src/org/labkey/ehr/utils/TriggerScriptHelper.java b/ehr/src/org/labkey/ehr/utils/TriggerScriptHelper.java index 6231a2e08..7ccdcc5c8 100644 --- a/ehr/src/org/labkey/ehr/utils/TriggerScriptHelper.java +++ b/ehr/src/org/labkey/ehr/utils/TriggerScriptHelper.java @@ -26,6 +26,7 @@ import org.json.JSONArray; import org.labkey.api.collections.CaseInsensitiveHashMap; import org.labkey.api.collections.CaseInsensitiveHashSet; +import org.labkey.api.collections.IntHashMap; import org.labkey.api.data.Aggregate; import org.labkey.api.data.ColumnInfo; import org.labkey.api.data.CompareType; @@ -122,7 +123,7 @@ public class TriggerScriptHelper protected final static SimpleDateFormat _dateTimeFormat = new SimpleDateFormat("yyyy-MM-dd kk:mm"); //NOTE: consider moving these to SharedCache, to allow them to be shared across scripts, yet reset from admin console - private final Map _cachedAccounts = new HashMap<>(); + private final Map _cachedAccounts = new IntHashMap<>(); /** * Options that can be set in modules using EHR trigger scripts to opt in/out of or alter the behavior * of certain validations and business logic. If there are specific aspects of the core EHR trigger code that diff --git a/ehr_billing/src/org/labkey/ehr_billing/query/EHRBillingTriggerHelper.java b/ehr_billing/src/org/labkey/ehr_billing/query/EHRBillingTriggerHelper.java index c1ee5fd06..cb5920703 100644 --- a/ehr_billing/src/org/labkey/ehr_billing/query/EHRBillingTriggerHelper.java +++ b/ehr_billing/src/org/labkey/ehr_billing/query/EHRBillingTriggerHelper.java @@ -15,6 +15,7 @@ */ package org.labkey.ehr_billing.query; +import org.labkey.api.collections.IntHashMap; import org.labkey.api.data.CompareType; import org.labkey.api.data.Container; import org.labkey.api.data.ContainerManager; @@ -32,7 +33,6 @@ import org.labkey.ehr_billing.EHR_BillingManager; import org.labkey.ehr_billing.EHR_BillingSchema; -import java.util.HashMap; import java.util.Map; /** @@ -43,7 +43,7 @@ public class EHRBillingTriggerHelper { private final Container _container; private final User _user; - private final Map> _cachedCharges = new HashMap<>(); + private final Map> _cachedCharges = new IntHashMap<>(); public EHRBillingTriggerHelper(int userId, String containerId) { diff --git a/snd/api-src/org/labkey/api/snd/Package.java b/snd/api-src/org/labkey/api/snd/Package.java index 7a42c45a7..172f4adfb 100644 --- a/snd/api-src/org/labkey/api/snd/Package.java +++ b/snd/api-src/org/labkey/api/snd/Package.java @@ -20,6 +20,7 @@ import org.json.JSONArray; import org.json.JSONObject; import org.labkey.api.collections.ArrayListMap; +import org.labkey.api.collections.IntHashMap; import org.labkey.api.data.Container; import org.labkey.api.gwt.client.model.GWTPropertyDescriptor; import org.labkey.api.security.User; @@ -49,7 +50,7 @@ public class Package private boolean _hasEvent; private boolean _hasProject; private Date _modified; // column will be used as a timestamp - private Map _categories = new HashMap<>(); + private Map _categories = new IntHashMap<>(); private List _attributes = new ArrayList<>(); private List _subpackages = new ArrayList<>(); private Map _extraFields = new HashMap<>(); diff --git a/snd/src/org/labkey/snd/PackageUserSchema.java b/snd/src/org/labkey/snd/PackageUserSchema.java index acbe472eb..d799a5fc2 100644 --- a/snd/src/org/labkey/snd/PackageUserSchema.java +++ b/snd/src/org/labkey/snd/PackageUserSchema.java @@ -6,6 +6,7 @@ import org.jetbrains.annotations.Nullable; import org.labkey.api.collections.CaseInsensitiveHashSet; import org.labkey.api.collections.CaseInsensitiveTreeSet; +import org.labkey.api.collections.IntHashMap; import org.labkey.api.data.AbstractTableInfo; import org.labkey.api.data.BaseColumnInfo; import org.labkey.api.data.ColumnInfo; @@ -92,7 +93,7 @@ public Set getTableNames() PackageTableInfo createPackageTable(String name) { // find domain for name - Map pkgs = new HashMap<>(); + Map pkgs = new IntHashMap<>(); visitAll(p -> { if (name.equalsIgnoreCase(p.description)) pkgs.put(p.packageId, p); @@ -291,7 +292,7 @@ void initPackages() List supers = new SqlSelector(getDbSchema(), new SQLFragment( new SQLFragment("SELECT SuperPkgId, ParentSuperPkgId, Pkgs.PkgId, Description FROM snd.Pkgs INNER JOIN snd.SuperPkgs ON Pkgs.PkgId = SuperPkgs.PkgId WHERE Pkgs.Container = ").appendValue(getContainer()) )).getArrayList(SuperPkg.class); - Map map = new HashMap<>(); + Map map = new IntHashMap<>(); supers.forEach(superPkg -> { var package_ = map.computeIfAbsent(superPkg.pkgId, id -> { diff --git a/snd/src/org/labkey/snd/SNDController.java b/snd/src/org/labkey/snd/SNDController.java index 834041044..d2c1192ac 100644 --- a/snd/src/org/labkey/snd/SNDController.java +++ b/snd/src/org/labkey/snd/SNDController.java @@ -27,6 +27,7 @@ import org.labkey.api.action.SimpleRedirectAction; import org.labkey.api.action.SimpleViewAction; import org.labkey.api.action.SpringActionController; +import org.labkey.api.collections.IntHashMap; import org.labkey.api.gwt.client.DefaultValueType; import org.labkey.api.gwt.client.model.GWTPropertyDescriptor; import org.labkey.api.module.Module; @@ -188,7 +189,7 @@ public ApiResponse execute(SimpleApiJsonForm form, BindException errors) JSONArray jsonCategories = json.getJSONArray("categories"); if (null != jsonCategories) { - Map categories = new HashMap<>(); + Map categories = new IntHashMap<>(); for (int j = 0; j < jsonCategories.length(); j++) { categories.put(jsonCategories.getInt(j), null); @@ -227,7 +228,7 @@ public ApiResponse execute(SimpleApiJsonForm form, BindException errors) { // Get super packages JSONArray jsonSubPackages = json.getJSONArray("subPackages"); // only first-level children (as super package IDs) should be here - Map> superPkgIdToExtraInfoMap = new HashMap<>(); // uses lists because top-level super package IDs might show up multiple times + Map> superPkgIdToExtraInfoMap = new IntHashMap<>(); // uses lists because top-level super package IDs might show up multiple times List uiSubSuperPkgIds = new ArrayList<>(); // create super package for root, if needed @@ -301,7 +302,7 @@ public ApiResponse execute(SimpleApiJsonForm form, BindException errors) { topLevelSuperPkgs = SNDManager.convertToTopLevelSuperPkgs(getContainer(), getUser(), uiSubSuperPkgIds); List uiSuperPkgs = SNDManager.getSuperPkgs(getContainer(), getUser(), uiSubSuperPkgIds); - Map superPkgIdToPkgIdMap = new HashMap<>(); + Map superPkgIdToPkgIdMap = new IntHashMap<>(); // need to get proper package IDs from db since they're not coming in from UI if (uiSuperPkgs != null) diff --git a/snd/src/org/labkey/snd/SNDManager.java b/snd/src/org/labkey/snd/SNDManager.java index 83c2015b6..9ded76e84 100644 --- a/snd/src/org/labkey/snd/SNDManager.java +++ b/snd/src/org/labkey/snd/SNDManager.java @@ -31,6 +31,7 @@ import org.labkey.api.cache.CacheManager; import org.labkey.api.collections.ArrayListMap; import org.labkey.api.collections.CaseInsensitiveHashMap; +import org.labkey.api.collections.IntHashMap; import org.labkey.api.data.CompareType; import org.labkey.api.data.Container; import org.labkey.api.data.DbScope; @@ -77,6 +78,7 @@ import org.labkey.api.snd.EventNote; import org.labkey.api.snd.Package; import org.labkey.api.snd.PackageDomainKind; +import org.labkey.api.snd.PlainTextNarrativeDisplayColumn; import org.labkey.api.snd.Project; import org.labkey.api.snd.ProjectItem; import org.labkey.api.snd.SNDDomainKind; @@ -87,7 +89,6 @@ import org.labkey.snd.query.PackagesTable; import org.labkey.snd.security.QCStateActionEnum; import org.labkey.snd.security.SNDSecurityManager; -import org.labkey.api.snd.PlainTextNarrativeDisplayColumn; import org.labkey.snd.trigger.SNDTriggerManager; import java.sql.SQLException; @@ -552,7 +553,7 @@ private Map getPackageCategories(Container c, User u, int pkgId sql.append(" WHERE PkgId = ?").add(pkgId); SqlSelector selector = new SqlSelector(schema.getDbSchema(), sql); - Map categories = new HashMap<>(); + Map categories = new IntHashMap<>(); try (TableResultSet rs = selector.getResultSet()) { for (Map r : rs) @@ -592,7 +593,7 @@ private Map> getBulkPackageCategories(Container c, } SqlSelector selector = new SqlSelector(schema.getDbSchema(), sql); - Map> pkgCategoriesByPkgId = new HashMap<>(); + Map> pkgCategoriesByPkgId = new IntHashMap<>(); try (TableResultSet resultSet = selector.getResultSet()) { @@ -3364,7 +3365,7 @@ private String generateEventDataNarrative(Container c, User u, Event event, Even { List properties = superPackage.getPkg().getAttributes(); Map propsByName = new HashMap<>(); - Map propsById = new HashMap<>(); + Map propsById = new IntHashMap<>(); for (GWTPropertyDescriptor p : properties) { propsByName.put(p.getName(), p); @@ -4210,7 +4211,7 @@ private Map>> getNextLevelEven )); // Prepare a map for the next level of SuperPackages - Map>> nextLevelEventDataSuperPkgs = new HashMap<>(); + Map>> nextLevelEventDataSuperPkgs = new IntHashMap<>(); nextLevelEventDataSuperPkgs.put(eventData.getEventId(), new HashMap<>()); // Iterate over child event data and link it to the corresponding child SuperPackage diff --git a/snd/src/org/labkey/snd/pipeline/SNDDataHandler.java b/snd/src/org/labkey/snd/pipeline/SNDDataHandler.java index 6fd8b262c..f3ca9fd48 100644 --- a/snd/src/org/labkey/snd/pipeline/SNDDataHandler.java +++ b/snd/src/org/labkey/snd/pipeline/SNDDataHandler.java @@ -347,7 +347,7 @@ public void deleteData(ExpData data, Container container, User user) } @Override - public void runMoved(ExpData newData, Container container, Container targetContainer, String oldRunLSID, String newRunLSID, User user, int oldDataRowID) + public void runMoved(ExpData newData, Container container, Container targetContainer, String oldRunLSID, String newRunLSID, User user, long oldDataRowID) { } diff --git a/snd/src/org/labkey/snd/security/SNDSecurityManager.java b/snd/src/org/labkey/snd/security/SNDSecurityManager.java index 41583c0ca..01afddff2 100644 --- a/snd/src/org/labkey/snd/security/SNDSecurityManager.java +++ b/snd/src/org/labkey/snd/security/SNDSecurityManager.java @@ -17,6 +17,7 @@ import org.labkey.api.collections.CaseInsensitiveHashMap; +import org.labkey.api.collections.IntHashMap; import org.labkey.api.data.CompareType; import org.labkey.api.data.Container; import org.labkey.api.data.CoreSchema; @@ -50,7 +51,6 @@ import java.util.ArrayList; import java.util.Collections; import java.util.EnumSet; -import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; @@ -127,7 +127,7 @@ public void updatePermissions(Container c, User u, Map props) SecurityManager.getGroups(c.getProject(), true); - Map policyMap = new HashMap<>(); // Policy cache + Map policyMap = new IntHashMap<>(); // Policy cache MutableSecurityPolicy policy; Group group; Role role; diff --git a/snd/src/org/labkey/snd/security/view/categorySecurity.jsp b/snd/src/org/labkey/snd/security/view/categorySecurity.jsp index 5e0e2ed4e..e212c3729 100644 --- a/snd/src/org/labkey/snd/security/view/categorySecurity.jsp +++ b/snd/src/org/labkey/snd/security/view/categorySecurity.jsp @@ -15,6 +15,7 @@ * limitations under the License. */ %> +<%@ page import="org.labkey.api.collections.IntHashMap" %> <%@ page import="org.labkey.api.data.ContainerManager" %> <%@ page import="org.labkey.api.security.Group" %> <%@ page import="org.labkey.api.security.SecurityPolicy" %> @@ -68,7 +69,7 @@ Map categories = sndService.getAllCategories(getContainer(), getUser()); Map roles = sndSecurityManager.getAllSecurityRoles(); - Map> roleMapping = new HashMap<>(); + Map> roleMapping = new IntHashMap<>(); Map roleNameMap; SecurityPolicy policy; List policyRoles;