import omero.model.Dataset;
import omero.model.DatasetI;
import omero.model.DatasetImageLink;
import omero.model.EventI;
import omero.model.Image;
import omero.model.ImageI;
import omero.model.PixelsI;
import java.util.*;
public class collectionmethods {
public static void main(String args[]) {
Image image = new ImageI(1, true);
image.getDetails().setUpdateEvent( new EventI(1L, false) );
// On creation, all collections are
// initialized to empty, and can be added
// to.
assert image.sizeOfDatasetLinks() == 0;
Dataset dataset = new DatasetI(1L, false);
DatasetImageLink link = image.linkDataset(dataset);
assert image.sizeOfDatasetLinks() == 1;
// If you want to work with this collection,
// you'll need to get a copy.
List<DatasetImageLink> links = image.copyDatasetLinks();
// When you are done working with it, you can
// unload the datasets, assuming the changes
// have been persisted to the server.
image.unloadDatasetLinks();
assert image.sizeOfDatasetLinks() < 0;
try {
image.linkDataset( new DatasetI() );
} catch (Exception e) {
// Can't access an unloaded collection
}
// The reload...() method allows one instance
// to take over a collection from another, if it
// has been properly initialized on the server.
// sameImage will have it's collection unloaded.
Image sameImage = new ImageI(1L, true);
sameImage.getDetails().setUpdateEvent( new EventI(1L, false) );
sameImage.linkDataset( new DatasetI(1L, false) );
image.reloadDatasetLinks( sameImage );
assert image.sizeOfDatasetLinks() == 1;
assert sameImage.sizeOfDatasetLinks() < 0;
// If you would like to remove all the member
// elements from a collection, don't unload it
// but "clear" it.
image.clearDatasetLinks();
// Saving this to the database will remove
// all dataset links!
// Finally, all collections can be unloaded
// to use an instance as a single row in the db.
image.unloadCollections();
// Ordered collections have slightly different methods.
image = new ImageI(1L, true);
image.addPixels( new PixelsI() );
image.getPixels(0);
image.getPrimaryPixels(); // Same thing
image.removePixels( image.getPixels(0) );
}
}