//# 0 errors, 264 messages
//#
/*
    //#PingTargetEditBase.java:1:1: class: org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase
    //#PingTargetEditBase.java:1:1: method: org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase.org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase__static_init
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  The ASF licenses this file to You
 * under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.  For additional information regarding
 * copyright in this work, please see the NOTICE file in the top level
 * directory of this distribution.
 */

package org.apache.roller.weblogger.ui.struts2.common;

import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.roller.weblogger.WebloggerException;
import org.apache.roller.weblogger.business.WebloggerFactory;
import org.apache.roller.weblogger.business.pings.PingTargetManager;
import org.apache.roller.weblogger.pojos.PingTarget;
import org.apache.roller.weblogger.ui.struts2.util.UIAction;


/**
 * Base implementation for action that can edit an existing ping target.
 */
public abstract class PingTargetEditBase extends UIAction {
    //#PingTargetEditBase.java:33: method: void org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase.org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase()
    //#PingTargetEditBase.java:33: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.ui.struts2.util.UIAction()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase
    //#    method: void org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase()
    //#    unanalyzed callee: void org.apache.roller.weblogger.ui.struts2.util.UIAction()
    //#input(void org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase()): this
    //#output(void org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase()): new PingTargetFormBean(PingTargetEditBase#1) num objects
    //#output(void org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase()): this.bean.__Tag
    //#output(void org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase()): this.bean.id
    //#output(void org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase()): this.bean.name
    //#output(void org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase()): this.bean.pingUrl
    //#output(void org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase()): this.bean
    //#output(void org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase()): this.pingTarget
    //#new obj(void org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase()): new PingTargetFormBean(PingTargetEditBase#1)
    //#post(void org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase()): this.bean == &new PingTargetFormBean(PingTargetEditBase#1)
    //#post(void org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase()): this.pingTarget == null
    //#post(void org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase()): this.bean.id == null
    //#post(void org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase()): this.bean.name == null
    //#post(void org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase()): this.bean.pingUrl == null
    //#post(void org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase()): new PingTargetFormBean(PingTargetEditBase#1) num objects == 1
    //#post(void org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase()): this.bean.__Tag == org/apache/roller/weblogger/ui/struts2/common/PingTargetFormBean
    
    // ping target we are working on, if any
    private PingTarget pingTarget = null;
    
