package edu.indiana.dde.catalog.catalogtester; import java.util.ArrayList; import edu.indiana.dde.metadata.catalog.types.*; import edu.indiana.dde.catalog.catalogclient.*; public class TestDeleteObject extends TesterBase { public static void main(String[] args) throws Exception { int option = 0; ArrayList guids = new ArrayList(); String hostName = "localhost"; String portNum = "8080"; String myDn = null; String errorDelivery = "DIRECT"; long lastUpdate = -1; for (int j = 0; j < args.length; j++) { String argVal = args[j]; if ( argVal.compareToIgnoreCase("--help") == 0 || argVal.compareToIgnoreCase("-help") == 0) { usage(); return; } else if (argVal.startsWith("-")) { if (argVal.compareToIgnoreCase("-g") == 0) option = 1; //GUID else if (argVal.compareToIgnoreCase("-dn") == 0) option = 2; //distinguished name else if (argVal.compareToIgnoreCase("-h") == 0) option = 3; //host name else if (argVal.compareToIgnoreCase("-p") == 0) option = 4; //port else if (argVal.compareToIgnoreCase("-ed") == 0) option = 5;//error delivery else //invalid option = 0; } else if (option > 0) { if (option == 1) guids.add(argVal); else if (option == 2) myDn = argVal; else if (option == 3) hostName = argVal; else if (option == 4) portNum = argVal; if (option == 5) { String priorMethod = errorDelivery; if (argVal.compareToIgnoreCase("STREAMING") == 0) errorDelivery = "STREAMING"; else if(argVal.compareToIgnoreCase("DIRECT") == 0) errorDelivery = "DIRECT"; else { errorDelivery = priorMethod; String msg = "The error delivery method specified (" + argVal + ") is not valid. Restored prior setting: " + priorMethod; System.out.println(msg); } } option = 0; //reset } //end of option setting } //loop through parameters if (guids.size() == 0 || myDn == null) { usage(); return; } CatalogServiceStub stub = getStub(hostName, portNum, myDn); DeleteObjectRequestDocument doc = DeleteObjectRequestDocument.Factory.newInstance(); DeleteObjectRequestDocument.DeleteObjectRequest request = doc.addNewDeleteObjectRequest(); request.setErrorDeliveryMethod(CatalogDeliveryType.Enum.forString(errorDelivery) ); for (String guid: guids) { request.addObjectId(guid); } if (doc.validate() == false) { System.out.println("The request does not validate."); } System.out.println(doc.toString() ); //invoke service DeleteObjectResponseDocument myResponse = stub.deleteObject(doc); System.out.println(myResponse.getDeleteObjectResponse().getCatalogOperationStatus().getStatus().toString() ); System.out.println("\nResponse Document:\n******************\n" + myResponse.toString() ); stub.cleanup(); } //end of main private static void usage() { System.out.println("Usage: TestDeleteObject -g -dn -h -p -ed \n" + "Defaults:\n" + "host = localhost\n" + "port = 8080\n" + "error delivery = DIRECT\n" + "Error delivery can be either DIRECT or STREAMING.\n" + "Multiple guids can be specified, each preceeded by -g"); return; } //end of usage } //end of class