The CarrierInfoInqRqHandler Class
//: CarrierInfoInqRqHandler.java
package com.owensum.everest.xml;
import org.w3c.dom.*;
import java.util.*;
/** This method processes CarrierInfoInqRq's.
*
* @author Jeng Shih
* @version 1.0
*/
public class CarrierInfoInqRqHandler extends InsuranceElementHandler {
// tags
public static final String TAG_CARRIER_INFO_INQ_RQ = "CarrierInfoInqRq";
private static final String TAG_CARRIER_INFO_INQ_RS = "CarrierInfoInqRs";
// paths
private static final String RPATH_STATE = XMLUtil.NODE_STATE;
private static final String RPATH_PRODUCER = XMLUtil.NODE_PRODUCER;
private static final String RPATH_STATE_NAME = XMLUtil.NODE_STATE + "/" +
XMLUtil.NODE_NAME;
private static final String RPATH_STATE_ABBREVIATION = XMLUtil.NODE_STATE + "/" +
XMLUtil.NODE_ABBREVIATION;
private static final String RPATH_LINE_OF_BUSINESS = XMLUtil.NODE_LINE_OF_BUSINESS;
private static final String RPATH_LINE_OF_BUSINESS_CODE = XMLUtil.NODE_LINE_OF_BUSINESS + "/" +
XMLUtil.NODE_CODE;
private static final String RPATH_ITEM_ID_INFO = XMLUtil.NODE_PRODUCER + "/" +
XMLUtil.NODE_ITEM_ID_INFO;
protected String getResponseElementName()
{
return TAG_CARRIER_INFO_INQ_RS;
}
protected void processRequest( Transaction trans, Document doc, Element req, Element res, Vector err )
throws XMLException
{
// get all agent templates requested
try {
Vector templates = getAgentTemplates( req, err );
// iterate over each template
Enumeration e = templates.elements();
while ( e.hasMoreElements() ) {
AgentTemplate aTmp = (AgentTemplate) e.nextElement();
appendChild( res, createAgentTemplate( doc, aTmp ) );
}
}
catch (Exception e) {
throw new XMLException( e.getMessage() );
}
}
protected void echoRequestElements( Document doc, Element req, Element res, Vector err )
throws XMLException
{
appendChild( res, echoRequiredElement( doc, req, RPATH_STATE, err ) );
appendChild( res, echoRequiredElement( doc, req, RPATH_LINE_OF_BUSINESS, err ) );
appendChild( res, echoRequiredElement( doc, req, RPATH_PRODUCER, err ) );
}
private Element createAgentTemplate( Document doc, AgentTemplate aTmp )
throws Exception
{
Carrier carrier = aTmp.getCarrier();
LineOfBusiness lob = aTmp.getLineOfBusiness();
UnderwritingTemplate template = aTmp.getTemplate();
// node --- Agent Template
Element node = doc.createElement( XMLUtil.NODE_AGENT_TEMPLATE );
// FIRST child
// --- Carrier
appendChild( node, createCarrier( doc, carrier ) );
// SECOND child
// --- UnderwritingTemplate
appendChild( node, createUnderwritingTemplate( doc, lob, template ) );
return node;
}
// process the element and return the exposure code
private Vector getAgentTemplates( Element request, Vector errors )
throws Exception
{
State state = getState( request, RPATH_STATE_ABBREVIATION, errors );
Agent agent = getAgent( request, RPATH_ITEM_ID_INFO, errors );
LineOfBusiness lob = getLineOfBusiness( request, RPATH_LINE_OF_BUSINESS_CODE, errors );
// return a vector of AgentTemplates
return agent.getAgentTemplates( state, lob );
}
}