summaryrefslogtreecommitdiffstats
path: root/manuals_and_examples/examples/java
diff options
context:
space:
mode:
Diffstat (limited to 'manuals_and_examples/examples/java')
-rw-r--r--manuals_and_examples/examples/java/AvgCell.java145
-rw-r--r--manuals_and_examples/examples/java/Lookup.java130
-rw-r--r--manuals_and_examples/examples/java/Makefile45
-rw-r--r--manuals_and_examples/examples/java/Query.java225
4 files changed, 545 insertions, 0 deletions
diff --git a/manuals_and_examples/examples/java/AvgCell.java b/manuals_and_examples/examples/java/AvgCell.java
new file mode 100644
index 0000000..787f2a4
--- /dev/null
+++ b/manuals_and_examples/examples/java/AvgCell.java
@@ -0,0 +1,145 @@
+/*
+* This file is part of rasdaman community.
+*
+* Rasdaman community 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 3 of the License, or
+* (at your option) any later version.
+*
+* Rasdaman community 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 rasdaman community. If not, see <http://www.gnu.org/licenses/>.
+*
+* Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter Baumann /
+rasdaman GmbH.
+*
+* For more information please see <http://www.rasdaman.org>
+* or contact Peter Baumann via <baumann@rasdaman.com>.
+*/
+/*************************************************************
+ *
+ *
+ * PURPOSE: Example Java program for computing the avg cell value
+ * for each n-D 8-bit grey image in a given collection.
+ *
+ *
+ ************************************************************/
+
+import rasj.*;
+import rasj.odmg.*;
+import org.odmg.*;
+import java.util.*;
+
+/** Example Java program for computing the avg cell value
+ * for each n-D 8-bit grey image in a given collection.
+ *
+ * set the server name with -server, the database name with -database, the collection name with -collection,
+ * the port number with -port, the user login with -user, the password with -passwd
+ */
+public class AvgCell
+{
+ public static void main(String[] args)
+ {
+ String server = "localhost";
+ String base = "RASBASE";
+ String coll = "mr";
+ String port = "7001";
+ String user = "rasguest";
+ String passwd = "rasguest";
+
+ double sum;
+
+ for (int i=args.length-1; i>=0; i--)
+ {
+ //System.out.println(args[i]);
+ if (args[i].equals("-server"))
+ server = args[i+1];
+ if (args[i].equals("-database"))
+ base = args[i+1];
+ if (args[i].equals("-collection"))
+ coll = args[i+1];
+ if (args[i].equals("-port"))
+ port = args[i+1];
+ if (args[i].equals("-user"))
+ user = args[i+1];
+ if (args[i].equals("-passwd"))
+ passwd = args[i+1];
+ }
+ //System.out.println(server+base+coll+port+user+passwd);
+
+ DBag resultBag = null;
+ RasGMArray result = null;
+ Transaction myTa = null;
+ Database myDb = null;
+ OQLQuery myQu = null;
+
+ try
+ {
+ Implementation myApp = new RasImplementation("http://"+server+":"+port);
+ ((RasImplementation)myApp).setUserIdentification(user, passwd);
+ myDb = myApp.newDatabase();
+
+ System.out.println("Opening database ...");
+ myDb.open(base, Database.OPEN_READ_ONLY);
+
+ System.out.println("Starting transaction ...");
+ myTa = myApp.newTransaction();
+ myTa.begin();
+
+ System.out.println("Retrieving MDDs ...");
+ myQu = myApp.newOQLQuery();
+ myQu.create("select img from " + coll + " as img");
+ resultBag = (DBag)myQu.execute();
+ if (resultBag != null)
+ {
+ Iterator iter = resultBag.iterator();
+ while (iter.hasNext())
+ {
+ result = (RasGMArray)iter.next();
+ System.out.println(result);
+ if(result.getTypeLength() != 1)
+ System.out.println("skipping image because of non-int cell type");
+ else
+ {
+ byte[] pixelfield = result.getArray();
+ sum = 0.0;
+ long size = result.getArraySize();
+ for(int i=0; i<size; i++)
+ sum += pixelfield[i];
+ System.out.println("Avarage over " + size + " pixels is " + ((sum/size)+128));
+ }
+
+ }
+ System.out.println("All results");
+ }
+
+ System.out.println( "Committing transaction ..." );
+ myTa.commit();
+
+ System.out.println( "Closing database ..." );
+ myDb.close();
+
+ }
+ catch (org.odmg.ODMGException e)
+ {
+ System.out.println("An exception has occurred: " + e.getMessage());
+ System.out.println("Try to abort the transaction ...");
+ if(myTa != null) myTa.abort();
+
+ try
+ {
+ System.out.println("Try to close the database ...");
+ if(myDb != null) myDb.close();
+ }
+ catch ( org.odmg.ODMGException exp )
+ {
+ System.err.println("Could not close the database: " + exp.getMessage());
+ }
+ }
+ System.out.println( "Done." );
+ }
+}
diff --git a/manuals_and_examples/examples/java/Lookup.java b/manuals_and_examples/examples/java/Lookup.java
new file mode 100644
index 0000000..4b5eefc
--- /dev/null
+++ b/manuals_and_examples/examples/java/Lookup.java
@@ -0,0 +1,130 @@
+/*
+* This file is part of rasdaman community.
+*
+* Rasdaman community 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 3 of the License, or
+* (at your option) any later version.
+*
+* Rasdaman community 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 rasdaman community. If not, see <http://www.gnu.org/licenses/>.
+*
+* Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter Baumann /
+rasdaman GmbH.
+*
+* For more information please see <http://www.rasdaman.org>
+* or contact Peter Baumann via <baumann@rasdaman.com>.
+*/
+/*************************************************************
+ *
+ *
+ * PURPOSE: Example Java program for looking up a collection
+ *
+ *
+ ************************************************************/
+
+import rasj.*;
+import rasj.odmg.*;
+import org.odmg.*;
+import java.util.*;
+
+/**
+ * Example Java program for looking up a collection
+ *
+ * set the server name with -server, the database name with -database, the collection name with -collection,
+ * the port number with -port, the user login with -user, the password with -passwd
+ */
+public class Lookup
+{
+ public static void main(String[] args)
+ {
+ String server = "localhost";
+ String base = "RASBASE";
+ String coll = "rockies";
+ String port = "7001";
+ String user = "rasguest";
+ String passwd = "rasguest";
+
+ for (int i=args.length-1; i>=0; i--)
+ {
+ //System.out.println(args[i]);
+ if (args[i].equals("-server"))
+ server = args[i+1];
+ if (args[i].equals("-database"))
+ base = args[i+1];
+ if (args[i].equals("-collection"))
+ coll = args[i+1];
+ if (args[i].equals("-port"))
+ port = args[i+1];
+ if (args[i].equals("-user"))
+ user = args[i+1];
+ if (args[i].equals("-passwd"))
+ passwd = args[i+1];
+ }
+ //System.out.println(server+base+coll+port+user+passwd);
+
+ DBag resultBag = null;
+ Object result = null;
+ Transaction myTa = null;
+ Database myDb = null;
+ OQLQuery myQu = null;
+
+ try
+ {
+ Implementation myApp = new RasImplementation("http://"+server+":"+port);
+ ((RasImplementation)myApp).setUserIdentification(user, passwd);
+ myDb = myApp.newDatabase();
+
+ System.out.println("Opening database ...");
+ myDb.open(base, Database.OPEN_READ_ONLY);
+
+ System.out.println("Starting transaction ...");
+ myTa = myApp.newTransaction();
+ myTa.begin();
+
+ System.out.println("Retrieving results ...");
+ myQu = myApp.newOQLQuery();
+ myQu.create("select img from "+coll+" as img");
+ resultBag = (DBag)myQu.execute();
+ if (resultBag != null)
+ {
+ Iterator iter = resultBag.iterator();
+ while (iter.hasNext())
+ {
+ result = iter.next();
+ System.out.println(result);
+ }
+ System.out.println("All results");
+ }
+
+ System.out.println( "Committing transaction ..." );
+ myTa.commit();
+
+ System.out.println( "Closing database ..." );
+ myDb.close();
+
+ }
+ catch (org.odmg.ODMGException e)
+ {
+ System.out.println("An exception has occurred: " + e.getMessage());
+ System.out.println("Try to abort the transaction ...");
+ if(myTa != null) myTa.abort();
+
+ try
+ {
+ System.out.println("Try to close the database ...");
+ if(myDb != null) myDb.close();
+ }
+ catch ( org.odmg.ODMGException exp )
+ {
+ System.err.println("Could not close the database: " + exp.getMessage());
+ }
+ }
+ System.out.println( "Done." );
+ }
+}
diff --git a/manuals_and_examples/examples/java/Makefile b/manuals_and_examples/examples/java/Makefile
new file mode 100644
index 0000000..c97eff2
--- /dev/null
+++ b/manuals_and_examples/examples/java/Makefile
@@ -0,0 +1,45 @@
+# -*-Makefile-*-
+#
+# This file is part of rasdaman community.
+#
+# Rasdaman community 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 3 of the License, or
+# (at your option) any later version.
+#
+# Rasdaman community 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 rasdaman community. If not, see <http://www.gnu.org/licenses/>.
+#
+# Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter Baumann /
+# rasdaman GmbH.
+#
+# For more information please see <http://www.rasdaman.org>
+# or contact Peter Baumann via <baumann@rasdaman.com>. # Top Level makefile. This points to the various modules that have to be build
+# and/or deployed
+#
+# MAKEFILE FOR:
+# Compile example Java programs;
+#
+##################################################################
+
+######################## Dependencies ############################
+
+all: AvgCell.class Lookup.class Query.class
+clean:
+ rm *.class
+
+AvgCell.class: AvgCell.java
+ javac $<
+
+Lookup.class: Lookup.java
+ javac $<
+
+Query.class: Query.java
+ javac $<
+
+# end of Makefile
diff --git a/manuals_and_examples/examples/java/Query.java b/manuals_and_examples/examples/java/Query.java
new file mode 100644
index 0000000..9fd3d9c
--- /dev/null
+++ b/manuals_and_examples/examples/java/Query.java
@@ -0,0 +1,225 @@
+/*
+* This file is part of rasdaman community.
+*
+* Rasdaman community 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 3 of the License, or
+* (at your option) any later version.
+*
+* Rasdaman community 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 rasdaman community. If not, see <http://www.gnu.org/licenses/>.
+*
+* Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter Baumann /
+rasdaman GmbH.
+*
+* For more information please see <http://www.rasdaman.org>
+* or contact Peter Baumann via <baumann@rasdaman.com>.
+*/
+/*************************************************************
+ *
+ *
+ * PURPOSE: Example Java program for reading a query out of a file
+ * and send it to the server and write the result into a log file
+ *
+ *
+ ************************************************************/
+
+import rasj.*;
+import rasj.odmg.*;
+import org.odmg.*;
+import java.util.*;
+import java.io.*;
+
+/**
+ * Example Java program for reading a query out of a file
+ * and send it to the server and write the result into a log file
+ *
+ * set the server name with -server, the database name with -database, the collection name with -collection,
+ * set port number with -port, the user login with -user, the password with -passwd,
+ * the path to log file with -logfile, path to query file with -queryfile
+ */
+public class Query
+{
+
+ public static void main( String[] args )
+ {
+ String server = "localhost";
+ String port = "7001";
+ String base = "RASBASE";
+ String coll = "rockies";
+ String user = "rasguest";
+ String passwd = "rasguest";
+ String file = "";
+ String query = "";
+ String log = "";
+ String ret = "";
+
+ for (int i=args.length-1; i>=0; i--)
+ {
+ //System.out.println(args[i]);
+ if (args[i].equals("-server"))
+ server = args[i+1];
+ if (args[i].equals("-port"))
+ port = args[i+1];
+ if (args[i].equals("-database"))
+ base = args[i+1];
+ if (args[i].equals("-collection"))
+ coll = args[i+1];
+ if (args[i].equals("-logfile"))
+ log = args[i+1];
+ if (args[i].equals("-user"))
+ user = args[i+1];
+ if (args[i].equals("-passwd"))
+ passwd = args[i+1];
+ if (args[i].equals("-queryfile"))
+ {
+ try
+ {
+ file = args[i+1];
+ //System.out.println(file);
+ FileReader fr = new FileReader(file);
+ BufferedReader in = new BufferedReader(fr);
+ String s;
+
+ while((s = in.readLine()) != null)
+ {
+ String t = s.trim();
+ while(t.regionMatches(0, "--", 0, 2))
+ {
+ s = in.readLine();
+ t = s.trim();
+ }
+ query = query +" "+ s;
+ }
+
+ }
+ catch(FileNotFoundException e)
+ {
+ ret = ret+" Query-file not found!"+e.getMessage();
+ System.err.println(ret);
+ }
+ catch(IOException e)
+ {
+ ret = ret+" Could not read Query-file!"+e.getMessage();
+ System.err.println(ret);
+ }
+
+ }
+
+ }
+
+
+ Transaction myTa = null;
+ Database myDb = null;
+ int accessMode = Database.OPEN_READ_ONLY;
+
+ try
+ {
+ Implementation myApp = new RasImplementation("http://"+server+":"+port);
+ ((RasImplementation)myApp).setUserIdentification(user, passwd);
+ OQLQuery myQu = myApp.newOQLQuery();
+
+ if(query.equals(""))
+ query="select avg_cells(a) from "+ coll+" as a";
+ //query="create collection UpdateULong1 ULongSet";
+ //query="insert into UpdateULong1 values $1";
+
+ myQu.create(query);
+
+ StringTokenizer strTok = new StringTokenizer(query, "$");
+ RasMInterval domain;
+ RasGMArray mddConst;
+ if(strTok.hasMoreTokens())
+ strTok.nextToken();
+
+ while(strTok.hasMoreTokens())
+ {
+ strTok.nextToken();
+ domain = new RasMInterval("[0:10,0:10]");
+ RasStorageLayout stl = new RasStorageLayout();
+ stl.setTileSize(100);
+ mddConst = new RasGMArray(domain, 4, stl);
+ mddConst.setObjectTypeName("ULongImage");
+ //System.out.println(mddConst);
+ myQu.bind(mddConst);
+ }
+
+ //check if is an update Query
+ if((query.indexOf("select") == -1) &&
+ (query.indexOf("SELECT") == -1))
+ accessMode = Database.OPEN_READ_WRITE;
+
+ myDb = myApp.newDatabase();
+ //System.out.println( "Opening database ..." );
+ myDb.open( base, accessMode );
+
+ //System.out.println( "Starting transaction ..." );
+ myTa = myApp.newTransaction();
+ myTa.begin();
+
+ //System.out.println( "Executing query..." );
+ DBag result = (DBag) myQu.execute();
+
+ //System.out.println( "Committing transaction ..." );
+ myTa.commit();
+
+ //System.out.println( "Closing database ..." );
+ myDb.close();
+
+ //System.out.println( " Done." );
+ }
+ catch(RasException e)
+ {
+ ret = ret+"RasException: "+e.getMessage();
+ System.err.println(ret);
+ }
+ catch (org.odmg.ODMGException e)
+ {
+ ret = ret + query + "\n Failed:\n " + e.getMessage() + "\n";
+ System.err.println(ret);
+ //System.err.println("Try to abort the transaction ...");
+ if(myTa != null) myTa.abort();
+
+ try
+ {
+ //System.err.println("Try to close the database ...");
+ if(myDb != null) myDb.close();
+ }
+ catch ( org.odmg.ODMGException exp )
+ {
+ ret = ret+" Could not close the database: " + exp.getMessage();
+ System.err.println(ret);
+ }
+
+ }
+ if(!log.equals(""))
+ {
+ try
+ {
+ FileOutputStream fos = new FileOutputStream(log, true);
+ PrintWriter pw = new PrintWriter(fos);
+ if(ret.equals(""))
+ ret = "OK.";
+ pw.write(ret);
+ pw.close();
+ }
+ catch(FileNotFoundException e)
+ {
+ ret = ret+" Log-file not found!"+e.getMessage();
+ System.out.println(ret);
+ }
+ catch(IOException e)
+ {
+ ret = ret+" Could not write Log-file!"+e.getMessage();
+ System.out.println(ret);
+ }
+ }
+
+ }
+
+}