diff --git a/src/main/java/ru/simsonic/rscPermissions/InternalCache/InternalCache.java b/src/main/java/ru/simsonic/rscPermissions/InternalCache/InternalCache.java index 7c51075..6e1dc92 100644 --- a/src/main/java/ru/simsonic/rscPermissions/InternalCache/InternalCache.java +++ b/src/main/java/ru/simsonic/rscPermissions/InternalCache/InternalCache.java @@ -12,21 +12,18 @@ import ru.simsonic.rscPermissions.Backends.DatabaseContents; public class InternalCache { - public InternalCache() - { - } - protected final RowInheritance defaultInheritance = new RowInheritance(); + private final HashMap entities_g = new HashMap<>(); + private final HashMap entities_u = new HashMap<>(); + private final ArrayList permissions_p2g = new ArrayList<>(); + private final ArrayList permissions_p2u = new ArrayList<>(); + private final ArrayList inheritance_g2g = new ArrayList<>(); + private final ArrayList inheritance_g2u = new ArrayList<>(); + private final RowInheritance defaultInheritance = new RowInheritance(); public void setDefaultGroup(String defaultGroup) { defaultInheritance.parent = defaultGroup; defaultInheritance.deriveInstance(); } - protected final HashMap entities_g = new HashMap<>(); - protected final HashMap entities_u = new HashMap<>(); - protected final ArrayList permissions_p2g = new ArrayList<>(); - protected final ArrayList permissions_p2u = new ArrayList<>(); - protected final ArrayList inheritance_g2g = new ArrayList<>(); - protected final ArrayList inheritance_g2u = new ArrayList<>(); public static class InheritanceLeaf implements Comparable { public RowInheritance node; @@ -180,51 +177,44 @@ public class InternalCache importEntities(contents.entities); importPermissions(contents.permissions); importInheritance(contents.inheritance); + buildEntityTree(); } - private int importEntities(RowEntity[] rows) + private void importEntities(RowEntity[] rows) { entities_g.clear(); entities_u.clear(); - if(rows == null) - return 0; - for(RowEntity row : rows) - { - if(row.entityType == EntityType.group) - entities_g.put(row.entity.toLowerCase(), row); - else - entities_u.put(row.entity.toLowerCase(), row); - } - return entities_g.size() + entities_u.size(); + if(rows != null) + for(RowEntity row : rows) + { + if(row.entityType == EntityType.group) + entities_g.put(row.entity.toLowerCase(), row); + else + entities_u.put(row.entity.toLowerCase(), row); + } } - private int importPermissions(RowPermission[] rows) + private void importPermissions(RowPermission[] rows) { permissions_p2g.clear(); permissions_p2u.clear(); - if(rows == null) - return 0; - for(RowPermission row : rows) - { - if(row.entityType == EntityType.group) - permissions_p2g.add(row); - else - permissions_p2u.add(row); - } - return permissions_p2g.size() + permissions_p2u.size(); + if(rows != null) + for(RowPermission row : rows) + { + if(row.entityType == EntityType.group) + permissions_p2g.add(row); + else + permissions_p2u.add(row); + } } - private int importInheritance(RowInheritance[] rows) + private void importInheritance(RowInheritance[] rows) { inheritance_g2g.clear(); inheritance_g2u.clear(); - if(rows == null) - return 0; - for(RowInheritance row : rows) - { - if(row.childType == EntityType.group) - inheritance_g2g.add(row); - else - inheritance_g2u.add(row); - } - return inheritance_g2g.size() + inheritance_g2u.size(); + if(rows != null) + for(RowInheritance row : rows) + if(row.childType == EntityType.group) + inheritance_g2g.add(row); + else + inheritance_g2u.add(row); } public synchronized void clear() {