Copying and Deleting

In a Move or Copy operation, the first argument is the thing to move or make a copy of, the second argument is the parent to move or copy to (which will be the same as the current parent for a rename operation), and the third argument is the name to give the resource, which will usually be the current name if the resource is being moved to a different folder

An example from Bandstand:

    @Move
    public void move(Image image, BaseEntity newParent, String newName) {
        Transaction tx = SessionManager.session().beginTransaction();
        if( newParent != image.getBaseEntity()) {
            BaseEntity oldParent = image.getBaseEntity();
            image.setBaseEntity(newParent);
            oldParent.getImages().remove(image);
            if( newParent.getImages() == null ) {
                newParent.setImages(new ArrayList<Image>());
            }
        }
        image.setDisplayName(newName);
        SessionManager.session().save(image);
        SessionManager.session().flush();
        tx.commit();
    }

 

Note that moves and copies are not done recursively by milton, its up to you to ensure that child resources are copied correctly.

Next Article:

Locking resources