|
public class RemoteSOAPRepository extends Repository {
String server;
public RemoteSOAPRepository (String server) {
this.server = server;
}
void _get (Entry e) throws WftkException
{
//text_log (3, "Get entry " + e.list_id + "[" + e.key + "]");
simple_soap ss = new simple_soap(server, "get");
ss.add_parm ("list_id", e.list_id);
ss.add_parm ("key", e.key);
if (authtoken != null) ss.add_parm ("auth", authtoken);
try {
ss.call ();
}
catch (SimpleSOAPException ex) {
throw new WftkException ("Problem calling SOAP server '" + server + "'");
}
//link_log (6, "XML returned", ss.XMLResult);
e.values = ss.map_value;
}
void _get_task (Entry e, String list, String key, String local_key) throws WftkException
{
simple_soap ss = new simple_soap(server, "get");
ss.add_parm ("list_id", list);
ss.add_parm ("key", key);
ss.add_parm ("task_key", local_key);
if (authtoken != null) ss.add_parm ("auth", authtoken);
try {
ss.call ();
}
catch (SimpleSOAPException ex) {
throw new WftkException ("Problem calling SOAP server '" + server + "'");
}
//System.out.println ("XMLResult: " + ss.XMLResult);
e.values = ss.map_value;
//System.out.println (e.values);
e.key = e.get("key");
// TODO: delete 'key' value. (Which isn't a field.)
}
String _format (String list_id, String key, String mode) throws WftkException
{
simple_soap ss = new simple_soap(server, "get");
ss.add_parm ("list_id", list_id);
ss.add_parm ("key", key);
ss.add_parm ("mode", mode);
if (authtoken != null) ss.add_parm ("auth", authtoken);
try {
ss.call ();
}
catch (SimpleSOAPException e) {
throw new WftkException ("Problem calling SOAP server '" + server + "'");
}
return (ss.simple_value);
}
void _add (String list, Entry obj) throws WftkException
{
simple_soap ss = new simple_soap(server, "add");
ss.add_parm ("list_id", list);
if (authtoken != null) ss.add_parm ("auth", authtoken);
java.util.Iterator iterator = obj.values().iterator();
String field;
while (iterator.hasNext()) {
field = (String) iterator.next();
ss.add_parm ("fld_" + field, obj.get(field));
}
try {
ss.call();
}
catch (SimpleSOAPException e) {
throw new WftkException ("Problem calling SOAP server '" + server + "'");
}
obj.key = ss.simple_value;
}
void _merge (String list, Entry obj, String key) {}
void _mod (String list, Entry obj, String key) throws WftkException
{
simple_soap ss = new simple_soap(server, "merge");
ss.add_parm ("list_id", list);
ss.add_parm ("key", key);
if (authtoken != null) ss.add_parm ("auth", authtoken);
java.util.Collection keys = obj.values.keySet();
java.util.Iterator iterator = keys.iterator();
String field;
while (iterator.hasNext()) {
field = (String) iterator.next();
ss.add_parm ("fld_" + field, obj.get(field));
}
try {
ss.call();
}
catch (SimpleSOAPException e) {
throw new WftkException ("Problem calling SOAP server '" + server + "'");
}
obj.key = ss.simple_value;
}
void _del (String list, String key) {}
void _list (List l) throws WftkException
{
simple_soap ss = new simple_soap(server, "list");
ss.add_parm ("list_id", l.id);
if (authtoken != null) ss.add_parm ("auth", authtoken);
try {
ss.call ();
}
catch (SimpleSOAPException e) {
throw new WftkException ("Problem calling SOAP server '" + server + "'");
}
l.clear();
if (ss.vector_value != null) {
java.util.Iterator it = ss.vector_value.iterator();
while (it.hasNext()) {
if (ss.return_type == 1) {
l.add_entry ((String) it.next());
} else {
l.add_entry ((HashMap) it.next());
}
}
}
}
void _tasks (List t) throws WftkException {
simple_soap ss = new simple_soap(server, "tasks");
try {
ss.call ();
}
catch (SimpleSOAPException e) {
throw new WftkException ("Problem calling SOAP server '" + server + "'");
}
t.clear();
if (ss.vector_value != null) {
java.util.Iterator it = ss.vector_value.iterator();
while (it.hasNext()) {
if (ss.return_type == 1) {
t.add_entry ((String) it.next());
} else {
t.add_entry ((HashMap) it.next());
}
}
}
}
|