    // a bean for managing submitted data
    private PingTargetFormBean bean = new PingTargetFormBean();
    //#PingTargetEditBase.java:39: end of method: void org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase.org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase()
    
    
    // get logger
    protected abstract Log getLogger();
    
    
    /**
     * Prepare action by loading ping target to work on.
     */
    public void myPrepare() {
        
        PingTargetManager pingTargetMgr = WebloggerFactory.getWeblogger().getPingTargetManager();
    //#PingTargetEditBase.java:51: method: void org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase.myPrepare()
    //#PingTargetEditBase.java:51: Warning: method not available
    //#    -- call on Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase
    //#    method: void myPrepare()
    //#    unanalyzed callee: Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#PingTargetEditBase.java:51: Warning: method not available
    //#    -- call on PingTargetManager org.apache.roller.weblogger.business.Weblogger:getPingTargetManager()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase
    //#    method: void myPrepare()
    //#    unanalyzed callee: PingTargetManager org.apache.roller.weblogger.business.Weblogger:getPingTargetManager()
    //#PingTargetEditBase.java:51: Warning: suspicious precondition
    //#    the precondition for this.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase
    //#    method: void myPrepare()
    //#    suspicious precondition index: [5]
    //#input(void myPrepare()): "Error looking up ping target - "._tainted
    //#input(void myPrepare()): "Missing ping target id: "._tainted
    //#input(void myPrepare()): "No such ping target id: "._tainted
    //#input(void myPrepare()): __Descendant_Table[org/apache/roller/weblogger/ui/struts2/admin/CommonPingTargetEdit]
    //#input(void myPrepare()): __Descendant_Table[org/apache/roller/weblogger/ui/struts2/common/PingTargetEditBase]
    //#input(void myPrepare()): __Descendant_Table[org/apache/roller/weblogger/ui/struts2/editor/CustomPingTargetEdit]
    //#input(void myPrepare()): __Descendant_Table[others]
    //#input(void myPrepare()): __Dispatch_Table.getBean()Lorg/apache/roller/weblogger/ui/struts2/common/PingTargetFormBean;
    //#input(void myPrepare()): __Dispatch_Table.getLogger()Lorg/apache/commons/logging/Log;
    //#input(void myPrepare()): __Dispatch_Table.getPingTarget()Lorg/apache/roller/weblogger/pojos/PingTarget;
    //#input(void myPrepare()): __Dispatch_Table.setPingTarget(Lorg/apache/roller/weblogger/pojos/PingTarget;)V
    //#input(void myPrepare()): org/apache/roller/weblogger/ui/struts2/admin/CommonPingTargetEdit.__Dispatch_Table.getBean()Lorg/apache/roller/weblogger/ui/struts2/common/PingTargetFormBean;
    //#input(void myPrepare()): org/apache/roller/weblogger/ui/struts2/admin/CommonPingTargetEdit.__Dispatch_Table.getLogger()Lorg/apache/commons/logging/Log;
    //#input(void myPrepare()): org/apache/roller/weblogger/ui/struts2/admin/CommonPingTargetEdit.__Dispatch_Table.getPingTarget()Lorg/apache/roller/weblogger/pojos/PingTarget;
    //#input(void myPrepare()): org/apache/roller/weblogger/ui/struts2/admin/CommonPingTargetEdit.__Dispatch_Table.setPingTarget(Lorg/apache/roller/weblogger/pojos/PingTarget;)V
    //#input(void myPrepare()): org/apache/roller/weblogger/ui/struts2/admin/CommonPingTargetEdit.log
    //#input(void myPrepare()): org/apache/roller/weblogger/ui/struts2/common/PingTargetFormBean.__Descendant_Table[org/apache/roller/weblogger/ui/struts2/common/PingTargetFormBean]
    //#input(void myPrepare()): org/apache/roller/weblogger/ui/struts2/common/PingTargetFormBean.__Descendant_Table[others]
    //#input(void myPrepare()): org/apache/roller/weblogger/ui/struts2/common/PingTargetFormBean.__Dispatch_Table.getId()Ljava/lang/String;
    //#input(void myPrepare()): org/apache/roller/weblogger/ui/struts2/editor/CustomPingTargetEdit.__Dispatch_Table.getBean()Lorg/apache/roller/weblogger/ui/struts2/common/PingTargetFormBean;
    //#input(void myPrepare()): org/apache/roller/weblogger/ui/struts2/editor/CustomPingTargetEdit.__Dispatch_Table.getLogger()Lorg/apache/commons/logging/Log;
    //#input(void myPrepare()): org/apache/roller/weblogger/ui/struts2/editor/CustomPingTargetEdit.__Dispatch_Table.getPingTarget()Lorg/apache/roller/weblogger/pojos/PingTarget;
    //#input(void myPrepare()): org/apache/roller/weblogger/ui/struts2/editor/CustomPingTargetEdit.__Dispatch_Table.setPingTarget(Lorg/apache/roller/weblogger/pojos/PingTarget;)V
    //#input(void myPrepare()): org/apache/roller/weblogger/ui/struts2/editor/CustomPingTargetEdit.log
    //#input(void myPrepare()): this
    //#input(void myPrepare()): this.__Tag
    //#input(void myPrepare()): this.bean
    //#input(void myPrepare()): this.bean.__Tag
    //#input(void myPrepare()): this.bean.id
    //#input(void myPrepare()): this.bean.id._tainted
    //#input(void myPrepare()): this.pingTarget
    //#output(void myPrepare()): this.pingTarget
    //#pre[5] (void myPrepare()): this.__Tag in {org/apache/roller/weblogger/ui/struts2/admin/CommonPingTargetEdit, org/apache/roller/weblogger/ui/struts2/common/PingTargetEditBase, org/apache/roller/weblogger/ui/struts2/editor/CustomPingTargetEdit}
    //#pre[6] (void myPrepare()): this.bean != null
    //#pre[7] (void myPrepare()): this.bean.__Tag == org/apache/roller/weblogger/ui/struts2/common/PingTargetFormBean
    //#pre[8] (void myPrepare()): init'ed(this.bean.id)
    //#pre[1] (void myPrepare()): (soft) init'ed(this.pingTarget)
    //#pre[2] (void myPrepare()): (soft) org/apache/roller/weblogger/ui/struts2/admin/CommonPingTargetEdit.log != null
    //#pre[3] (void myPrepare()): (soft) org/apache/roller/weblogger/ui/struts2/editor/CustomPingTargetEdit.log != null
    //#presumption(void myPrepare()): org.apache.roller.weblogger.business.Weblogger:getPingTargetManager(...)@51 != null
    //#presumption(void myPrepare()): org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@51 != null
    //#post(void myPrepare()): init'ed(this.pingTarget)
    //#test_vector(void myPrepare()): org.apache.commons.lang.StringUtils:isEmpty(...)@52: {1}, {0}
        if(!StringUtils.isEmpty(getBean().getId())) {
    //#PingTargetEditBase.java:52: Warning: method not available
    //#    -- call on bool org.apache.commons.lang.StringUtils:isEmpty(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase
    //#    method: void myPrepare()
    //#    unanalyzed callee: bool org.apache.commons.lang.StringUtils:isEmpty(String)
            
            try {
                setPingTarget(pingTargetMgr.getPingTarget(getBean().getId()));
    //#PingTargetEditBase.java:55: Warning: method not available
    //#    -- call on PingTarget org.apache.roller.weblogger.business.pings.PingTargetManager:getPingTarget(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase
    //#    method: void myPrepare()
    //#    unanalyzed callee: PingTarget org.apache.roller.weblogger.business.pings.PingTargetManager:getPingTarget(String)
            } catch (WebloggerException ex) {
                getLogger().error("Error looking up ping target - "+getBean().getId());
    //#PingTargetEditBase.java:57: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:error(Object)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase
    //#    method: void myPrepare()
    //#    unanalyzed callee: void org.apache.commons.logging.Log:error(Object)
            }
            
            if(getPingTarget() == null) {
                // TODO: i18n
                addError("No such ping target id: " + getBean().getId());
    //#PingTargetEditBase.java:62: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase:addError(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase
    //#    method: void myPrepare()
    //#    unanalyzed callee: void org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase:addError(String)
            }
            
        } else {
            // TODO: i18n
            addError("Missing ping target id: " + getBean().getId());
    //#PingTargetEditBase.java:67: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase:addError(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase
    //#    method: void myPrepare()
    //#    unanalyzed callee: void org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase:addError(String)
        }
    }
    //#PingTargetEditBase.java:69: end of method: void org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase.myPrepare()
    
    
    public String execute() {
        
        if(!hasActionErrors()) {
    //#PingTargetEditBase.java:74: method: String org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase.execute()
    //#PingTargetEditBase.java:74: Warning: method not available
    //#    -- call on bool org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase:hasActionErrors()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase
    //#    method: String execute()
    //#    unanalyzed callee: bool org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase:hasActionErrors()
    //#PingTargetEditBase.java:74: Warning: suspicious precondition
    //#    the precondition for this.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase
    //#    method: String execute()
    //#    suspicious precondition index: [5]
    //#    Attribs:  Soft
    //#input(String execute()): __Descendant_Table[org/apache/roller/weblogger/ui/struts2/admin/CommonPingTargetEdit]
    //#input(String execute()): __Descendant_Table[org/apache/roller/weblogger/ui/struts2/common/PingTargetEditBase]
    //#input(String execute()): __Descendant_Table[org/apache/roller/weblogger/ui/struts2/editor/CustomPingTargetEdit]
    //#input(String execute()): __Descendant_Table[others]
    //#input(String execute()): __Dispatch_Table.getBean()Lorg/apache/roller/weblogger/ui/struts2/common/PingTargetFormBean;
    //#input(String execute()): __Dispatch_Table.getPingTarget()Lorg/apache/roller/weblogger/pojos/PingTarget;
    //#input(String execute()): org/apache/roller/weblogger/ui/struts2/admin/CommonPingTargetEdit.__Dispatch_Table.getBean()Lorg/apache/roller/weblogger/ui/struts2/common/PingTargetFormBean;
    //#input(String execute()): org/apache/roller/weblogger/ui/struts2/admin/CommonPingTargetEdit.__Dispatch_Table.getPingTarget()Lorg/apache/roller/weblogger/pojos/PingTarget;
    //#input(String execute()): org/apache/roller/weblogger/ui/struts2/common/PingTargetFormBean.__Descendant_Table[org/apache/roller/weblogger/ui/struts2/common/PingTargetFormBean]
    //#input(String execute()): org/apache/roller/weblogger/ui/struts2/common/PingTargetFormBean.__Descendant_Table[others]
    //#input(String execute()): org/apache/roller/weblogger/ui/struts2/common/PingTargetFormBean.__Dispatch_Table.copyFrom(Lorg/apache/roller/weblogger/pojos/PingTarget;)V
    //#input(String execute()): org/apache/roller/weblogger/ui/struts2/editor/CustomPingTargetEdit.__Dispatch_Table.getBean()Lorg/apache/roller/weblogger/ui/struts2/common/PingTargetFormBean;
    //#input(String execute()): org/apache/roller/weblogger/ui/struts2/editor/CustomPingTargetEdit.__Dispatch_Table.getPingTarget()Lorg/apache/roller/weblogger/pojos/PingTarget;
    //#input(String execute()): this
    //#input(String execute()): this.__Tag
    //#input(String execute()): this.bean
    //#input(String execute()): this.bean.__Tag
    //#input(String execute()): this.pingTarget
    //#output(String execute()): return_value
    //#output(String execute()): this.bean.id
    //#output(String execute()): this.bean.name
    //#output(String execute()): this.bean.pingUrl
    //#pre[5] (String execute()): (soft) this.__Tag in {org/apache/roller/weblogger/ui/struts2/admin/CommonPingTargetEdit, org/apache/roller/weblogger/ui/struts2/common/PingTargetEditBase, org/apache/roller/weblogger/ui/struts2/editor/CustomPingTargetEdit}
    //#pre[6] (String execute()): (soft) this.bean != null
    //#pre[7] (String execute()): (soft) this.bean.__Tag == org/apache/roller/weblogger/ui/struts2/common/PingTargetFormBean
    //#pre[8] (String execute()): (soft) this.pingTarget != null
    //#post(String execute()): return_value in Addr_Set{&"error",&"input"}
    //#post(String execute()): possibly_updated(this.bean.id)
    //#post(String execute()): possibly_updated(this.bean.name)
    //#post(String execute()): possibly_updated(this.bean.pingUrl)
    //#unanalyzed(String execute()): Effects-of-calling:org.apache.roller.weblogger.pojos.PingTarget:getId
    //#unanalyzed(String execute()): Effects-of-calling:org.apache.roller.weblogger.pojos.PingTarget:getName
    //#unanalyzed(String execute()): Effects-of-calling:org.apache.roller.weblogger.pojos.PingTarget:getPingUrl
    //#test_vector(String execute()): org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase:hasActionErrors(...)@74: {1}, {0}
            // load bean with data from ping target
            getBean().copyFrom(getPingTarget());
        } else {
            // if we already have an error then that means we couldn't load
            // an existing ping target to work on, so return ERROR result
            return ERROR;
        }
        
        return INPUT;
    //#PingTargetEditBase.java:83: end of method: String org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase.execute()
    }
    
    
    /**
     * Save ping target.
     */
    public String save() {
        
        if(hasActionErrors()) {
    //#PingTargetEditBase.java:92: method: String org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase.save()
    //#PingTargetEditBase.java:92: Warning: method not available
    //#    -- call on bool org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase:hasActionErrors()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase
    //#    method: String save()
    //#    unanalyzed callee: bool org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase:hasActionErrors()
    //#PingTargetEditBase.java:92: Warning: suspicious precondition
    //#    the precondition for this.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase
    //#    method: String save()
    //#    suspicious precondition index: [4]
    //#    Attribs:  Soft
    //#input(String save()): __Descendant_Table[org/apache/roller/weblogger/ui/struts2/admin/CommonPingTargetEdit]
    //#input(String save()): __Descendant_Table[org/apache/roller/weblogger/ui/struts2/common/PingTargetEditBase]
    //#input(String save()): __Descendant_Table[org/apache/roller/weblogger/ui/struts2/editor/CustomPingTargetEdit]
    //#input(String save()): __Descendant_Table[others]
    //#input(String save()): __Dispatch_Table.getBean()Lorg/apache/roller/weblogger/ui/struts2/common/PingTargetFormBean;
    //#input(String save()): __Dispatch_Table.getLogger()Lorg/apache/commons/logging/Log;
    //#input(String save()): __Dispatch_Table.getPingTarget()Lorg/apache/roller/weblogger/pojos/PingTarget;
    //#input(String save()): __Dispatch_Table.myValidate(Lorg/apache/roller/weblogger/pojos/PingTarget;)V
    //#input(String save()): org/apache/roller/weblogger/ui/struts2/admin/CommonPingTargetEdit.__Dispatch_Table.getBean()Lorg/apache/roller/weblogger/ui/struts2/common/PingTargetFormBean;
    //#input(String save()): org/apache/roller/weblogger/ui/struts2/admin/CommonPingTargetEdit.__Dispatch_Table.getLogger()Lorg/apache/commons/logging/Log;
    //#input(String save()): org/apache/roller/weblogger/ui/struts2/admin/CommonPingTargetEdit.__Dispatch_Table.getPingTarget()Lorg/apache/roller/weblogger/pojos/PingTarget;
    //#input(String save()): org/apache/roller/weblogger/ui/struts2/admin/CommonPingTargetEdit.__Dispatch_Table.myValidate(Lorg/apache/roller/weblogger/pojos/PingTarget;)V
    //#input(String save()): org/apache/roller/weblogger/ui/struts2/admin/CommonPingTargetEdit.log
    //#input(String save()): org/apache/roller/weblogger/ui/struts2/common/PingTargetFormBean.__Descendant_Table[org/apache/roller/weblogger/ui/struts2/common/PingTargetFormBean]
    //#input(String save()): org/apache/roller/weblogger/ui/struts2/common/PingTargetFormBean.__Descendant_Table[others]
    //#input(String save()): org/apache/roller/weblogger/ui/struts2/common/PingTargetFormBean.__Dispatch_Table.copyTo(Lorg/apache/roller/weblogger/pojos/PingTarget;)V
    //#input(String save()): org/apache/roller/weblogger/ui/struts2/editor/CustomPingTargetEdit.__Dispatch_Table.getBean()Lorg/apache/roller/weblogger/ui/struts2/common/PingTargetFormBean;
    //#input(String save()): org/apache/roller/weblogger/ui/struts2/editor/CustomPingTargetEdit.__Dispatch_Table.getLogger()Lorg/apache/commons/logging/Log;
    //#input(String save()): org/apache/roller/weblogger/ui/struts2/editor/CustomPingTargetEdit.__Dispatch_Table.getPingTarget()Lorg/apache/roller/weblogger/pojos/PingTarget;
    //#input(String save()): org/apache/roller/weblogger/ui/struts2/editor/CustomPingTargetEdit.__Dispatch_Table.myValidate(Lorg/apache/roller/weblogger/pojos/PingTarget;)V
    //#input(String save()): org/apache/roller/weblogger/ui/struts2/editor/CustomPingTargetEdit.log
    //#input(String save()): this
    //#input(String save()): this.__Tag
    //#input(String save()): this.bean
    //#input(String save()): this.bean.__Tag
    //#input(String save()): this.bean.name
    //#input(String save()): this.bean.pingUrl
    //#input(String save()): this.pingTarget
    //#output(String save()): return_value
    //#pre[1] (String save()): (soft) org/apache/roller/weblogger/ui/struts2/admin/CommonPingTargetEdit.log != null
    //#pre[2] (String save()): (soft) org/apache/roller/weblogger/ui/struts2/editor/CustomPingTargetEdit.log != null
    //#pre[4] (String save()): (soft) this.__Tag in {org/apache/roller/weblogger/ui/struts2/admin/CommonPingTargetEdit, org/apache/roller/weblogger/ui/struts2/common/PingTargetEditBase, org/apache/roller/weblogger/ui/struts2/editor/CustomPingTargetEdit}
    //#pre[5] (String save()): (soft) this.bean != null
    //#pre[6] (String save()): (soft) this.bean.__Tag == org/apache/roller/weblogger/ui/struts2/common/PingTargetFormBean
    //#pre[7] (String save()): (soft) init'ed(this.bean.name)
    //#pre[8] (String save()): (soft) init'ed(this.bean.pingUrl)
    //#pre[9] (String save()): (soft) this.pingTarget != null
    //#presumption(String save()): org.apache.roller.weblogger.business.Weblogger:getPingTargetManager(...)@107 != null
    //#presumption(String save()): org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@107 != null
    //#presumption(String save()): org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@109 != null
    //#post(String save()): return_value == &"input"
    //#unanalyzed(String save()): Effects-of-calling:org.apache.roller.weblogger.pojos.PingTarget:setName
    //#unanalyzed(String save()): Effects-of-calling:org.apache.roller.weblogger.pojos.PingTarget:setPingUrl
    //#unanalyzed(String save()): Effects-of-calling:org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger
    //#unanalyzed(String save()): Effects-of-calling:org.apache.roller.weblogger.business.Weblogger:getPingTargetManager
    //#unanalyzed(String save()): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(String save()): Effects-of-calling:getLogger
    //#unanalyzed(String save()): Effects-of-calling:org.apache.commons.logging.Log:error
    //#unanalyzed(String save()): Effects-of-calling:org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase:addError
    //#unanalyzed(String save()): Effects-of-calling:org.apache.roller.weblogger.business.pings.PingTargetManager:isNameUnique
    //#unanalyzed(String save()): Effects-of-calling:org.apache.roller.weblogger.business.pings.PingTargetManager:isUrlWellFormed
    //#unanalyzed(String save()): Effects-of-calling:org.apache.roller.weblogger.business.pings.PingTargetManager:isHostnameKnown
    //#test_vector(String save()): org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase:hasActionErrors(...)@105: {1}, {0}
    //#test_vector(String save()): org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase:hasActionErrors(...)@92: {0}, {1}
            // if we already have an error then that means we couldn't load
            // an existing ping target to work on, so return ERROR result
            return INPUT;
        }
        
        // copy data from form into ping target
        getBean().copyTo(getPingTarget());
        
        // Call private helper to validate ping target
        // If there are errors, go back to the target edit page.
        myValidate(getPingTarget());
        
        if(!hasActionErrors()) try {
    //#PingTargetEditBase.java:105: Warning: method not available
    //#    -- call on bool org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase:hasActionErrors()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase
    //#    method: String save()
    //#    unanalyzed callee: bool org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase:hasActionErrors()
            // Appears to be ok.  Save it and flush.
            PingTargetManager pingTargetMgr = WebloggerFactory.getWeblogger().getPingTargetManager();
    //#PingTargetEditBase.java:107: Warning: method not available
    //#    -- call on Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase
    //#    method: String save()
    //#    unanalyzed callee: Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#PingTargetEditBase.java:107: Warning: method not available
    //#    -- call on PingTargetManager org.apache.roller.weblogger.business.Weblogger:getPingTargetManager()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase
    //#    method: String save()
    //#    unanalyzed callee: PingTargetManager org.apache.roller.weblogger.business.Weblogger:getPingTargetManager()
            pingTargetMgr.savePingTarget(getPingTarget());
    //#PingTargetEditBase.java:108: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.business.pings.PingTargetManager:savePingTarget(PingTarget)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase
    //#    method: String save()
    //#    unanalyzed callee: void org.apache.roller.weblogger.business.pings.PingTargetManager:savePingTarget(PingTarget)
            WebloggerFactory.getWeblogger().flush();
    //#PingTargetEditBase.java:109: Warning: method not available
    //#    -- call on Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase
    //#    method: String save()
    //#    unanalyzed callee: Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#PingTargetEditBase.java:109: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.business.Weblogger:flush()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase
    //#    method: String save()
    //#    unanalyzed callee: void org.apache.roller.weblogger.business.Weblogger:flush()
            
            addMessage("pingTarget.saved");
    //#PingTargetEditBase.java:111: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase:addMessage(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase
    //#    method: String save()
    //#    unanalyzed callee: void org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase:addMessage(String)
            
        } catch (WebloggerException ex) {
            getLogger().error("Error saving ping target", ex);
    //#PingTargetEditBase.java:114: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:error(Object, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase
    //#    method: String save()
    //#    unanalyzed callee: void org.apache.commons.logging.Log:error(Object, Throwable)
            // TODO: i18n
            addError("Error saving ping target.");
    //#PingTargetEditBase.java:116: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase:addError(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase
    //#    method: String save()
    //#    unanalyzed callee: void org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase:addError(String)
        }
        
        return INPUT;
    //#PingTargetEditBase.java:119: end of method: String org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase.save()
    }
    
    
    /**
     * Private helper to validate a ping target.
     */
    protected void myValidate(PingTarget pingTarget) {
        
        try {
            PingTargetManager pingTargetMgr = WebloggerFactory.getWeblogger().getPingTargetManager();
    //#PingTargetEditBase.java:129: method: void org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase.myValidate(PingTarget)
    //#PingTargetEditBase.java:129: Warning: method not available
    //#    -- call on Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase
    //#    method: void myValidate(PingTarget)
    //#    unanalyzed callee: Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#PingTargetEditBase.java:129: Warning: method not available
    //#    -- call on PingTargetManager org.apache.roller.weblogger.business.Weblogger:getPingTargetManager()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase
    //#    method: void myValidate(PingTarget)
    //#    unanalyzed callee: PingTargetManager org.apache.roller.weblogger.business.Weblogger:getPingTargetManager()
    //#PingTargetEditBase.java:129: Warning: suspicious precondition
    //#    the precondition for this.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase
    //#    method: void myValidate(PingTarget)
    //#    suspicious precondition index: [5]
    //#    Attribs:  Soft
    //#input(void myValidate(PingTarget)): __Descendant_Table[org/apache/roller/weblogger/ui/struts2/admin/CommonPingTargetEdit]
    //#input(void myValidate(PingTarget)): __Descendant_Table[org/apache/roller/weblogger/ui/struts2/common/PingTargetEditBase]
    //#input(void myValidate(PingTarget)): __Descendant_Table[org/apache/roller/weblogger/ui/struts2/editor/CustomPingTargetEdit]
    //#input(void myValidate(PingTarget)): __Descendant_Table[others]
    //#input(void myValidate(PingTarget)): __Dispatch_Table.getLogger()Lorg/apache/commons/logging/Log;
    //#input(void myValidate(PingTarget)): org/apache/roller/weblogger/ui/struts2/admin/CommonPingTargetEdit.__Dispatch_Table.getLogger()Lorg/apache/commons/logging/Log;
    //#input(void myValidate(PingTarget)): org/apache/roller/weblogger/ui/struts2/admin/CommonPingTargetEdit.log
    //#input(void myValidate(PingTarget)): org/apache/roller/weblogger/ui/struts2/editor/CustomPingTargetEdit.__Dispatch_Table.getLogger()Lorg/apache/commons/logging/Log;
    //#input(void myValidate(PingTarget)): org/apache/roller/weblogger/ui/struts2/editor/CustomPingTargetEdit.log
    //#input(void myValidate(PingTarget)): pingTarget
    //#input(void myValidate(PingTarget)): this
    //#input(void myValidate(PingTarget)): this.__Tag
    //#pre[1] (void myValidate(PingTarget)): (soft) org/apache/roller/weblogger/ui/struts2/admin/CommonPingTargetEdit.log != null
    //#pre[2] (void myValidate(PingTarget)): (soft) org/apache/roller/weblogger/ui/struts2/editor/CustomPingTargetEdit.log != null
    //#pre[5] (void myValidate(PingTarget)): (soft) this.__Tag in {org/apache/roller/weblogger/ui/struts2/admin/CommonPingTargetEdit, org/apache/roller/weblogger/ui/struts2/common/PingTargetEditBase, org/apache/roller/weblogger/ui/struts2/editor/CustomPingTargetEdit}
    //#presumption(void myValidate(PingTarget)): org.apache.roller.weblogger.business.Weblogger:getPingTargetManager(...)@129 != null
    //#presumption(void myValidate(PingTarget)): org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@129 != null
    //#test_vector(void myValidate(PingTarget)): org.apache.roller.weblogger.business.pings.PingTargetManager:isHostnameKnown(...)@136: {1}, {0}
    //#test_vector(void myValidate(PingTarget)): org.apache.roller.weblogger.business.pings.PingTargetManager:isNameUnique(...)@130: {1}, {0}
    //#test_vector(void myValidate(PingTarget)): org.apache.roller.weblogger.business.pings.PingTargetManager:isUrlWellFormed(...)@134: {1}, {0}
            if (!pingTargetMgr.isNameUnique(pingTarget)) {
    //#PingTargetEditBase.java:130: Warning: method not available
    //#    -- call on bool org.apache.roller.weblogger.business.pings.PingTargetManager:isNameUnique(PingTarget)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase
    //#    method: void myValidate(PingTarget)
    //#    unanalyzed callee: bool org.apache.roller.weblogger.business.pings.PingTargetManager:isNameUnique(PingTarget)
                addError("pingTarget.nameNotUnique");
    //#PingTargetEditBase.java:131: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase:addError(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase
    //#    method: void myValidate(PingTarget)
    //#    unanalyzed callee: void org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase:addError(String)
            }
            
            if (!pingTargetMgr.isUrlWellFormed(pingTarget)) {
    //#PingTargetEditBase.java:134: Warning: method not available
    //#    -- call on bool org.apache.roller.weblogger.business.pings.PingTargetManager:isUrlWellFormed(PingTarget)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase
    //#    method: void myValidate(PingTarget)
    //#    unanalyzed callee: bool org.apache.roller.weblogger.business.pings.PingTargetManager:isUrlWellFormed(PingTarget)
                addError("pingTarget.malformedUrl");
    //#PingTargetEditBase.java:135: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase:addError(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase
    //#    method: void myValidate(PingTarget)
    //#    unanalyzed callee: void org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase:addError(String)
            } else if (!pingTargetMgr.isHostnameKnown(pingTarget)) {
    //#PingTargetEditBase.java:136: Warning: method not available
    //#    -- call on bool org.apache.roller.weblogger.business.pings.PingTargetManager:isHostnameKnown(PingTarget)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase
    //#    method: void myValidate(PingTarget)
    //#    unanalyzed callee: bool org.apache.roller.weblogger.business.pings.PingTargetManager:isHostnameKnown(PingTarget)
                addError("pingTarget.unknownHost");
    //#PingTargetEditBase.java:137: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase:addError(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase
    //#    method: void myValidate(PingTarget)
    //#    unanalyzed callee: void org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase:addError(String)
            }
        } catch (WebloggerException ex) {
            getLogger().error("Error validating ping target", ex);
    //#PingTargetEditBase.java:140: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:error(Object, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase
    //#    method: void myValidate(PingTarget)
    //#    unanalyzed callee: void org.apache.commons.logging.Log:error(Object, Throwable)
            // TODO: i18n
            addError("Error doing ping target validation");
    //#PingTargetEditBase.java:142: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase:addError(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase
    //#    method: void myValidate(PingTarget)
    //#    unanalyzed callee: void org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase:addError(String)
        }
    }
    //#PingTargetEditBase.java:144: end of method: void org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase.myValidate(PingTarget)
    
    
    public PingTarget getPingTarget() {
        return pingTarget;
    //#PingTargetEditBase.java:148: method: PingTarget org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase.getPingTarget()
    //#input(PingTarget getPingTarget()): this
    //#input(PingTarget getPingTarget()): this.pingTarget
    //#output(PingTarget getPingTarget()): return_value
    //#pre[2] (PingTarget getPingTarget()): init'ed(this.pingTarget)
    //#post(PingTarget getPingTarget()): return_value == this.pingTarget
    //#post(PingTarget getPingTarget()): init'ed(return_value)
    //#PingTargetEditBase.java:148: end of method: PingTarget org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase.getPingTarget()
    }

