Добрый день,
помогите осилить для версии 5.1
Код:
package bitel.billing.server.contract;
import bitel.billing.server.admin.bean.User;
import bitel.billing.server.admin.bgsecure.bean.UserLoginModule.UserPrincipal;
import bitel.billing.server.contract.action.base.ActionBase;
import bitel.billing.server.contract.bean.ContractEmailParamValue;
import bitel.billing.server.contract.bean.ContractParameterManager;
import bitel.billing.server.script.bean.event.ContractParamBeforeChangeEvent;
import bitel.billing.server.script.bean.event.ContractParamChangedEvent;
import bitel.billing.server.script.bean.event.EventProcessor;
import org.w3c.dom.Element;
import ru.bitel.bgbilling.server.util.Setup;
import javax.security.auth.Subject;
import java.security.AccessController;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Iterator;
public class WebAction_AdditionalParams extends ActionBase
{
@Override
public void doAction()
throws SQLException
{
// Object request holds all information about HTTP-request
request.getSession();
// Get customer ID
Subject subject = Subject.getSubject( AccessController.getContext() );
if( subject != null )
{
for( UserPrincipal userPrincipal : subject.getPrincipals( UserPrincipal.class ) )
{
User currentUser = userPrincipal.getUser();
Integer cid = currentUser.getID();
}
}
if( cid != 0 )
{
Setup setup = Setup.getSetup();
ContractParameterManager cpm = new ContractParameterManager( con );
Integer pid = 0;
Integer reportIsNeeded = 0;
Element report = createElement( rootNode, "report" );
Element element;
// Get parameter IDs and descriptions from BGBilling configuration
HashMap<String,String> pids = (HashMap<String,String>) setup.getHashValuesWithPrefix( "my.pid." );
HashMap<String,String> descriptions = (HashMap<String,String>) setup.getHashValuesWithPrefix( "my.desc." );
// Cycle through parameters set
Iterator iterator = pids.keySet().iterator();
while( iterator. hasNext() )
{
String paramName = String.valueOf( iterator.next() );
String paramDesc = descriptions.get( paramName );
String paramValue = request.getParameter( paramName );
String oldParamValue;
String errorBefore = "";
ContractEmailParamValue emailParam = null;
ContractParamBeforeChangeEvent eventBefore = null;
ContractParamChangedEvent event = null;
// If value from POST-request exists
if( paramValue != null )
{
pid = Integer.parseInt( pids.get( paramName ));
// Get old value (email parameter needs special handling)
if( paramName.equals( "email" )) {
emailParam = cpm.getEmailParam( cid, pid );
oldParamValue = emailParam.getEmail();
} else {
oldParamValue = cpm.getStringParam( cid, pid );
}
// If value has been changed (from LK) then ...
if( !paramValue.equals( oldParamValue ))
{
// Prepare new value to parameter and set "before change" event (email parameter needs special handling)
if( paramName.equals( "email" )) {
emailParam.setEmail( paramValue );
emailParam.setEmailId( 1 );
eventBefore = new ContractParamBeforeChangeEvent( cid, pid, emailParam );
} else {
eventBefore = new ContractParamBeforeChangeEvent( cid, pid, paramValue );
}
if( eventBefore != null )
{
// Create "row" element for XML report
element = createElement( report, "row" );
element.setAttribute( "parameter", paramDesc );
// Throw "before change" event to handler (BGBilling server) and get error message
EventProcessor.getProcessor().processEvent( eventBefore );
errorBefore = eventBefore.getError();
if( errorBefore == null )
{
// If handler returns "ok" then set new parameter value and set "parameter changed" event
if( paramName.equals( "email" )) {
cpm.setEmailParam( cid, pid, emailParam, false, 1 );
event = new ContractParamChangedEvent( cid, pid, emailParam );
} else {
cpm.setStringParam( cid, pid, paramValue, 1 );
event = new ContractParamChangedEvent( cid, pid, paramValue );
}
if( event != null )
{
// Throw "parameter changed" event and set attributes for XML report
EventProcessor.getProcessor().addEvent( event );
element.setAttribute( "status", "ok" );
element.setAttribute( "value", String.valueOf( paramValue ));
reportIsNeeded = 1;
}
} else {
// If handler returns error then set attributes for XML report only
element.setAttribute( "status", "error" );
element.setAttribute( "value", String.valueOf( errorBefore ));
reportIsNeeded = 1;
}
}
}
}
}
// Renew XML element with contract parameters and set status variable for Web
if( reportIsNeeded == 1 )
{
request.getSession().removeAttribute( "contract_data" );
rootNode.setAttribute("status","ok");
}
}
}
}
ругается на event = new ContractParamChangedEvent( cid, pid, emailParam ); и eventBefore = new ContractParamBeforeChangeEvent( cid, pid, paramValue ); в коде.
Код:
/srv/my_param.java:83: cannot find symbol
symbol : constructor ContractParamBeforeChangeEvent(int,java.lang.Integer,bitel.billing.server.contract.bean.ContractEmailParamValue)
location: class bitel.billing.server.script.bean.event.ContractParamBeforeChangeEvent
eventBefore = new ContractParamBeforeChangeEvent( cid, pid, emailParam );
^
/srv/my_param.java:85: cannot find symbol
symbol : constructor ContractParamBeforeChangeEvent(int,java.lang.Integer,java.lang.String)
location: class bitel.billing.server.script.bean.event.ContractParamBeforeChangeEvent
eventBefore = new ContractParamBeforeChangeEvent( cid, pid, paramValue );
^
/srv/my_param.java:103: cannot find symbol
symbol : constructor ContractParamChangedEvent(int,java.lang.Integer,bitel.billing.server.contract.bean.ContractEmailParamValue)
location: class bitel.billing.server.script.bean.event.ContractParamChangedEvent
event = new ContractParamChangedEvent( cid, pid, emailParam );
^
/srv/my_param.java:106: cannot find symbol
symbol : constructor ContractParamChangedEvent(int,java.lang.Integer,java.lang.String)
location: class bitel.billing.server.script.bean.event.ContractParamChangedEvent
event = new ContractParamChangedEvent( cid, pid, paramValue );
^
Note: /srv/my_param.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
4 errors