void loadAlreadyExistingAuthorizables()

in src/main/java/org/apache/sling/testing/mock/jcr/MockUserManager.java [75:113]


    void loadAlreadyExistingAuthorizables() {
        try {
            Node rootNode = session.getRootNode();
            if (rootNode.hasNode("home")) {
                FilteringItemVisitor visitor = new FilteringItemVisitor() {
                    @Override
                    protected void entering(Node node, int level) throws RepositoryException {
                        if (node.isNodeType(UserConstants.NT_REP_USER)) {
                            String userID = node.getProperty(UserConstants.REP_AUTHORIZABLE_ID).getString();
                            authorizables.computeIfAbsent(userID, id -> new MockUser(id, null, node, MockUserManager.this));
                        } else if (node.isNodeType(UserConstants.NT_REP_GROUP)) {
                            String userID = node.getProperty(UserConstants.REP_AUTHORIZABLE_ID).getString();
                            authorizables.computeIfAbsent(userID, id -> new MockGroup(id, null, node, MockUserManager.this));
                        }
                    }

                    @Override
                    protected void entering(Property property, int level) throws RepositoryException {
                        // no-op
                    }

                    @Override
                    protected void leaving(Property property, int level) throws RepositoryException {
                        // no-op
                    }

                    @Override
                    protected void leaving(Node node, int level) throws RepositoryException {
                        // no-op
                    }
                };
                visitor.setWalkProperties(false);

                rootNode.getNode("home").accept(visitor);
            }
        } catch (RepositoryException e) {
            logger.error("Failed to load already existing authorizables", e);
        }
    }