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.