* @author radhika
*/
-import org.arvados.sdk.java.Arvados;
+import org.arvados.sdk.Arvados;
import java.io.File;
import java.util.HashMap;
String apiName = "arvados";
String apiVersion = "v1";
- System.out.print("Welcome to Arvados Java SDK");
- System.out.println("You can use this example to call API methods");
- System.out.println("Enter ^C when you want to quit");
+ System.out.print("Welcome to Arvados Java SDK.");
+ System.out.println("\nYou can use this example to call API methods interactively.");
+ System.out.println("\nPlease refer to http://doc.arvados.org/api/index.html for api documentation");
+ System.out.println("\nTo make the calls, enter input data at the prompt.");
+ System.out.println("When entering parameters, you may enter a simple string or a well-formed json.");
+ System.out.println("For example to get a user you may enter: user, zzzzz-12345-67890");
+ System.out.println("Or to filter links, you may enter: filters, [[ \"name\", \"=\", \"can_manage\"]]");
+
+ System.out.println("\nEnter ^C when you want to quit");
// use configured env variables for API TOKEN, HOST and HOST_INSECURE
Arvados arv = new Arvados(apiName, apiVersion);
while (true) {
- // prompt for resource
- System.out.println("\n\nEnter Resource name (for example users): ");
-
- // read resource name
- BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
- String resourceName = in.readLine().trim();
+ try {
+ // prompt for resource
+ System.out.println("\n\nEnter Resource name (for example users)");
+ System.out.println("\nAvailable resources are: " + arv.getAvailableResourses());
+ System.out.print("\n>>> ");
- // read method name
- System.out.println("\nEnter method name (for example get): ");
- String methodName = in.readLine().trim();
+ // read resource name
+ BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
+ String resourceName = in.readLine().trim();
+ if ("".equals(resourceName)) {
+ throw (new Exception("No resource name entered"));
+ }
+ // read method name
+ System.out.println("\nEnter method name (for example get)");
+ System.out.println("\nAvailable methods are: " + arv.getAvailableMethodsForResourse(resourceName));
+ System.out.print("\n>>> ");
+ String methodName = in.readLine().trim();
+ if ("".equals(methodName)) {
+ throw (new Exception("No method name entered"));
+ }
- // read method parameters
- System.out
- .println("\nEnter parameter name, value (for example uuid, uuid-value): ");
- Map paramsMap = new HashMap();
- String param = "";
- try {
- do {
- param = in.readLine();
- if (param.isEmpty())
- break;
+ // read method parameters
+ System.out.println("\nEnter parameter name, value (for example uuid, uuid-value)");
+ System.out.println("\nAvailable parameters are: " +
+ arv.getAvailableParametersForMethod(resourceName, methodName));
+
+ System.out.print("\n>>> ");
+ Map paramsMap = new HashMap();
+ String param = "";
+ try {
+ do {
+ param = in.readLine();
+ if (param.isEmpty())
+ break;
+ int index = param.indexOf(","); // first comma
+ String paramName = param.substring(0, index);
+ String paramValue = param.substring(index+1);
+ paramsMap.put(paramName.trim(), paramValue.trim());
- String[] params = param.split(",");
- paramsMap.put(params[0].trim(), params[1].trim());
+ System.out.println("\nEnter parameter name, value (for example uuid, uuid-value)");
+ System.out.print("\n>>> ");
+ } while (!param.isEmpty());
+ } catch (Exception e) {
+ System.out.println (e.getMessage());
+ System.out.println ("\nSet up a new call");
+ continue;
+ }
- System.out.println("\nEnter parameter name, value (for example uuid, uuid-value): ");
- } while (!param.isEmpty());
- } catch (Exception e) {
- System.out.println (e.getMessage());
- System.out.println ("\nStart over");
- continue;
- }
+ // Make a "call" for the given resource name and method name
+ try {
+ System.out.println ("Making a call for " + resourceName + " " + methodName);
+ Map response = arv.call(resourceName, methodName, paramsMap);
- // Make a "call" for the given resource name and method name
- try {
- System.out.println ("Making a call for " + resourceName + " " + methodName);
- Map response = arv.call(resourceName, methodName, paramsMap);
-
- Set<Entry<String,Object>> entrySet = (Set<Entry<String,Object>>)response.entrySet();
- for (Map.Entry<String, Object> entry : entrySet) {
- if ("items".equals(entry.getKey())) {
- List items = (List)entry.getValue();
- for (Object item : items) {
- System.out.println(" " + item);
- }
- } else {
- System.out.println(entry.getKey() + " = " + entry.getValue());
+ Set<Entry<String,Object>> entrySet = (Set<Entry<String,Object>>)response.entrySet();
+ for (Map.Entry<String, Object> entry : entrySet) {
+ if ("items".equals(entry.getKey())) {
+ List items = (List)entry.getValue();
+ for (Object item : items) {
+ System.out.println(" " + item);
+ }
+ } else {
+ System.out.println(entry.getKey() + " = " + entry.getValue());
+ }
}
+ } catch (Exception e){
+ System.out.println (e.getMessage());
+ System.out.println ("\nSet up a new call");
}
- } catch (Exception e){
+ } catch (Exception e) {
System.out.println (e.getMessage());
- System.out.println ("\nStart over");
+ System.out.println ("\nSet up a new call");
}
}
}