package com.ebmwebsourcing.easybpel.usecase.veolia;

import javax.xml.namespace.QName;

import com.ebmwebsourcing.easybpel.model.bpel.api.BPELException;
import com.ebmwebsourcing.easybpel.model.bpel.api.message.BPELExternalMessage;
import com.ebmwebsourcing.easybpel.model.bpel.impl.message.BPELExternalMessageImpl;
import com.ebmwebsourcing.easyviper.core.api.CoreException;
import com.ebmwebsourcing.easyviper.environment.test.env.api.Operation;
import com.ebmwebsourcing.easyviper.environment.test.env.api.ProviderEndpoint;
import com.ebmwebsourcing.easyviper.environment.test.env.api.Service;
import com.ebmwebsourcing.easyviper.environment.test.env.impl.AbstractServiceImpl;
import com.ebmwebsourcing.easyviper.environment.test.env.impl.OperationImpl;

public class ContactService extends AbstractServiceImpl implements Service {


	public ContactService(ProviderEndpoint pep) throws BPELException {
		super(pep);
		this.setName(new QName("urn:crmondemand/ws/contact/10/2004", "Contact"));

		// Create operation
		Account();
	}

	private void Account() throws BPELException {
		try {
			Operation account = new OperationImpl("ContactQueryPage", Operation.IN_OUT, this);
			this.addOperation(account);


			BPELExternalMessage in = new BPELExternalMessageImpl();
			in.setService(this.getName());
			in.setEndpoint(this.getProviderEndpoint().getName());
			in.setQName(new QName("urn:crmondemand/ws/contact/10/2004", "ContactWS_ContactQueryPage_Input"));
			in.setMessage("" +
						"<tns:ContactWS_ContactQueryPage_Input xmlns:tns=\"urn:crmondemand/ws/contact/10/2004\"> "+
						"<tns:UseChildAnd xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"xsd:string\">true</tns:UseChildAnd>"+
						"<tns:PageSize xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"xsd:string\">1</tns:PageSize>"+
						"<xsdLocal1:ListOfContact xmlns:xsdLocal1=\"urn:/crmondemand/xml/contact\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"xsdLocal1:ListOfContact\">"+
						"<xsdLocal1:Contact xsi:type=\"xsdLocal1:Contact\">"+
						"<xsdLocal1:ContactId xsi:type=\"xsdLocal1:string30\">25722947</xsdLocal1:ContactId>"+
						"</xsdLocal1:Contact>"+
						"</xsdLocal1:ListOfContact>"+
						"<tns:StartRowNum xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"xsd:string\">0</tns:StartRowNum>"+
						"</tns:ContactWS_ContactQueryPage_Input>"
			);
			BPELExternalMessage out = new BPELExternalMessageImpl();
			out.setService(this.getName());
			out.setEndpoint(this.getProviderEndpoint().getName());
			out.setQName(new QName("urn:crmondemand/ws/contact/10/2004", "ContactWS_ContactQueryPage_Output"));
			out.setMessage("" +
					"<ns:ContactWS_ContactQueryPage_Output xmlns:ns=\"urn:crmondemand/ws/contact/10/2004\">"+
					"<ns:LastPage>true</ns:LastPage>"+
					"<ListOfContact xmlns=\"urn:/crmondemand/xml/contact\">"+
					"<Contact>"+
					"<ContactId>ADBA-2XAWRU</ContactId>"+
					"<ModId>2</ModId>"+
					"<AccountId>ADBA-2XAWRC</AccountId>"+
					"<Description/>"+
					"<ContactType/>"+
					"<CreatedDate>01/23/2009 15:23:27</CreatedDate>"+
					"<ExternalSystemId>25722947</ExternalSystemId>"+
					"<ContactLastName>PALLESCHI SARAH</ContactLastName>"+
					"<MrMrs>MELLE</MrMrs>"+
					"</Contact>"+
					
					
					

					"<Contact>"+
					"<ContactId>fdg</ContactId>"+
					"<ModId>2</ModId>"+
					"<AccountId>gd</AccountId>"+
					"<Description/>"+
					"<ContactType/>"+
					"<CreatedDate>01/23/2009 15:23:27</CreatedDate>"+
					"<ExternalSystemId>1111111</ExternalSystemId>"+
					"<ContactLastName>TOTO TITI</ContactLastName>"+
					"<MrMrs>MELLE</MrMrs>"+
					"</Contact>"+
					
					
					
					"</ListOfContact>"+
					"</ns:ContactWS_ContactQueryPage_Output>"
			);
			account.addMessageExchangeInstances(in, out, null);

			
			
			
			BPELExternalMessage in1 = new BPELExternalMessageImpl();
			in1.setService(this.getName());
			in1.setEndpoint(this.getProviderEndpoint().getName());
			in1.setQName(new QName("urn:crmondemand/ws/contact/10/2004", "ContactWS_ContactQueryPage_Input"));
			in1.setMessage("" +
						"<tns:ContactWS_ContactQueryPage_Input xmlns:tns=\"urn:crmondemand/ws/contact/10/2004\"> "+
						"<tns:UseChildAnd xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"xsd:string\">true</tns:UseChildAnd>"+
						"<tns:PageSize xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"xsd:string\">1</tns:PageSize>"+
						"<xsdLocal1:ListOfContact xmlns:xsdLocal1=\"urn:/crmondemand/xml/contact\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"xsdLocal1:ListOfContact\">"+
						"<xsdLocal1:Contact xsi:type=\"xsdLocal1:Contact\">"+
						"<xsdLocal1:ContactId xsi:type=\"xsdLocal1:string30\">25741148</xsdLocal1:ContactId>"+
						"</xsdLocal1:Contact>"+
						"</xsdLocal1:ListOfContact>"+
						"<tns:StartRowNum xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"xsd:string\">0</tns:StartRowNum>"+
						"</tns:ContactWS_ContactQueryPage_Input>"
			);
			BPELExternalMessage out1 = new BPELExternalMessageImpl();
			out1.setService(this.getName());
			out1.setEndpoint(this.getProviderEndpoint().getName());
			out1.setQName(new QName("urn:crmondemand/ws/contact/10/2004", "ContactWS_ContactQueryPage_Output"));
			out1.setMessage("" +
					"<ns:ContactWS_ContactQueryPage_Output xmlns:ns=\"urn:crmondemand/ws/contact/10/2004\">"+
					"<ns:LastPage>true</ns:LastPage>"+
					"<ListOfContact xmlns=\"urn:/crmondemand/xml/contact\">"+
					"<Contact>"+
					"<ContactId>ADBA-2XAWRU</ContactId>"+
					"<ModId>2</ModId>"+
					"<AccountId>ADBA-2XAWRC</AccountId>"+
					"<Description/>"+
					"<ContactType/>"+
					"<CreatedDate>01/23/2009 15:23:27</CreatedDate>"+
					"<ExternalSystemId>25722947</ExternalSystemId>"+
					"<ContactLastName>PALLESCHI SARAH</ContactLastName>"+
					"<MrMrs>MELLE</MrMrs>"+
					"</Contact>"+
					"</ListOfContact>"+
					"</ns:ContactWS_ContactQueryPage_Output>"
			);
			account.addMessageExchangeInstances(in1, out1, null);
			
			
			
			BPELExternalMessage in3 = new BPELExternalMessageImpl();
			in3.setService(this.getName());
			in3.setEndpoint(this.getProviderEndpoint().getName());
			in3.setQName(new QName("urn:crmondemand/ws/contact/10/2004", "ContactWS_ContactQueryPage_Input"));
			in3.setMessage("" +
						"<tns:ContactWS_ContactQueryPage_Input xmlns:tns=\"urn:crmondemand/ws/contact/10/2004\"> "+
						"<tns:UseChildAnd xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"xsd:string\">true</tns:UseChildAnd>"+
						"<tns:PageSize xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"xsd:string\">1</tns:PageSize>"+
						"<xsdLocal1:ListOfContact xmlns:xsdLocal1=\"urn:/crmondemand/xml/contact\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"xsdLocal1:ListOfContact\">"+
						"<xsdLocal1:Contact xsi:type=\"xsdLocal1:Contact\">"+
						"<xsdLocal1:ContactId xsi:type=\"xsdLocal1:string30\">25722947</xsdLocal1:ContactId>"+
						"</xsdLocal1:Contact>"+
						"</xsdLocal1:ListOfContact>"+
						"<tns:StartRowNum xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"xsd:string\">0</tns:StartRowNum>"+
						"</tns:ContactWS_ContactQueryPage_Input>"
			);
			BPELExternalMessage out3 = new BPELExternalMessageImpl();
			out3.setService(this.getName());
			out3.setEndpoint(this.getProviderEndpoint().getName());
			out3.setQName(new QName("urn:crmondemand/ws/contact/10/2004", "ContactWS_ContactQueryPage_Output"));
			out3.setMessage("" +
					"<ns:ContactWS_ContactQueryPage_Output xmlns:ns=\"urn:crmondemand/ws/contact/10/2004\">"+
					"<ns:LastPage>true</ns:LastPage>"+
					"<ListOfContact xmlns=\"urn:/crmondemand/xml/contact\">"+
					"<Contact>"+
					"<ContactId>ADBA-2XAWRU</ContactId>"+
					"<ModId>2</ModId>"+
					"<AccountId>ADBA-2XAWRC</AccountId>"+
					"<Description/>"+
					"<ContactType/>"+
					"<CreatedDate>01/23/2009 15:23:27</CreatedDate>"+
					"<ExternalSystemId>25722947</ExternalSystemId>"+
					"<ContactLastName>PALLESCHI SARAH</ContactLastName>"+
					"<MrMrs>MELLE</MrMrs>"+
					"</Contact>"+

					"</ListOfContact>"+
					"</ns:ContactWS_ContactQueryPage_Output>"
			);
			account.addMessageExchangeInstances(in3, out3, null);
			
			
		} catch (CoreException e) {
			throw new BPELException(e);
		}
	}


}
