//$Header: /cvsroot-fuse/mec-as2/39/mendelson/comm/as2/cem/messages/EDIINTCertificateExchangeRequest.java,v 1.1 2012/04/18 14:10:22 heller Exp $ package de.mendelson.comm.as2.cem.messages; import de.mendelson.util.XPathHelper; import java.io.ByteArrayInputStream; import java.util.ArrayList; import java.util.List; /* * Copyright (C) mendelson-e-commerce GmbH Berlin Germany * * This software is subject to the license agreement set forth in the license. * Please read and agree to all terms before using this software. * Other product and brand names are trademarks of their respective owners. */ /** * Creates a EDIINTCertificateExchangeRequest with several parameters * @author S.Heller * @version $Revision: 1.1 $ */ public class EDIINTCertificateExchangeRequest extends CEMStructure { private String requestId = null; private List<TrustRequest> trustRequestList = new ArrayList<TrustRequest>(); private TradingPartnerInfo tradingPartnerInfo = null; /** Creates new message I/O log and connects to localhost *@param host host to connect to */ public EDIINTCertificateExchangeRequest() { } /**Returns a created XML header*/ public String getHeaderXML() { if (this.requestId == null) { throw new RuntimeException("EDIINTCertificateExchangeRequest: requestId not set."); } StringBuilder builder = new StringBuilder(); builder.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"); builder.append("<EDIINTCertificateExchangeRequest "); builder.append("xmlns=\"urn:ietf:params:xml:ns:ediintcertificateexchange\" "); builder.append("xmlns:ds=\"http://www.w3.org/2000/09/xmldsig#\" "); builder.append("xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" "); builder.append("requestId=\"").append(this.requestId).append("\">\n"); return (builder.toString()); } /**Returns the request as xml*/ @Override public String toXML() { StringBuilder builder = new StringBuilder(); builder.append(this.getHeaderXML()); if (this.getTradingPartnerInfo() == null) { throw new RuntimeException("EDIINTCertificateExchangeRequest: Trading partner info not set."); } builder.append(this.getTradingPartnerInfo().toXML()); for (TrustRequest trustRequest : this.trustRequestList) { builder.append(trustRequest.toXML()); } builder.append("</EDIINTCertificateExchangeRequest>"); return (builder.toString()); } /**Parses the xml description of a CEM and creates a CEM structure of it*/ public static final EDIINTCertificateExchangeRequest parse(byte[] data) throws Exception { EDIINTCertificateExchangeRequest request = new EDIINTCertificateExchangeRequest(); ByteArrayInputStream inStream = new ByteArrayInputStream(data); XPathHelper helper = new XPathHelper(inStream); helper.addNamespace("x", "urn:ietf:params:xml:ns:ediintcertificateexchange"); request.setRequestId(helper.getValue("/x:EDIINTCertificateExchangeRequest/@requestId")); request.setTradingPartnerInfo(TradingPartnerInfo.parse(data, "/x:EDIINTCertificateExchangeRequest")); request.setTrustRequestList(TrustRequest.parse(data)); inStream.close(); return (request); } /** * @return the requestId */ public String getRequestId() { return requestId; } /** * @param requestId the requestId to set */ public void setRequestId(String requestId) { this.requestId = requestId; } /** * @return the trustRequestList */ public List<TrustRequest> getTrustRequestList() { return trustRequestList; } /** * @param trustRequestList the trustRequestList to set */ public void setTrustRequestList(List<TrustRequest> trustRequestList) { this.trustRequestList = trustRequestList; } public void addTrustRequest(TrustRequest trustRequest) { this.trustRequestList.add(trustRequest); } /** * @return the tradingPartnerInfo */ public TradingPartnerInfo getTradingPartnerInfo() { if (this.tradingPartnerInfo == null) { throw new RuntimeException("EDIINTCertificateExchangeRequest: Trading partner info not set."); } return( this.tradingPartnerInfo); } /** * @param tradingPartnerInfo the tradingPartnerInfo to set */ public void setTradingPartnerInfo(TradingPartnerInfo tradingPartnerInfo) { this.tradingPartnerInfo = tradingPartnerInfo; } }