This module is view-only. You do not have an enrolement for this module.

Creating new folders

Creating new folders (aka directories or collections) is done in Webdav by the MKCOL method, and is supported in milton with the MakeCollectionableResource interface which has a single method:

CollectionResource createCollection(String newName) throws NotAuthorizedException, ConflictException, BadRequestException;

So to be able to create Galaxies in our example project you would implement MakeCollectionableResource on RootUniverseResource like this:

public class RootUniverseResource extends AbstractResource implements MakeCollectionableResource {

    private static org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger(RootUniverseResource.class);
    private final UniverseDao universeDao;
    private ArrayList<Resource> children;
   
    public RootUniverseResource(UniverseDao universeDao) {
        this.universeDao = universeDao;
    }

    @Override
    public CollectionResource createCollection(String newName) throws NotAuthorizedException, ConflictException, BadRequestException {
        UniverseDao.Galaxy s = universeDao.addGalaxy(newName);
        GalaxyResource r = new GalaxyResource(this, s);
        getChildren();
        children.add(r);
        return r;
    }

Implement it in the same way on GalaxyResource and SolarSystemResource to allow all of our resources to be created.