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 );
    }

}

Previous | Contents