/*
 * Fichero:     CambioId.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 cambio
 * 				de identificador de peer en la red JXTA. Este cambio tiene 
 * 				que reflejarse en nuestro sistema de bases de datos.
 *
 * 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.MessageFactory;
import javax.xml.soap.Name;
import javax.xml.soap.SOAPBody;
import javax.xml.soap.SOAPBodyElement;
import javax.xml.soap.SOAPElement;
import javax.xml.soap.SOAPEnvelope;
import javax.xml.soap.SOAPHeader;
import javax.xml.soap.SOAPMessage;
import javax.xml.soap.SOAPPart;
import java.io.*;


/** Clase que representa un mensaje de petición SOAP de cambio de nombre del par en la base de datos
 * 
 * @author Alvaro Sarmiento Losada
 *
 */
public class CambioID implements Serializable{

	SOAPMessage msg=null;

	private static final long serialVersionUID = 8799656478674716638L;

	/** Instanciacion del objeto*/
	public CambioID(String anterior,String ultimo){
		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("Identificador",
					"i",
			"http://www.catalogos.com/peticion")); 

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

			SOAPBodyElement gltp = cuerpo.addBodyElement(nombre_cuerpo);
			
			Name id_ant = env.createName("anterior");

			SOAPElement myS = gltp.addChildElement(id_ant);
			
			myS.addTextNode(anterior);
				
					
		/*Añadimos el elemento tipo_vehiculo*/
		Name nuevo = env.createName("nuevo");

		SOAPElement mySymbol = gltp.addChildElement(nuevo);
		
		mySymbol.addTextNode(ultimo);
			
		
		
		
		}catch(Exception e){}
	}
	
	public SOAPMessage devolverMensaje() {
		return msg;
	}
	
	public void colocarMensaje(SOAPMessage mensaje){
		msg=mensaje;
	}
}

