public HierarchyAccess clone() { HierarchyAccessImpl hierarchyAccess = new HierarchyAccessImpl( role, hierarchy, access, topLevel, bottomLevel, rollupPolicy); hierarchyAccess.memberGrants.putAll(memberGrants); return hierarchyAccess; }
public HierarchyAccess getAccessDetails(Hierarchy hierarchy) { Util.assertPrecondition(hierarchy != null, "hierarchy != null"); if (hierarchyGrants.containsKey(hierarchy)) { return hierarchyGrants.get(hierarchy); } final Access hierarchyAccess; final Access schemaGrant = schemaGrants.get(hierarchy.getDimension().getSchema()); if (schemaGrant != null) { if (schemaGrant == Access.ALL) { hierarchyAccess = Access.ALL; } else { // Let's check the parent dimension Access dimAccess = getAccess( hierarchy.getDimension() ); hierarchyAccess = dimAccess == Access.ALL ? Access.ALL : Access.NONE; } } else { hierarchyAccess = Access.ALL; } return new HierarchyAccessImpl( this, hierarchy, hierarchyAccess, null, null, RollupPolicy.HIDDEN); }
hierarchyGrants.put( hierarchy, new HierarchyAccessImpl( this, hierarchy, access, topLevel, bottomLevel, rollupPolicy));
/** * Creates an element which represents all access to a hierarchy. * * @param hierarchy Hierarchy * @return element representing all access to a given hierarchy */ public static HierarchyAccess createAllAccess(Hierarchy hierarchy) { return new HierarchyAccessImpl( Util.createRootRole(hierarchy.getDimension().getSchema()), hierarchy, Access.ALL, null, null, Role.RollupPolicy.FULL); }