import omero.ServerError; import omero.cmd.CmdCallbackI; import omero.cmd.Delete2; import omero.cmd.OK; import omero.cmd.Response; import omero.gateway.util.Requests; import omero.api.ServiceFactoryPrx; import omero.model.*; import static omero.rtypes.*; import Glacier2.CannotCreateSessionException; import Glacier2.PermissionDeniedException; import java.util.HashMap; import java.util.Map; /** * Uses a {@link Delete2} request instance * to delete a FileAnnotation along with its associated * OriginalFile and any annotation links. */ public class FileAnnotationDelete { public static void main(String[] args) throws CannotCreateSessionException, PermissionDeniedException, ServerError, java.io.IOException { omero.client c = new omero.client(); String ice_config = c.getProperty("Ice.Config"); try { ServiceFactoryPrx s = c.createSession(); Dataset d = new DatasetI(); d.setName(rstring("FileAnnotationDelete")); FileAnnotation fa = new FileAnnotationI(); OriginalFile file = c.upload(new java.io.File(ice_config)); fa.setFile(file); d.linkAnnotation(fa); d = (Dataset) s.getUpdateService().saveAndReturnObject(d); fa = (FileAnnotation) d.linkedAnnotationList().get(0); long faID = fa.getId().getValue(); Delete2 deleteCmd = Requests.delete("Annotation", faID); Map<String, String> callContext = new HashMap<String, String>(); CmdCallbackI cb = null; try { cb = new CmdCallbackI(c, s.submit(deleteCmd, callContext)); cb.loop(10, 500); Response rsp = cb.getResponse(); if (rsp instanceof OK) { System.out.println("OK"); } } catch (InterruptedException lt) { System.out.println("Not finished in 5 seconds. Cancelling..."); if (!cb.isCancelled()) System.out.println("ERROR: Failed to cancel"); } finally { if (cb != null) cb.close(true); } } finally { c.closeSession(); } } }