private void setupContent()

in slingshot/src/main/java/org/apache/sling/sample/slingshot/impl/SetupService.java [74:113]


    private void setupContent(final ResourceResolver resolver) throws PersistenceException {
        final Resource root = resolver.getResource(SlingshotConstants.APP_ROOT_PATH);
        if ( root != null ) {
            // fix resource type of root folder
            if ( !root.isResourceType(InternalConstants.RESOURCETYPE_HOME)) {
                final ModifiableValueMap mvm = root.adaptTo(ModifiableValueMap.class);
                mvm.put(ResourceResolver.PROPERTY_RESOURCE_TYPE, InternalConstants.RESOURCETYPE_HOME);
                resolver.commit();
            }
            final Resource usersResource = root.getChild("users");
            for(final String userName : USERS) {
                Resource homeResource = resolver.getResource(usersResource, userName);
                if ( homeResource == null ) {
                    final Map<String, Object> props = new HashMap<String, Object>();
                    props.put(ResourceResolver.PROPERTY_RESOURCE_TYPE, User.RESOURCETYPE);
                    homeResource = resolver.create(usersResource, userName, props);
                    resolver.commit();
                }
                for(final String def : FOLDERS) {
                    final int index = def.indexOf(':');
                    final String name;
                    final String rt;
                    if ( index == -1 ) {
                        name = def;
                        rt = "sling:OrderedFolder";
                    } else {
                        name = def.substring(0, index);
                        rt = def.substring(index + 1);
                    }
                    final Resource rsrc = resolver.getResource(homeResource, name);
                    if ( rsrc == null ) {
                        final Map<String, Object> props = new HashMap<String, Object>();
                        props.put(ResourceResolver.PROPERTY_RESOURCE_TYPE, rt);
                        resolver.create(homeResource, name, props);
                        resolver.commit();
                    }
                }
            }
        }
    }