    public void setPingTarget(PingTarget pingTarget) {
        this.pingTarget = pingTarget;
    //#PingTargetEditBase.java:152: method: void org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase.setPingTarget(PingTarget)
    //#input(void setPingTarget(PingTarget)): pingTarget
    //#input(void setPingTarget(PingTarget)): this
    //#output(void setPingTarget(PingTarget)): this.pingTarget
    //#post(void setPingTarget(PingTarget)): this.pingTarget == pingTarget
    //#post(void setPingTarget(PingTarget)): init'ed(this.pingTarget)
    }
    //#PingTargetEditBase.java:153: end of method: void org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase.setPingTarget(PingTarget)
    
    public PingTargetFormBean getBean() {
        return bean;
    //#PingTargetEditBase.java:156: method: PingTargetFormBean org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase.getBean()
    //#input(PingTargetFormBean getBean()): this
    //#input(PingTargetFormBean getBean()): this.bean
    //#output(PingTargetFormBean getBean()): return_value
    //#pre[2] (PingTargetFormBean getBean()): init'ed(this.bean)
    //#post(PingTargetFormBean getBean()): return_value == this.bean
    //#post(PingTargetFormBean getBean()): init'ed(return_value)
    //#PingTargetEditBase.java:156: end of method: PingTargetFormBean org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase.getBean()
    }

