/*
 * Fichero:     PeticionProveedor.java
 * Fecha:       20/10/06
 * Autor:       Alvaro Sarmiento Losada
 * Asignatura:  Proyecto Fin de Carrera
 * Descripción: Clase que representa un mensaje SOAP de petición de registro
 * 				de los datos de un determinado proveedor. Esta información es 
 * 				necesaria almacenarse para una posterior transacción de 
 * 				comercio electrónico.
 *
 * Este fichero pertenece al proyecto fin de carrera del autor,
 * consistente en el estudio de JXTA y su aplicación al comercio 
 * electrónico b2b.
 */

package com.pfc.lib.soap;

import javax.xml.soap.*;

/**Clase que representa un mensaje SOAP de petición de registro mis datos en la tabla de proveedor ya que pueden interesar a algun cliente que  
 *requiera uno de mis productos.
 *
 *@autor Alvaro Sarmiento Losada
 */
public class PeticionProveedor {
	
	SOAPMessage msg=null;
	/** Instanciacion del objeto
	 * 
	 * @param array Los datos del par que quiero registrar
	 */
	public PeticionProveedor(String []array){
		try{
			/*Creamos un mensaje*/
			MessageFactory mf = MessageFactory.newInstance();
			/*A partir de él obtenemos un mensaje SOAP*/
			msg = mf.createMessage();
			System.out.println("Se ha creado un documento soap");
		
			/*crear_estructura(array);*/
			SOAPPart sp = msg.getSOAPPart();
			SOAPEnvelope env = sp.getEnvelope();
			env.addNamespaceDeclaration("xsd","http://www.w3.org/2001/XMLSchema");
			env.addNamespaceDeclaration("xsi","http://www.w3.org/2001/XMLSchema-instance");
			env.addNamespaceDeclaration("enc","http://schemas.xmlsoap.org/soap/encoding/");
			env.addNamespaceDeclaration("env","http://schemas.xmlsoap.org/soap/envelop/");
			env.setEncodingStyle("http://schemas.xmlsoap.org/soap/encoding/");

				
			SOAPHeader cabecera = env.getHeader();
		
			cabecera.addChildElement(env.createName("Proveedor",
					"p",
			"http://www.catalogos.com/peticion")); 

			SOAPBody cuerpo = env.getBody();
		
			Name nombre_cuerpo= env.createName("Producto","pro","http://osito.com");

			SOAPBodyElement gltp = cuerpo.addBodyElement(nombre_cuerpo);
						
			/*Añadimos el elemento tipo_vehiculo*/
			Name tipo_veh = env.createName("nombre");

			SOAPElement mySymbol = gltp.addChildElement(tipo_veh);
	
			mySymbol.addTextNode(array[0]);
			
			
			Name color = env.createName("direccion");

			SOAPElement mySymbl = gltp.addChildElement(color);
	
			mySymbl.addTextNode(array[1]);
	
	
			Name catalogo = env.createName("localidad");

			SOAPElement Symbl = gltp.addChildElement(catalogo);
	
			Symbl.addTextNode(array[2]);
	
			
			Name marca = env.createName("provincia");

			SOAPElement Symbol = gltp.addChildElement(marca);
	
			Symbol.addTextNode(array[3]);
	
			
			Name cod = env.createName("codigopostal");

			SOAPElement ymbl = gltp.addChildElement(cod);
	
			ymbl.addTextNode(array[4]);
	
		
			Name pais = env.createName("pais");

			SOAPElement ymbol = gltp.addChildElement(pais);
	
			ymbol.addTextNode(array[5]);
	
	
		}catch(Exception e){
			System.out.println("Se ha producido una excepcion");
		}
	}

	public SOAPMessage devolverMensaje() {
		return msg;
	}

	public void colocarMensaje(SOAPMessage mensaje){
		msg=mensaje;
	}

}
