package com.aegonusa.afp.addrval;

/**
 * Title:
 * <br>Description:
 * <br>Copyright:    Copyright (c) 2002
 * <br>Company:      AegonUSA
 * @author Jim Brain
 * @version 1.0
 */

import org.w3c.dom.*;
import org.hr_xml.postaladdress.*;
import org.exolab.castor.xml.*;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;




public class AddressValidationService {

    public Element[] validateAddress(Element [] input) throws AddressValidationException {
        if(input == null || input.length == 0) {
            throw new AddressValidationException("No message found");
        }
        try {
            PostalAddress request=(PostalAddress)Unmarshaller.unmarshal(PostalAddress.class,input[0]);
            PostalAddress reply=new AddressValidator().validate(request);

            Element[] output = new Element[1];
            DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
            Document doc            = builder.newDocument();

            Marshaller.marshal(reply,doc);
            output[0] = doc.getDocumentElement();
            return output;
        } catch (AddressValidationException ave) {        	
            throw ave;
        } catch (Exception e) {        	
            throw new AddressValidationException("Error occured during Validation of Address",e);
        } catch (Throwable t) {
        	return null;       
        }
    }    

}