    public void setBean(PingTargetFormBean bean) {
        this.bean = bean;
    //#PingTargetEditBase.java:160: method: void org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase.setBean(PingTargetFormBean)
    //#input(void setBean(PingTargetFormBean)): bean
    //#input(void setBean(PingTargetFormBean)): this
    //#output(void setBean(PingTargetFormBean)): this.bean
    //#post(void setBean(PingTargetFormBean)): this.bean == bean
    //#post(void setBean(PingTargetFormBean)): init'ed(this.bean)
    }
    //#PingTargetEditBase.java:161: end of method: void org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase.setBean(PingTargetFormBean)
    
}
    //#output(org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase__static_init): __Descendant_Table[org/apache/roller/weblogger/ui/struts2/common/PingTargetEditBase]
    //#output(org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase__static_init): __Dispatch_Table.execute()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase__static_init): __Dispatch_Table.getBean()Lorg/apache/roller/weblogger/ui/struts2/common/PingTargetFormBean;
    //#output(org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase__static_init): __Dispatch_Table.getLogger()Lorg/apache/commons/logging/Log;
    //#output(org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase__static_init): __Dispatch_Table.getPingTarget()Lorg/apache/roller/weblogger/pojos/PingTarget;
    //#output(org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase__static_init): __Dispatch_Table.myPrepare()V
    //#output(org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase__static_init): __Dispatch_Table.myValidate(Lorg/apache/roller/weblogger/pojos/PingTarget;)V
    //#output(org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase__static_init): __Dispatch_Table.save()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase__static_init): __Dispatch_Table.setBean(Lorg/apache/roller/weblogger/ui/struts2/common/PingTargetFormBean;)V
    //#output(org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase__static_init): __Dispatch_Table.setPingTarget(Lorg/apache/roller/weblogger/pojos/PingTarget;)V
    //#post(org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase__static_init): __Descendant_Table[org/apache/roller/weblogger/ui/struts2/common/PingTargetEditBase] == &__Dispatch_Table
    //#post(org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase__static_init): __Dispatch_Table.execute()Ljava/lang/String; == &execute
    //#post(org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase__static_init): __Dispatch_Table.getBean()Lorg/apache/roller/weblogger/ui/struts2/common/PingTargetFormBean; == &getBean
    //#post(org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase__static_init): __Dispatch_Table.getLogger()Lorg/apache/commons/logging/Log; == &getLogger
    //#post(org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase__static_init): __Dispatch_Table.getPingTarget()Lorg/apache/roller/weblogger/pojos/PingTarget; == &getPingTarget
    //#post(org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase__static_init): __Dispatch_Table.myPrepare()V == &myPrepare
    //#post(org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase__static_init): __Dispatch_Table.myValidate(Lorg/apache/roller/weblogger/pojos/PingTarget;)V == &myValidate
    //#post(org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase__static_init): __Dispatch_Table.save()Ljava/lang/String; == &save
    //#post(org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase__static_init): __Dispatch_Table.setBean(Lorg/apache/roller/weblogger/ui/struts2/common/PingTargetFormBean;)V == &setBean
    //#post(org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase__static_init): __Dispatch_Table.setPingTarget(Lorg/apache/roller/weblogger/pojos/PingTarget;)V == &setPingTarget
    //#PingTargetEditBase.java:: end of method: org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase.org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase__static_init
    //#PingTargetEditBase.java:: end of class: org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase
