//# 0 errors, 128 messages
//#
/*
    //#updatenotificationpingsclient.java:1:1: class: net.sourceforge.pebble.webservice.UpdateNotificationPingsClient$UpdateNotificationPingsAsyncCallback
    //#updatenotificationpingsclient.java:1:1: method: net.sourceforge.pebble.webservice.UpdateNotificationPingsClient$UpdateNotificationPingsAsyncCallback.net.sourceforge.pebble.webservice.UpdateNotificationPingsClient$UpdateNotificationPingsAsyncCallback__static_init
    //#updatenotificationpingsclient.java:1:1: class: net.sourceforge.pebble.webservice.UpdateNotificationPingsClient
 * Copyright (c) 2003-2006, Simon Brown
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 *   - Redistributions of source code must retain the above copyright
 *     notice, this list of conditions and the following disclaimer.
 *
 *   - Redistributions in binary form must reproduce the above copyright
 *     notice, this list of conditions and the following disclaimer in
 *     the documentation and/or other materials provided with the
 *     distribution.
 *
 *   - Neither the name of Pebble nor the names of its contributors may
 *     be used to endorse or promote products derived from this software
 *     without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 */
package net.sourceforge.pebble.webservice;

import net.sourceforge.pebble.domain.Blog;
import net.sourceforge.pebble.util.StringUtils;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.xmlrpc.AsyncCallback;
import org.apache.xmlrpc.XmlRpcClient;

import java.io.IOException;
import java.net.URL;
import java.util.Hashtable;
import java.util.Vector;

/**
 * A simple client to ping (notify) sites like weblogs.com when this blog has
 * been updated.
 *
 * @author    Simon Brown
 */
public class UpdateNotificationPingsClient {
    //#updatenotificationpingsclient.java:53: method: void net.sourceforge.pebble.webservice.UpdateNotificationPingsClient.net.sourceforge.pebble.webservice.UpdateNotificationPingsClient()
    //#updatenotificationpingsclient.java:53: end of method: void net.sourceforge.pebble.webservice.UpdateNotificationPingsClient.net.sourceforge.pebble.webservice.UpdateNotificationPingsClient()

  /** the log used by this class */
  private static Log log = LogFactory.getLog(UpdateNotificationPingsClient.class);
    //#updatenotificationpingsclient.java:56: method: net.sourceforge.pebble.webservice.UpdateNotificationPingsClient.net.sourceforge.pebble.webservice.UpdateNotificationPingsClient__static_init
    //#updatenotificationpingsclient.java:56: Warning: method not available
    //#    -- call on Log org.apache.commons.logging.LogFactory:getLog(Class)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.webservice.UpdateNotificationPingsClient
    //#    method: net.sourceforge.pebble.webservice.UpdateNotificationPingsClient__static_init
    //#    unanalyzed callee: Log org.apache.commons.logging.LogFactory:getLog(Class)
    //#output(net.sourceforge.pebble.webservice.UpdateNotificationPingsClient__static_init): __Descendant_Table[net/sourceforge/pebble/webservice/UpdateNotificationPingsClient]
    //#output(net.sourceforge.pebble.webservice.UpdateNotificationPingsClient__static_init): __Dispatch_Table.sendUpdateNotificationPing(Lnet/sourceforge/pebble/domain/Blog;Ljava/lang/String;[Ljava/lang/String;)V
    //#output(net.sourceforge.pebble.webservice.UpdateNotificationPingsClient__static_init): __Dispatch_Table.sendUpdateNotificationPing(Lnet/sourceforge/pebble/domain/Blog;[Ljava/lang/String;)V
    //#output(net.sourceforge.pebble.webservice.UpdateNotificationPingsClient__static_init): log
    //#post(net.sourceforge.pebble.webservice.UpdateNotificationPingsClient__static_init): __Descendant_Table[net/sourceforge/pebble/webservice/UpdateNotificationPingsClient] == &__Dispatch_Table
    //#post(net.sourceforge.pebble.webservice.UpdateNotificationPingsClient__static_init): __Dispatch_Table.sendUpdateNotificationPing(Lnet/sourceforge/pebble/domain/Blog;Ljava/lang/String;[Ljava/lang/String;)V == &sendUpdateNotificationPing
    //#post(net.sourceforge.pebble.webservice.UpdateNotificationPingsClient__static_init): __Dispatch_Table.sendUpdateNotificationPing(Lnet/sourceforge/pebble/domain/Blog;[Ljava/lang/String;)V == &sendUpdateNotificationPing
    //#post(net.sourceforge.pebble.webservice.UpdateNotificationPingsClient__static_init): init'ed(log)
    //#updatenotificationpingsclient.java:56: end of method: net.sourceforge.pebble.webservice.UpdateNotificationPingsClient.net.sourceforge.pebble.webservice.UpdateNotificationPingsClient__static_init
    //#updatenotificationpingsclient.java:56: method: Log net.sourceforge.pebble.webservice.UpdateNotificationPingsClient.access$0()
    //#input(Log access$0()): log
    //#output(Log access$0()): return_value
    //#pre[1] (Log access$0()): init'ed(log)
    //#post(Log access$0()): return_value == log
    //#post(Log access$0()): init'ed(return_value)
    //#updatenotificationpingsclient.java:56: end of method: Log net.sourceforge.pebble.webservice.UpdateNotificationPingsClient.access$0()

  /** the name of the method to call via XML-RPC */
  private static final String WEBLOGS_METHOD_NAME = "weblogUpdates.ping";

  /**
   * Sends a weblogUpdates.ping indicating this the specified blog has
   * recently been updated. This version sends the blog's home URL.
   *
   * @param blog    the Blog representing the updated blog
   * @param sites   the list of sites (URLs) to ping
   */
  public void sendUpdateNotificationPing(Blog blog, String[] sites) {
    sendUpdateNotificationPing(blog, blog.getUrl(), sites);
    //#updatenotificationpingsclient.java:69: method: void net.sourceforge.pebble.webservice.UpdateNotificationPingsClient.sendUpdateNotificationPing(Blog, String[])
    //#updatenotificationpingsclient.java:69: Warning: method not available
    //#    -- call on String net.sourceforge.pebble.domain.Blog:getUrl()
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.webservice.UpdateNotificationPingsClient
    //#    method: void sendUpdateNotificationPing(Blog, String[])
    //#    unanalyzed callee: String net.sourceforge.pebble.domain.Blog:getUrl()
    //#input(void sendUpdateNotificationPing(Blog, String[])): __Descendant_Table[net/sourceforge/pebble/webservice/UpdateNotificationPingsClient]
    //#input(void sendUpdateNotificationPing(Blog, String[])): __Descendant_Table[others]
    //#input(void sendUpdateNotificationPing(Blog, String[])): __Dispatch_Table.sendUpdateNotificationPing(Lnet/sourceforge/pebble/domain/Blog;Ljava/lang/String;[Ljava/lang/String;)V
    //#input(void sendUpdateNotificationPing(Blog, String[])): blog
    //#input(void sendUpdateNotificationPing(Blog, String[])): log
    //#input(void sendUpdateNotificationPing(Blog, String[])): sites
    //#input(void sendUpdateNotificationPing(Blog, String[])): sites.length
    //#input(void sendUpdateNotificationPing(Blog, String[])): sites[0..4_294_967_295]
    //#input(void sendUpdateNotificationPing(Blog, String[])): this
    //#input(void sendUpdateNotificationPing(Blog, String[])): this.__Tag
    //#pre[1] (void sendUpdateNotificationPing(Blog, String[])): blog != null
    //#pre[7] (void sendUpdateNotificationPing(Blog, String[])): this.__Tag == net/sourceforge/pebble/webservice/UpdateNotificationPingsClient
    //#pre[2] (void sendUpdateNotificationPing(Blog, String[])): (soft) log != null
    //#pre[3] (void sendUpdateNotificationPing(Blog, String[])): (soft) sites != null
    //#pre[4] (void sendUpdateNotificationPing(Blog, String[])): (soft) sites.length <= 4_294_967_295
    //#pre[5] (void sendUpdateNotificationPing(Blog, String[])): (soft) init'ed(sites[0..4_294_967_295])
    //#unanalyzed(void sendUpdateNotificationPing(Blog, String[])): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void sendUpdateNotificationPing(Blog, String[])): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void sendUpdateNotificationPing(Blog, String[])): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void sendUpdateNotificationPing(Blog, String[])): Effects-of-calling:org.apache.commons.logging.Log:info
    //#unanalyzed(void sendUpdateNotificationPing(Blog, String[])): Effects-of-calling:net.sourceforge.pebble.util.StringUtils:transformHTML
    //#unanalyzed(void sendUpdateNotificationPing(Blog, String[])): Effects-of-calling:net.sourceforge.pebble.domain.Blog:info
    //#unanalyzed(void sendUpdateNotificationPing(Blog, String[])): Effects-of-calling:org.apache.xmlrpc.XmlRpcClient
    //#unanalyzed(void sendUpdateNotificationPing(Blog, String[])): Effects-of-calling:java.util.Vector
    //#unanalyzed(void sendUpdateNotificationPing(Blog, String[])): Effects-of-calling:net.sourceforge.pebble.domain.Blog:getName
    //#unanalyzed(void sendUpdateNotificationPing(Blog, String[])): Effects-of-calling:java.util.Vector:addElement
    //#unanalyzed(void sendUpdateNotificationPing(Blog, String[])): Effects-of-calling:org.apache.xmlrpc.XmlRpcClient:executeAsync
    //#unanalyzed(void sendUpdateNotificationPing(Blog, String[])): Effects-of-calling:java.io.IOException:getMessage
    //#unanalyzed(void sendUpdateNotificationPing(Blog, String[])): Effects-of-calling:org.apache.commons.logging.Log:error
  }
    //#updatenotificationpingsclient.java:70: end of method: void net.sourceforge.pebble.webservice.UpdateNotificationPingsClient.sendUpdateNotificationPing(Blog, String[])

