package org.jacorb.test.bugs.bugrtj634;
import org.omg.PortableInterceptor.ForwardRequest;
import org.omg.PortableInterceptor.ServerRequestInfo;
import org.omg.PortableInterceptor.ServerRequestInterceptor;
/**
* <code>SInterceptor</code> receives a ServiceContext from the SInterceptor.
* It then stores the information within that ServiceContext in a slot within
* PICurrent for the server to analyse.
*
* @author <a href="mailto:rnc@prismtechnologies.com">Nick Cross</a>
* @version 1.0
*/
public class SInterceptor
extends org.omg.CORBA.LocalObject
implements ServerRequestInterceptor
{
private int counter = 0;
static org.omg.CORBA.Object OBJ_2 = null;
/**
* <code>name</code> (default impl).
*
* @return a <code>String</code> value
*/
public String name()
{
return "SInterceptor";
}
/**
* <code>destroy</code> (default impl).
*/
public void destroy()
{
}
/**
* <code>receive_request_service_contexts</code> (default impl).
*
* @param ri a <code>ServerRequestInfo</code> value
* @exception ForwardRequest if an error occurs
*/
public void receive_request_service_contexts( ServerRequestInfo ri )
throws ForwardRequest
{
counter++;
if (counter == 1 || counter == 4 || counter == 7)
{
// first invocation redirect to obj_2
throw new org.omg.PortableInterceptor.ForwardRequest(OBJ_2);
}
}
/**
* <code>receive_request</code>
*
* @param ri a <code>ServerRequestInfo</code> value
* @exception ForwardRequest if an error occurs
*/
public void receive_request( ServerRequestInfo ri )
throws ForwardRequest
{
}
/**
* <code>send_reply</code> (default impl).
*
* @param ri a <code>ServerRequestInfo</code> value
*/
public void send_reply( ServerRequestInfo ri )
{
}
/**
* <code>send_exception</code> (default impl).
*
* @param ri a <code>ServerRequestInfo</code> value
* @exception ForwardRequest if an error occurs
*/
public void send_exception( ServerRequestInfo ri )
throws ForwardRequest
{
throw new ForwardRequest();
}
/**
* <code>send_other</code> (default impl).
*
* @param ri a <code>ServerRequestInfo</code> value
* @exception ForwardRequest if an error occurs
*/
public void send_other( ServerRequestInfo ri )
throws ForwardRequest
{
}
}