/*
*------------------------------------------------------------------------------
* Copyright (C) 2006-2016 University of Dundee & Open Microscopy Environment.
* All rights reserved.
*
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
*------------------------------------------------------------------------------
*/
package training;
import java.util.List;
import omero.gateway.Gateway;
import omero.gateway.LoginCredentials;
import omero.gateway.SecurityContext;
import omero.gateway.facility.MetadataFacility;
import omero.log.SimpleLogger;
import omero.model.ImageI;
import omero.gateway.model.ChannelData;
import omero.gateway.model.ExperimenterData;
import omero.gateway.model.ImageAcquisitionData;
/**
* Sample code showing how to load image metadata
*
* @author Jean-Marie Burel
* <a href="mailto:j.burel@dundee.ac.uk">j.burel@dundee.ac.uk</a>
* @since Beta4.3.2
*/
public class LoadMetadataAdvanced
{
//The value used if the configuration file is not used. To edit*/
/** The server address.*/
private static String hostName = "serverName";
/** The username.*/
private static String userName = "userName";
/** The password.*/
private static String password = "password";
private static long imageId = 1;
//end edit
private Gateway gateway;
private SecurityContext ctx;
/**
* Load the image acquisition data.
*
* @param imageId The image's id.
*/
private void loadAcquisitionData(long imageId)
throws Exception
{
MetadataFacility mdf = gateway.getFacility(MetadataFacility.class);
ImageAcquisitionData image = mdf.getImageAcquisitionData(ctx, imageId);
System.err.println(image.getHumidity());
}
/**
* Load the channel data.
*
* @param imageId The image's id.
*/
private void loadChannelData(long imageId)
throws Exception
{
MetadataFacility mdf = gateway.getFacility(MetadataFacility.class);
List<ChannelData> data = mdf.getChannelData(ctx, imageId);
for(ChannelData c : data) {
System.out.println(c.getIndex());
}
}
/**
* Connects and invokes the various methods.
*
* @param args The login credentials.
* @param imageId The image id.
*/
LoadMetadataAdvanced(String[] args, long imageId)
{
LoginCredentials cred = new LoginCredentials(args);
gateway = new Gateway(new SimpleLogger());
try {
//First connect.
ExperimenterData user = gateway.connect(cred);
ctx = new SecurityContext(user.getGroupId());
loadAcquisitionData(imageId);
loadChannelData(imageId);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
gateway.disconnect(); // Be sure to disconnect
} catch (Exception e) {
e.printStackTrace();
}
}
}
/**
* Runs the script without configuration options.
*
* @param args The login credentials.
*/
public static void main(String[] args)
{
if (args == null || args.length == 0)
args = new String[] { "--omero.host=" + hostName,
"--omero.user=" + userName, "--omero.pass=" + password };
new LoadMetadataAdvanced(args, imageId);
System.exit(0);
}
}