  /**
   * Sends a weblogUpdates.ping indicating this the specified blog has
   * recently been updated. This version sends an arbitrary URL.
   *
   * @param blog    the Blog representing the updated blog
   * @param url     the URL to send the ping for
   * @param sites   the list of sites (URLs) to ping
   */
  public void sendUpdateNotificationPing(Blog blog, String url, String[] sites) {
    try {
      for (String site : sites) {
    //#updatenotificationpingsclient.java:82: method: void net.sourceforge.pebble.webservice.UpdateNotificationPingsClient.sendUpdateNotificationPing(Blog, String, String[])
    //#input(void sendUpdateNotificationPing(Blog, String, String[])): blog
    //#input(void sendUpdateNotificationPing(Blog, String, String[])): log
    //#input(void sendUpdateNotificationPing(Blog, String, String[])): sites
    //#input(void sendUpdateNotificationPing(Blog, String, String[])): sites.length
    //#input(void sendUpdateNotificationPing(Blog, String, String[])): sites[0..4_294_967_294]
    //#input(void sendUpdateNotificationPing(Blog, String, String[])): this
    //#input(void sendUpdateNotificationPing(Blog, String, String[])): url
    //#pre[1] (void sendUpdateNotificationPing(Blog, String, String[])): (soft) blog != null
    //#pre[2] (void sendUpdateNotificationPing(Blog, String, String[])): (soft) log != null
    //#pre[3] (void sendUpdateNotificationPing(Blog, String, String[])): (soft) sites != null
    //#pre[4] (void sendUpdateNotificationPing(Blog, String, String[])): (soft) sites.length <= 4_294_967_295
    //#pre[5] (void sendUpdateNotificationPing(Blog, String, String[])): (soft) init'ed(sites[0..4_294_967_294])
        log.info("Sending XML-RPC ping to " + site);
    //#updatenotificationpingsclient.java:83: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:info(Object)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.webservice.UpdateNotificationPingsClient
    //#    method: void sendUpdateNotificationPing(Blog, String, String[])
    //#    unanalyzed callee: void org.apache.commons.logging.Log:info(Object)
        blog.info("Sending XML-RPC ping to " + StringUtils.transformHTML(site));
    //#updatenotificationpingsclient.java:84: Warning: method not available
    //#    -- call on String net.sourceforge.pebble.util.StringUtils:transformHTML(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.webservice.UpdateNotificationPingsClient
    //#    method: void sendUpdateNotificationPing(Blog, String, String[])
    //#    unanalyzed callee: String net.sourceforge.pebble.util.StringUtils:transformHTML(String)
    //#updatenotificationpingsclient.java:84: Warning: method not available
    //#    -- call on void net.sourceforge.pebble.domain.Blog:info(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.webservice.UpdateNotificationPingsClient
    //#    method: void sendUpdateNotificationPing(Blog, String, String[])
    //#    unanalyzed callee: void net.sourceforge.pebble.domain.Blog:info(String)
        XmlRpcClient xmlrpc = new XmlRpcClient(site);
    //#updatenotificationpingsclient.java:85: Warning: method not available
    //#    -- call on void org.apache.xmlrpc.XmlRpcClient(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.webservice.UpdateNotificationPingsClient
    //#    method: void sendUpdateNotificationPing(Blog, String, String[])
    //#    unanalyzed callee: void org.apache.xmlrpc.XmlRpcClient(String)
        Vector params = new Vector();
        params.addElement(blog.getName());
    //#updatenotificationpingsclient.java:87: Warning: method not available
    //#    -- call on String net.sourceforge.pebble.domain.Blog:getName()
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.webservice.UpdateNotificationPingsClient
    //#    method: void sendUpdateNotificationPing(Blog, String, String[])
    //#    unanalyzed callee: String net.sourceforge.pebble.domain.Blog:getName()
        params.addElement(url);
        xmlrpc.executeAsync(WEBLOGS_METHOD_NAME, params, new UpdateNotificationPingsAsyncCallback(blog));
    //#updatenotificationpingsclient.java:89: Warning: method not available
    //#    -- call on void org.apache.xmlrpc.XmlRpcClient:executeAsync(String, Vector, AsyncCallback)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.webservice.UpdateNotificationPingsClient
    //#    method: void sendUpdateNotificationPing(Blog, String, String[])
    //#    unanalyzed callee: void org.apache.xmlrpc.XmlRpcClient:executeAsync(String, Vector, AsyncCallback)
      }
    } catch (IOException ioe) {
      log.error(ioe.getMessage(), ioe);
    //#updatenotificationpingsclient.java:92: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:error(Object, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.webservice.UpdateNotificationPingsClient
    //#    method: void sendUpdateNotificationPing(Blog, String, String[])
    //#    unanalyzed callee: void org.apache.commons.logging.Log:error(Object, Throwable)
    }
  }
    //#updatenotificationpingsclient.java:94: end of method: void net.sourceforge.pebble.webservice.UpdateNotificationPingsClient.sendUpdateNotificationPing(Blog, String, String[])

