view client/src/main/java/info/textgrid/middleware/digilib/clients/cli/DigilibCli.java @ 7:39c4892724ae

new version with maven modules for service and client.
author casties
date Thu, 16 Jun 2011 17:33:06 +0200
parents
children 99bd25677ba8
line wrap: on
line source

/**
 * 
 */
package info.textgrid.middleware.digilib.clients.cli;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

import javax.xml.ws.Holder;

import info.textgrid.namespaces.middleware.digilib.services.digilibservice.DigilibService;
import info.textgrid.namespaces.middleware.digilib.services.digilibservice.DigilibServicePortType;

/**
 * @author casties
 *
 */
public class DigilibCli {

    /**
     * @param args
     */
    public static void main(String[] args) {
        if (args.length != 4) {
            System.err.println("use: DgibilibCli SID URI QUERY FILENAME");
            System.exit(1);
        }
        String sid = args[0];
        String uri = args[1];
        String query = args[2];
        String filename = args[3];
        // call service
        byte[] imageData = getScaledImage(sid, uri, query);
        // try to copy to file
        System.out.println("writing " + filename);
        File f = new File(filename);
        try {
            OutputStream ostream = new FileOutputStream(f);
            ostream.write(imageData);
            ostream.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        System.out.println("Done.");
    }

    public static byte[] getScaledImage(String sid, String uri, String query) {
        DigilibService service = new DigilibService();
        DigilibServicePortType port = service.getDigilibServicePort();
        String logParam = null;
        // Holder for return data 
        Holder<String> mimeType = new Holder<String>();
        Holder<byte[]> imageData = new Holder<byte[]>();
        Holder<Integer> width = new Holder<Integer>();
        Holder<Integer> height = new Holder<Integer>();
        // call service -- fills Holder
        port.getScaledImage(sid, uri, query, logParam, mimeType, imageData, width, height);
        System.out.println("mimeType="+mimeType.value);
        System.out.println("imageData="+imageData.value);
        System.out.println("width="+width.value);
        System.out.println("height="+height.value);
        return imageData.value;
    }
    
}