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.