  /**
   * A callback class used to log the result/error message.
   */
  class UpdateNotificationPingsAsyncCallback implements AsyncCallback {

    private Blog blog;

    public UpdateNotificationPingsAsyncCallback(Blog blog) {
      this.blog = blog;
    }
    //#updatenotificationpingsclient.java:105: method: void net.sourceforge.pebble.webservice.UpdateNotificationPingsClient$UpdateNotificationPingsAsyncCallback.net.sourceforge.pebble.webservice.UpdateNotificationPingsClient$UpdateNotificationPingsAsyncCallback(UpdateNotificationPingsClient, Blog)
    //#input(void net.sourceforge.pebble.webservice.UpdateNotificationPingsClient$UpdateNotificationPingsAsyncCallback(UpdateNotificationPingsClient, Blog)): Param_1
    //#input(void net.sourceforge.pebble.webservice.UpdateNotificationPingsClient$UpdateNotificationPingsAsyncCallback(UpdateNotificationPingsClient, Blog)): blog
    //#input(void net.sourceforge.pebble.webservice.UpdateNotificationPingsClient$UpdateNotificationPingsAsyncCallback(UpdateNotificationPingsClient, Blog)): this
    //#output(void net.sourceforge.pebble.webservice.UpdateNotificationPingsClient$UpdateNotificationPingsAsyncCallback(UpdateNotificationPingsClient, Blog)): this.blog
    //#output(void net.sourceforge.pebble.webservice.UpdateNotificationPingsClient$UpdateNotificationPingsAsyncCallback(UpdateNotificationPingsClient, Blog)): this.this$0
    //#post(void net.sourceforge.pebble.webservice.UpdateNotificationPingsClient$UpdateNotificationPingsAsyncCallback(UpdateNotificationPingsClient, Blog)): this.blog == blog
    //#post(void net.sourceforge.pebble.webservice.UpdateNotificationPingsClient$UpdateNotificationPingsAsyncCallback(UpdateNotificationPingsClient, Blog)): init'ed(this.blog)
    //#post(void net.sourceforge.pebble.webservice.UpdateNotificationPingsClient$UpdateNotificationPingsAsyncCallback(UpdateNotificationPingsClient, Blog)): this.this$0 == Param_1
    //#post(void net.sourceforge.pebble.webservice.UpdateNotificationPingsClient$UpdateNotificationPingsAsyncCallback(UpdateNotificationPingsClient, Blog)): init'ed(this.this$0)
    //#updatenotificationpingsclient.java:105: end of method: void net.sourceforge.pebble.webservice.UpdateNotificationPingsClient$UpdateNotificationPingsAsyncCallback.net.sourceforge.pebble.webservice.UpdateNotificationPingsClient$UpdateNotificationPingsAsyncCallback(UpdateNotificationPingsClient, Blog)

