diff 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 diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/client/src/main/java/info/textgrid/middleware/digilib/clients/cli/DigilibCli.java	Thu Jun 16 17:33:06 2011 +0200
@@ -0,0 +1,68 @@
+/**
+ * 
+ */
+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;
+    }
+    
+}