mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-09-17 14:21:39 +00:00
Improvements to hashing and hash set/map sizing
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@5079 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -53,7 +53,7 @@ public abstract class AbstractPermissionReference implements PermissionReference
|
|||||||
{
|
{
|
||||||
if (hashcode == 0)
|
if (hashcode == 0)
|
||||||
{
|
{
|
||||||
hashcode = getQName().hashCode() * 37 + getName().hashCode();
|
hashcode = (getName().hashCode() * 1000003) + getQName().hashCode();
|
||||||
}
|
}
|
||||||
return hashcode;
|
return hashcode;
|
||||||
}
|
}
|
||||||
|
@@ -66,7 +66,7 @@ public final class PermissionGroup extends AbstractPermissionReference implement
|
|||||||
|
|
||||||
private QName container;
|
private QName container;
|
||||||
|
|
||||||
private Set<PermissionReference> includedPermissionGroups = new HashSet<PermissionReference>();
|
private Set<PermissionReference> includedPermissionGroups = new HashSet<PermissionReference>(4, 1.0f);
|
||||||
|
|
||||||
private boolean requiresType;
|
private boolean requiresType;
|
||||||
|
|
||||||
|
@@ -87,20 +87,23 @@ public class PermissionModel implements ModelDAO, InitializingBean
|
|||||||
|
|
||||||
private String model;
|
private String model;
|
||||||
|
|
||||||
|
|
||||||
|
// Aprrox 6 - default size OK
|
||||||
private Map<QName, PermissionSet> permissionSets = new HashMap<QName, PermissionSet>();
|
private Map<QName, PermissionSet> permissionSets = new HashMap<QName, PermissionSet>();
|
||||||
|
|
||||||
|
// Global permissions - default size OK
|
||||||
private Set<GlobalPermissionEntry> globalPermissions = new HashSet<GlobalPermissionEntry>();
|
private Set<GlobalPermissionEntry> globalPermissions = new HashSet<GlobalPermissionEntry>();
|
||||||
|
|
||||||
private AccessStatus defaultPermission;
|
private AccessStatus defaultPermission;
|
||||||
|
|
||||||
// Cache granting permissions
|
// Cache granting permissions
|
||||||
private HashMap<PermissionReference, Set<PermissionReference>> grantingPermissions = new HashMap<PermissionReference, Set<PermissionReference>>();
|
private HashMap<PermissionReference, Set<PermissionReference>> grantingPermissions = new HashMap<PermissionReference, Set<PermissionReference>>(128, 1.0f);
|
||||||
|
|
||||||
// Cache grantees
|
// Cache grantees
|
||||||
private HashMap<PermissionReference, Set<PermissionReference>> granteePermissions = new HashMap<PermissionReference, Set<PermissionReference>>();
|
private HashMap<PermissionReference, Set<PermissionReference>> granteePermissions = new HashMap<PermissionReference, Set<PermissionReference>>(128, 1.0f);
|
||||||
|
|
||||||
// Cache the mapping of extended groups to the base
|
// Cache the mapping of extended groups to the base
|
||||||
private HashMap<PermissionGroup, PermissionGroup> groupsToBaseGroup = new HashMap<PermissionGroup, PermissionGroup>();
|
private HashMap<PermissionGroup, PermissionGroup> groupsToBaseGroup = new HashMap<PermissionGroup, PermissionGroup>(128, 1.0f);
|
||||||
|
|
||||||
private HashMap<String, PermissionReference> uniqueMap;
|
private HashMap<String, PermissionReference> uniqueMap;
|
||||||
|
|
||||||
@@ -291,7 +294,7 @@ public class PermissionModel implements ModelDAO, InitializingBean
|
|||||||
LinkedHashSet<PermissionReference> permissions = cache.get(type);
|
LinkedHashSet<PermissionReference> permissions = cache.get(type);
|
||||||
if (permissions == null)
|
if (permissions == null)
|
||||||
{
|
{
|
||||||
permissions = new LinkedHashSet<PermissionReference>();
|
permissions = new LinkedHashSet<PermissionReference>(128, 1.0f);
|
||||||
ClassDefinition cd = dictionaryService.getClass(type);
|
ClassDefinition cd = dictionaryService.getClass(type);
|
||||||
if (cd != null)
|
if (cd != null)
|
||||||
{
|
{
|
||||||
@@ -467,7 +470,7 @@ public class PermissionModel implements ModelDAO, InitializingBean
|
|||||||
private Set<PermissionReference> getGrantingPermissionsImpl(PermissionReference permissionReference)
|
private Set<PermissionReference> getGrantingPermissionsImpl(PermissionReference permissionReference)
|
||||||
{
|
{
|
||||||
// Query the model
|
// Query the model
|
||||||
HashSet<PermissionReference> permissions = new HashSet<PermissionReference>();
|
HashSet<PermissionReference> permissions = new HashSet<PermissionReference>(128, 1.0f);
|
||||||
permissions.add(permissionReference);
|
permissions.add(permissionReference);
|
||||||
for (PermissionSet ps : permissionSets.values())
|
for (PermissionSet ps : permissionSets.values())
|
||||||
{
|
{
|
||||||
@@ -539,7 +542,7 @@ public class PermissionModel implements ModelDAO, InitializingBean
|
|||||||
private Set<PermissionReference> getGranteePermissionsImpl(PermissionReference permissionReference)
|
private Set<PermissionReference> getGranteePermissionsImpl(PermissionReference permissionReference)
|
||||||
{
|
{
|
||||||
// Query the model
|
// Query the model
|
||||||
HashSet<PermissionReference> permissions = new HashSet<PermissionReference>();
|
HashSet<PermissionReference> permissions = new HashSet<PermissionReference>(128, 1.0f);
|
||||||
permissions.add(permissionReference);
|
permissions.add(permissionReference);
|
||||||
for (PermissionSet ps : permissionSets.values())
|
for (PermissionSet ps : permissionSets.values())
|
||||||
{
|
{
|
||||||
@@ -604,7 +607,7 @@ public class PermissionModel implements ModelDAO, InitializingBean
|
|||||||
|
|
||||||
private Set<PermissionReference> getAllPermissions()
|
private Set<PermissionReference> getAllPermissions()
|
||||||
{
|
{
|
||||||
HashSet<PermissionReference> permissions = new HashSet<PermissionReference>();
|
HashSet<PermissionReference> permissions = new HashSet<PermissionReference>(128, 1.0f);
|
||||||
for (PermissionSet ps : permissionSets.values())
|
for (PermissionSet ps : permissionSets.values())
|
||||||
{
|
{
|
||||||
for (PermissionGroup pg : ps.getPermissionGroups())
|
for (PermissionGroup pg : ps.getPermissionGroups())
|
||||||
@@ -914,11 +917,11 @@ public class PermissionModel implements ModelDAO, InitializingBean
|
|||||||
|
|
||||||
private void buildUniquePermissionMap()
|
private void buildUniquePermissionMap()
|
||||||
{
|
{
|
||||||
Set<String> excluded = new HashSet<String>();
|
Set<String> excluded = new HashSet<String>(64, 1.0f);
|
||||||
uniqueMap = new HashMap<String, PermissionReference>();
|
uniqueMap = new HashMap<String, PermissionReference>(128, 1.0f);
|
||||||
permissionReferenceMap = new HashMap<String, PermissionReference>();
|
permissionReferenceMap = new HashMap<String, PermissionReference>(128, 1.0f);
|
||||||
permissionGroupMap = new HashMap<PermissionReference, PermissionGroup>();
|
permissionGroupMap = new HashMap<PermissionReference, PermissionGroup>(64, 1.0f);
|
||||||
permissionMap = new HashMap<PermissionReference, Permission>();
|
permissionMap = new HashMap<PermissionReference, Permission>(32, 1.0f);
|
||||||
for (PermissionSet ps : permissionSets.values())
|
for (PermissionSet ps : permissionSets.values())
|
||||||
{
|
{
|
||||||
for (PermissionGroup pg : ps.getPermissionGroups())
|
for (PermissionGroup pg : ps.getPermissionGroups())
|
||||||
|
@@ -45,9 +45,9 @@ public final class PermissionSet implements XMLModelInitialisable
|
|||||||
|
|
||||||
private boolean exposeAll;
|
private boolean exposeAll;
|
||||||
|
|
||||||
private Set<PermissionGroup> permissionGroups = new LinkedHashSet<PermissionGroup>();
|
private Set<PermissionGroup> permissionGroups = new LinkedHashSet<PermissionGroup>(32, 1.0f);
|
||||||
|
|
||||||
private Set<Permission> permissions = new HashSet<Permission>();
|
private Set<Permission> permissions = new HashSet<Permission>(32, 1.0f);
|
||||||
|
|
||||||
public PermissionSet()
|
public PermissionSet()
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user