    /**
     * Called if the XML-RPC was successful.
     *
     * @param o         the resulting Object
     * @param url       the original URL
     * @param method    the original method name
     */
    public void handleResult(Object o, URL url, String method) {
      Hashtable result = (Hashtable)o;
    //#updatenotificationpingsclient.java:115: method: void net.sourceforge.pebble.webservice.UpdateNotificationPingsClient$UpdateNotificationPingsAsyncCallback.handleResult(Object, URL, String)
    //#input(void handleResult(Object, URL, String)): method
    //#input(void handleResult(Object, URL, String)): net/sourceforge/pebble/webservice/UpdateNotificationPingsClient.log
    //#input(void handleResult(Object, URL, String)): o
    //#input(void handleResult(Object, URL, String)): this
    //#input(void handleResult(Object, URL, String)): this.blog
    //#input(void handleResult(Object, URL, String)): url
    //#pre[2] (void handleResult(Object, URL, String)): (soft) net/sourceforge/pebble/webservice/UpdateNotificationPingsClient.log != null
    //#pre[5] (void handleResult(Object, URL, String)): (soft) this.blog != null
    //#unanalyzed(void handleResult(Object, URL, String)): Effects-of-calling:java.lang.Object:toString
    //#unanalyzed(void handleResult(Object, URL, String)): Effects-of-calling:net.sourceforge.pebble.util.StringUtils:transformHTML
    //#test_vector(void handleResult(Object, URL, String)): o: Addr_Set{null}, Inverse{null}
      if (result != null) {
        log.info("Result of XML-RPC ping to " + method + " at " + url + " was " + result.get("flerror") + ", " + result.get("message"));
    //#updatenotificationpingsclient.java:117: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:info(Object)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.webservice.UpdateNotificationPingsClient$UpdateNotificationPingsAsyncCallback
    //#    method: void handleResult(Object, URL, String)
    //#    unanalyzed callee: void org.apache.commons.logging.Log:info(Object)
        blog.info("Result of XML-RPC ping to " + t(method) + " at " + t(url) + " was " + t(result.get("flerror")) + ", " + t(result.get("message")));
    //#updatenotificationpingsclient.java:118: Warning: method not available
    //#    -- call on void net.sourceforge.pebble.domain.Blog:info(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.webservice.UpdateNotificationPingsClient$UpdateNotificationPingsAsyncCallback
    //#    method: void handleResult(Object, URL, String)
    //#    unanalyzed callee: void net.sourceforge.pebble.domain.Blog:info(String)
      }
    }
    //#updatenotificationpingsclient.java:120: end of method: void net.sourceforge.pebble.webservice.UpdateNotificationPingsClient$UpdateNotificationPingsAsyncCallback.handleResult(Object, URL, String)

    /**
     * Called if the XML-RPC was not successful.
     *
     * @param e         the resulting Exception
     * @param url       the original URL
     * @param method    the original method name
     */
    public void handleError(Exception e, URL url, String method) {
      log.error("Exception when calling " + method + " at " + url, e);
    //#updatenotificationpingsclient.java:130: method: void net.sourceforge.pebble.webservice.UpdateNotificationPingsClient$UpdateNotificationPingsAsyncCallback.handleError(Exception, URL, String)
    //#updatenotificationpingsclient.java:130: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:error(Object, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.webservice.UpdateNotificationPingsClient$UpdateNotificationPingsAsyncCallback
    //#    method: void handleError(Exception, URL, String)
    //#    unanalyzed callee: void org.apache.commons.logging.Log:error(Object, Throwable)
    //#input(void handleError(Exception, URL, String)): e
    //#input(void handleError(Exception, URL, String)): method
    //#input(void handleError(Exception, URL, String)): net/sourceforge/pebble/webservice/UpdateNotificationPingsClient.log
    //#input(void handleError(Exception, URL, String)): url
    //#pre[3] (void handleError(Exception, URL, String)): net/sourceforge/pebble/webservice/UpdateNotificationPingsClient.log != null
    }
    //#updatenotificationpingsclient.java:131: end of method: void net.sourceforge.pebble.webservice.UpdateNotificationPingsClient$UpdateNotificationPingsAsyncCallback.handleError(Exception, URL, String)

    private String t(Object object) {
  	  if(object == null) return null;
    //#updatenotificationpingsclient.java:134: method: String net.sourceforge.pebble.webservice.UpdateNotificationPingsClient$UpdateNotificationPingsAsyncCallback.t(Object)
    //#input(String t(Object)): object
    //#output(String t(Object)): return_value
    //#post(String t(Object)): init'ed(return_value)
    //#test_vector(String t(Object)): object: Inverse{null}, Addr_Set{null}
  	  return StringUtils.transformHTML(object.toString());
    //#updatenotificationpingsclient.java:135: Warning: method not available
    //#    -- call on String net.sourceforge.pebble.util.StringUtils:transformHTML(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.webservice.UpdateNotificationPingsClient$UpdateNotificationPingsAsyncCallback
    //#    method: String t(Object)
    //#    unanalyzed callee: String net.sourceforge.pebble.util.StringUtils:transformHTML(String)
    //#updatenotificationpingsclient.java:135: end of method: String net.sourceforge.pebble.webservice.UpdateNotificationPingsClient$UpdateNotificationPingsAsyncCallback.t(Object)
    }
  }

}    //#output(net.sourceforge.pebble.webservice.UpdateNotificationPingsClient$UpdateNotificationPingsAsyncCallback__static_init): __Descendant_Table[net/sourceforge/pebble/webservice/UpdateNotificationPingsClient$UpdateNotificationPingsAsyncCallback]
    //#output(net.sourceforge.pebble.webservice.UpdateNotificationPingsClient$UpdateNotificationPingsAsyncCallback__static_init): __Dispatch_Table.handleError(Ljava/lang/Exception;Ljava/net/URL;Ljava/lang/String;)V
    //#output(net.sourceforge.pebble.webservice.UpdateNotificationPingsClient$UpdateNotificationPingsAsyncCallback__static_init): __Dispatch_Table.handleResult(Ljava/lang/Object;Ljava/net/URL;Ljava/lang/String;)V
    //#output(net.sourceforge.pebble.webservice.UpdateNotificationPingsClient$UpdateNotificationPingsAsyncCallback__static_init): __Dispatch_Table.t(Ljava/lang/Object;)Ljava/lang/String;
    //#post(net.sourceforge.pebble.webservice.UpdateNotificationPingsClient$UpdateNotificationPingsAsyncCallback__static_init): __Descendant_Table[net/sourceforge/pebble/webservice/UpdateNotificationPingsClient$UpdateNotificationPingsAsyncCallback] == &__Dispatch_Table
    //#post(net.sourceforge.pebble.webservice.UpdateNotificationPingsClient$UpdateNotificationPingsAsyncCallback__static_init): __Dispatch_Table.handleError(Ljava/lang/Exception;Ljava/net/URL;Ljava/lang/String;)V == &handleError
    //#post(net.sourceforge.pebble.webservice.UpdateNotificationPingsClient$UpdateNotificationPingsAsyncCallback__static_init): __Dispatch_Table.handleResult(Ljava/lang/Object;Ljava/net/URL;Ljava/lang/String;)V == &handleResult
    //#post(net.sourceforge.pebble.webservice.UpdateNotificationPingsClient$UpdateNotificationPingsAsyncCallback__static_init): __Dispatch_Table.t(Ljava/lang/Object;)Ljava/lang/String; == &t
    //#updatenotificationpingsclient.java:: end of method: net.sourceforge.pebble.webservice.UpdateNotificationPingsClient$UpdateNotificationPingsAsyncCallback.net.sourceforge.pebble.webservice.UpdateNotificationPingsClient$UpdateNotificationPingsAsyncCallback__static_init
    //#updatenotificationpingsclient.java:: end of class: net.sourceforge.pebble.webservice.UpdateNotificationPingsClient$UpdateNotificationPingsAsyncCallback
    //#updatenotificationpingsclient.java:: end of class: net.sourceforge.pebble.webservice.UpdateNotificationPingsClient
