Example usage for org.dom4j Element addElement

List of usage examples for org.dom4j Element addElement

Introduction

In this page you can find the example usage for org.dom4j Element addElement.

Prototype

Element addElement(String name);

Source Link

Document

Adds a new Element node with the given name to this branch and returns a reference to the new node.

Usage

From source file:cc.warlock.core.client.settings.internal.TriggerConfigurationProvider.java

License:Open Source License

@Override
protected void saveTo(List<Element> elements) {
    Element triggersElement = DocumentHelper.createElement("triggers");

    for (ITrigger trigger : triggers) {
        Element tElement = triggersElement.addElement("trigger");
        fillElement(tElement, trigger);/*from   w w  w .  j av a 2  s. com*/

        elements.add(tElement);
    }

    elements.add(triggersElement);
}

From source file:cc.warlock.core.client.settings.internal.VariableConfigurationProvider.java

License:Open Source License

@Override
protected void saveTo(List<Element> elements) {
    Element varsElement = DocumentHelper.createElement("variables");

    for (Map.Entry<String, IVariable> entry : variables.entrySet()) {
        Element element = varsElement.addElement("variable");
        element.addAttribute("id", entry.getKey());
        element.addText(entry.getValue().getValue());

    }/*w ww .j av  a2 s.  com*/
    elements.add(varsElement);
}

From source file:cc.warlock.core.client.settings.internal.WindowSettingsConfigurationProvider.java

License:Open Source License

@Override
protected void saveTo(List<Element> elements) {
    Element windows = DocumentHelper.createElement("windows");

    for (IWindowSettings settings : windowSettings) {
        Element window = windows.addElement("window");
        window.addAttribute("id", settings.getId());
        window.addAttribute("background", colorString(settings.getBackgroundColor()));
        window.addAttribute("foreground", colorString(settings.getForegroundColor()));

        window.add(fontToElement(settings.getFont(), "font"));
        window.add(fontToElement(settings.getColumnFont(), "columnFont"));
    }//from  w w w . j a va2  s  .  c  o  m

    elements.add(windows);
}

From source file:cc.warlock.core.client.settings.macro.internal.MacroConfigurationProvider.java

License:Open Source License

@Override
protected void saveTo(List<Element> elements) {
    Element macrosElement = DocumentHelper.createElement("macros");
    for (IMacro macro : macros) {
        if (macro.getHandlers().size() == 1) {

            IMacroHandler first = macro.getHandlers().iterator().next();
            if (first instanceof CommandMacroHandler) {
                CommandMacroHandler handler = (CommandMacroHandler) first;

                Element mElement = macrosElement.addElement("macro");
                mElement.addAttribute("command", handler.getCommand());
                mElement.addAttribute("keycode", macro.getKeyCode() + "");
                mElement.addAttribute("modifiers", macro.getModifiers() + "");
            }//from  w ww. j  a v  a2 s .  c  o m
        }
    }

    elements.add(macrosElement);
}

From source file:cc.warlock.core.stormfront.ProfileConfiguration.java

License:Open Source License

public List<Element> getTopLevelElements() {
    ArrayList<Element> elements = new ArrayList<Element>();

    for (Account account : accounts.values()) {
        Element aElement = DocumentHelper.createElement("account");
        aElement.addAttribute("name", account.getAccountName());
        aElement.addAttribute("password", Account.encryptPassword(account.getPassword()));

        for (Profile profile : account.getProfiles()) {
            Element pElement = aElement.addElement("profile");
            pElement.addAttribute("id", profile.getId());
            pElement.addAttribute("name", profile.getName());
            pElement.addAttribute("gameCode", profile.getGameCode());
            pElement.addAttribute("gameName", profile.getGameName());
        }/*from   w w  w. j  a va  2 s. c  o  m*/
        elements.add(aElement);
    }
    return elements;
}

From source file:ch.epfl.codimsd.qep.QEPFactory.java

License:Open Source License

/**
 * Add an operator template to the QEP Document.
 * // w  ww.ja  v a2s. c  om
 * @param document dom4j document.
 * @param opNode opNode structure of the operator to build.
 * @param opID identifier of the operator.
 */
private static void createOperator(Document document, OpNode opNode, int opID) {

    Element root = document.getRootElement();
    Iterator ittRoot = root.elementIterator();
    Element qepElement = (Element) ittRoot.next();

    // create new operator xml template (attributes, name)
    Element newOp = qepElement.addElement("op:Operator").addAttribute("id", opID + "").addAttribute("prod",
            buildProducers(opNode));

    if (opNode.getType() != null)
        newOp.addAttribute("type", opNode.getType());

    Element newNameOp = newOp.addElement("Name");
    newNameOp.addText(opNode.getOpName());

    // create operator xml parameters
    if (opNode.getParams() != null) {
        if (opNode.getParams().length != 0) {
            Element newParameterList = newOp.addElement("ParameterList");
            for (int i = 0; i < opNode.getParams().length; i++) {
                Element newParam = newParameterList.addElement("Param");
                newParam.addText(opNode.getParams()[i]);
            }
        }
    }
}

From source file:ch.epfl.codimsd.qep.QEPFactory.java

License:Open Source License

/**
 * Creates the xml structure where we embed the operators.
 * //from   w  w w. j a  v  a2 s . c o  m
 * @param type type of the xml template.
 * @return dom4j Document.
 */
private static Document createTemplate(String type) {

    // Create empty dom4j document.
    Document document = DocumentHelper.createDocument();

    // Add "QEPTemlate", "op", "qep",  tags.
    Element root = document.addElement("QEPTemplate", "http://giga03.lncc.br/DIP/WP4/CoDIMS-D");
    root.addNamespace("op", "http://giga03.lncc.br/DIP/WP4/CoDIMS-D/Operator");
    root.addNamespace("qep", "http://giga03.lncc.br/DIP/WP4/CoDIMS-D/QEP");
    root.addElement("qep:QEP").addAttribute("type", type);

    return document;
}

From source file:ch.javasoft.xml.config.XmlConfig.java

License:BSD License

/**
 * Returns a copy of the underlying xml document, including main arguments 
 * if any have been specified. From the returned document, 
 *//*ww  w  .j  a v  a  2 s.c o m*/
public Document toXmlDocument() {
    final Document doc = (Document) mDocument.clone();
    doc.getRootElement().elements(XmlElement.application.getXmlName()).clear();
    final Element app = doc.getRootElement().addElement(XmlElement.application.getXmlName());
    app.addAttribute(XmlAttribute.name.getXmlName(), mAppName);
    for (String arg : mArgs) {
        final Element elArg = app.addElement(XmlElement.arg.getXmlName());
        elArg.addAttribute(XmlAttribute.value.getXmlName(), arg);
    }
    return doc;
}

From source file:cinnamon.exceptions.CinnamonException.java

License:Open Source License

public void addToElement(Element root, ILocalizer localizer) {
    String localizedMessage = getMessage();
    if (localizer != null && localizer.getInitialized()) {
        localizedMessage = localizer.localize(getMessage());
        if (localizedMessage == null) {
            localizedMessage = "null (" + getStackTrace()[0] + ")";
        }//from  ww w. ja va  2s  . co m
    }
    root.addElement("message").addText(localizedMessage);
    root.addElement("code").addText(getMessage() == null ? "null" : getMessage());
    Element paramList = root.addElement("parameters");
    if (params.length > 0) {
        for (String p : params) {
            if (p == null) {
                p = "null";
            }
            paramList.addElement("param").addText(p);
        }
    }
}

From source file:cl.cnsv.wsreporteproyeccion.service.ReporteProyeccionServiceImpl.java

@Override
public String obtenerXmlProyeccion(String numeroPoliza) {

    //<editor-fold defaultstate="collapsed" desc="Inicio">        
    String xml;//from www. j  a v  a2 s.c  o m
    XStream xStream = new XStream();
    Document document = DocumentFactory.getInstance().createDocument();
    String codigo;
    String mensaje;
    Element elemProyeccion = document.addElement("proyeccion");
    Element elemAsegurable;
    Element elemUsoInterno;
    Element elemPrimaTotal;
    Element elemParametros;
    Element elemEdadAhorro;
    Element elemEdad;
    Element elemCoberturas;
    Element elemCobertura;
    //</editor-fold>

    //<editor-fold defaultstate="collapsed" desc="Obtener datos basicos de proyeccion">
    //Nodo xml proyeccion
    elemProyeccion.addElement("numPropuesta").addText(numeroPoliza);

    ClienteServicioCotizadorVida clienteCotizadorVida;
    try {
        clienteCotizadorVida = new ClienteServicioCotizadorVida();
    } catch (Exception e) {
        codigo = Propiedades.getFuncProperty("ws.cotizadorvida.error.login.codigo");
        mensaje = Propiedades.getFuncProperty("ws.cotizadorvida.error.login.mensaje");
        LOGGER.error(mensaje + ": " + e.getMessage(), e);
        elemProyeccion.addElement("codigo").addText(codigo);
        elemProyeccion.addElement("mensaje").addText(mensaje);
        xml = document.asXML();
        return xml;
    }
    InputProyeccionesVO inputProyecciones = new InputProyeccionesVO();
    inputProyecciones.setNumeroPoliza(numeroPoliza);
    String xmlInputProyecciones = xStream.toXML(inputProyecciones);
    LOGGER.info("Llamado a getProyeccionesVO - cotizadorVida: \n" + xmlInputProyecciones);
    OutputProyeccionesVO outputProyecciones;
    try {
        outputProyecciones = clienteCotizadorVida.getProyeccionesVO(inputProyecciones);
        String xmlOutputProyecciones = xStream.toXML(outputProyecciones);
        LOGGER.info("Respuesta de getProyeccionesVO - cotizadorVida: \n" + xmlOutputProyecciones);
        Integer codigoOutputProyecciones = outputProyecciones.getCodigo();
        if (!Integer.valueOf(Propiedades.getFuncProperty("ws.cotizadorvida.codigo.ok"))
                .equals(codigoOutputProyecciones)) {
            codigo = Propiedades.getFuncProperty("ws.cotizadorvida.error.proyecciones.codigo");
            mensaje = Propiedades.getFuncProperty("ws.cotizadorvida.error.proyecciones.mensaje");
            LOGGER.info(mensaje + ": " + outputProyecciones.getMensaje());
            elemProyeccion.addElement("codigo").addText(codigo);
            elemProyeccion.addElement("mensaje").addText(mensaje);
            xml = document.asXML();
            return xml;
        }
        AntecedentesVO antecedentes = outputProyecciones.getAntecedentes();
        String nombres = antecedentes.getNombre();
        if (nombres == null) {
            nombres = "";
        }
        String tipoFumador = antecedentes.getTipoFumador();
        if (tipoFumador == null) {
            tipoFumador = "";
        }
        String fechaNacimiento = antecedentes.getFechaNacimiento();
        if (fechaNacimiento == null) {
            fechaNacimiento = "";
        }
        int edadActuarial = antecedentes.getEdadActTitular();
        String sexo = antecedentes.getSexo();
        if (sexo == null) {
            sexo = "";
        }
        int edadConyuge = antecedentes.getEdadActConyuge();
        String edadHijos = antecedentes.getEdadActHijos();
        if (edadHijos == null) {
            edadHijos = "";
        }
        int edadPadres = antecedentes.getEdadActPadres();
        EleccionesVO elecciones = outputProyecciones.getElecciones();
        String plan = elecciones.getPlan();
        if (plan == null) {
            plan = "";
        }
        String formaPago = elecciones.getFormaPago();
        if (formaPago == null) {
            formaPago = "";
        }
        String portafolioSeleccionado = elecciones.getPortafolioSeleccionado();
        if (portafolioSeleccionado == null) {
            portafolioSeleccionado = "";
        }
        double primaReferencialAnual = elecciones.getPrimaReferencialAnual();
        double valorUf = elecciones.getValorUf();

        //Nodo xml asegurable
        elemAsegurable = elemProyeccion.addElement("asegurable");
        elemAsegurable.addElement("nombres").addText(nombres);
        elemAsegurable.addElement("apellidosPaterno").addText("");
        elemAsegurable.addElement("apellidosMaterno").addText("");
        elemAsegurable.addElement("tipoFumador").addText(tipoFumador);
        elemAsegurable.addElement("fechaNacimiento").addText(fechaNacimiento);
        elemAsegurable.addElement("edadActuarial").addText(Integer.toString(edadActuarial));
        elemAsegurable.addElement("sexo").addText(sexo);
        elemAsegurable.addElement("edadconyugue").addText(Integer.toString(edadConyuge));
        elemAsegurable.addElement("edadhijos").addText(edadHijos);
        elemAsegurable.addElement("edadpadres").addText(Integer.toString(edadPadres));

        //Nodo xml usoInterno
        elemUsoInterno = elemProyeccion.addElement("usoInterno");
        elemUsoInterno.addElement("plan").addText(plan);
        elemUsoInterno.addElement("codPlan").addText(plan);
        elemUsoInterno.addElement("formaPago").addText(formaPago);
        elemUsoInterno.addElement("portafolioseleccionado").addText(portafolioSeleccionado);
        elemUsoInterno.addElement("primareferencial").addText(Double.toString(primaReferencialAnual));

        //Nodo xml primaTotal
        elemPrimaTotal = elemProyeccion.addElement("primaTotal");
        elemPrimaTotal.addElement("valorMoneda").addText(Double.toString(valorUf));

        //Nodo xml coberturas
        elemCoberturas = elemProyeccion.addElement("coberturas");
        OutputProyeccionesVO.Coberturas coberturas = outputProyecciones.getCoberturas();
        List<CoberturaVO> coberturaList = coberturas.getCobertura();
        for (CoberturaVO coberturaVO : coberturaList) {
            elemCobertura = elemCoberturas.addElement("cobertura");
            String nombreCobertura = coberturaVO.getNombre();
            if (nombreCobertura == null) {
                nombreCobertura = "";
            }
            elemCobertura.addElement("nombreCobertura").addText(nombreCobertura);
            Double capital = coberturaVO.getCapital();
            if (capital == null) {
                elemCobertura.addElement("capital").addText("");
            } else {
                elemCobertura.addElement("capital").addText(Double.toString(capital));
            }
            Integer npersonas = coberturaVO.getNpersonas();
            if (npersonas == null) {
                elemCobertura.addElement("nasegurados").addText("");
            } else {
                elemCobertura.addElement("nasegurados").addText(Integer.toString(npersonas));
            }
            Double primaReferencial = coberturaVO.getPrimaReferencialAnual();
            if (primaReferencial == null) {
                elemCobertura.addElement("ntotalprima").addText("");
            } else {
                elemCobertura.addElement("ntotalprima").addText(Double.toString(primaReferencial));
            }
        }
    } catch (Exception e) {
        codigo = Propiedades.getFuncProperty("ws.cotizadorvida.error.proyecciones.codigo");
        mensaje = Propiedades.getFuncProperty("ws.cotizadorvida.error.proyecciones.mensaje");
        LOGGER.error(mensaje + ": " + e.getMessage(), e);
        elemProyeccion.addElement("codigo").addText(codigo);
        elemProyeccion.addElement("mensaje").addText(mensaje);
        xml = document.asXML();
        return xml;
    }
    //</editor-fold>

    //<editor-fold defaultstate="collapsed" desc="Obtener tipo de proyeccion y codigo del producto">
    LOGGER.info("Llamado a getTipoProyeccionVO - cotizadorVida: \n" + xmlInputProyecciones);
    OutputTipoProyeccionVO outputObtenerTipoProyeccion;
    try {
        outputObtenerTipoProyeccion = clienteCotizadorVida.getTipoProyeccionVO(inputProyecciones);
        String xmlOutputTipoProyeccion = xStream.toXML(outputObtenerTipoProyeccion);
        LOGGER.info("Respuesta de getTipoProyeccionVO - cotizadorVida: \n" + xmlOutputTipoProyeccion);
        int codigoObtenerTipoProyeccion = outputObtenerTipoProyeccion.getCodigo();
        if (!Integer.valueOf(Propiedades.getFuncProperty("ws.cotizadorvida.codigo.ok"))
                .equals(codigoObtenerTipoProyeccion)) {
            codigo = Propiedades.getFuncProperty("ws.cotizadorvida.error.tipoproyeccion.codigo");
            mensaje = Propiedades.getFuncProperty("ws.cotizadorvida.error.tipoproyeccion.mensaje");
            LOGGER.info(mensaje + ": " + outputObtenerTipoProyeccion.getMensaje());
            elemProyeccion.addElement("codigo").addText(codigo);
            elemProyeccion.addElement("mensaje").addText(mensaje);
            xml = document.asXML();
            return xml;
        }

    } catch (Exception e) {
        codigo = Propiedades.getFuncProperty("ws.cotizadorvida.error.tipoproyeccion.codigo");
        mensaje = Propiedades.getFuncProperty("ws.cotizadorvida.error.tipoproyeccion.mensaje");
        LOGGER.error(mensaje + ": " + e.getMessage(), e);
        elemProyeccion.addElement("codigo").addText(codigo);
        elemProyeccion.addElement("mensaje").addText(mensaje);
        xml = document.asXML();
        return xml;
    }
    //</editor-fold>

    //<editor-fold defaultstate="collapsed" desc="Segun tipo de proyeccion y codigo de producto buscar informacion para proyeccion">        
    int nproduct = outputObtenerTipoProyeccion.getNproduct();
    if (Integer.valueOf(nproduct).equals(Integer.valueOf(Propiedades.getFuncProperty("codigo.va100")))) {
        OutputWSProyeccionVidAhorro100 outputWSProyeccionVidAhorro100;
        try {
            LOGGER.info("Llamado a getProyeccionesVidAhorro100VO - cotizadorVida: \n" + xmlInputProyecciones);
            outputWSProyeccionVidAhorro100 = clienteCotizadorVida
                    .getProyeccionesVidAhorro100VO(inputProyecciones);
            String xmlOutputWSProyeccionVidAhorro100 = xStream.toXML(outputWSProyeccionVidAhorro100);
            LOGGER.info("Respuesta de getProyeccionesVidAhorro100VO - cotizadorVida: \n"
                    + xmlOutputWSProyeccionVidAhorro100);
            Integer codigoOutputProyeccionVa100 = outputWSProyeccionVidAhorro100.getCodigo();
            if (!Integer.valueOf(Propiedades.getFuncProperty("ws.cotizadorvida.codigo.ok"))
                    .equals(codigoOutputProyeccionVa100)) {
                codigo = Propiedades.getFuncProperty("ws.cotizadorvida.error.proyeccionva100.codigo");
                mensaje = Propiedades.getFuncProperty("ws.cotizadorvida.error.proyeccionva100.mensaje");
                LOGGER.info(mensaje + ": " + outputWSProyeccionVidAhorro100.getMensaje());
                elemProyeccion.addElement("codigo").addText(codigo);
                elemProyeccion.addElement("mensaje").addText(mensaje);
                xml = document.asXML();
                return xml;
            }
        } catch (Exception e) {
            codigo = Propiedades.getFuncProperty("ws.cotizadorvida.error.proyeccionva100.codigo");
            mensaje = Propiedades.getFuncProperty("ws.cotizadorvida.error.proyeccionva100.mensaje");
            LOGGER.error(mensaje + ": " + e.getMessage(), e);
            elemProyeccion.addElement("codigo").addText(codigo);
            elemProyeccion.addElement("mensaje").addText(mensaje);
            xml = document.asXML();
            return xml;
        }

        //Nodo xml usoInterno
        DatosSimulacionVidAhorro100VO datosSimulacionVidAhorro100VO = outputWSProyeccionVidAhorro100
                .getDatosSimulacionVidAhorro100VO();
        Double supuestoRentabilidad = datosSimulacionVidAhorro100VO.getSupuestoRentabilidad();
        if (supuestoRentabilidad == null) {
            elemUsoInterno.addElement("supuestorentabilidad").addText("");
        } else {
            elemUsoInterno.addElement("supuestorentabilidad").addText(Double.toString(supuestoRentabilidad));
        }
        elemUsoInterno.addElement("rentaImponible").addText("");

        //Nodo xml primaTotal
        Double primaProyectadaSFP = datosSimulacionVidAhorro100VO.getPrimaProyectadaSFP();
        if (primaProyectadaSFP == null) {
            elemPrimaTotal.addElement("primaProyectada").addText("");
        } else {
            elemPrimaTotal.addElement("primaProyectada").addText(Double.toString(primaProyectadaSFP));
        }

        //Nodo xml parametros
        elemParametros = elemProyeccion.addElement("parametros");
        elemParametros.addElement("recargosimulador").addText("");

        //Obtener el condicionado particular (POL-CAD)
        InputCondicionadoVO inputCondicionadoVO = new InputCondicionadoVO();
        inputCondicionadoVO.setBranch(Propiedades.getFuncProperty("codigo.ramo"));
        inputCondicionadoVO.setCover(Propiedades.getFuncProperty("codigo.va100.cobertura.fallecimiento"));
        inputCondicionadoVO.setModulec(Propiedades.getFuncProperty("codigo.modulo"));
        inputCondicionadoVO.setProduct(Propiedades.getFuncProperty("codigo.va100"));
        String xmlInputCondicionado = xStream.toXML(inputCondicionadoVO);
        LOGGER.info("Llamado a getNombreCondicionado - cotizadorVida: \n" + xmlInputCondicionado);
        OutputCondicionadoVO outputCondicionadoVO;
        try {
            outputCondicionadoVO = clienteCotizadorVida.getNombreCondicionado(inputCondicionadoVO);
            String xmlOutputCondicionadoVO = xStream.toXML(outputCondicionadoVO);
            LOGGER.info("Respuesta getNombreCondicionado - cotizadorVida: \n" + xmlOutputCondicionadoVO);
            Integer codigoOutputCondicionado = outputCondicionadoVO.getCodigo();
            if (!Integer.valueOf(Propiedades.getFuncProperty("ws.cotizadorvida.codigo.ok"))
                    .equals(codigoOutputCondicionado)) {
                codigo = Propiedades.getFuncProperty("ws.cotizadorvida.error.condicionado.codigo");
                mensaje = Propiedades.getFuncProperty("ws.cotizadorvida.error.condicionado.mensaje");
                LOGGER.info(mensaje + ": " + outputCondicionadoVO.getMensaje());
                elemProyeccion.addElement("codigo").addText(codigo);
                elemProyeccion.addElement("mensaje").addText(mensaje);
                xml = document.asXML();
                return xml;
            }
        } catch (Exception e) {
            codigo = Propiedades.getFuncProperty("ws.cotizadorvida.error.condicionado.codigo");
            mensaje = Propiedades.getFuncProperty("ws.cotizadorvida.error.condicionado.mensaje");
            LOGGER.error(mensaje + ": " + e.getMessage(), e);
            elemProyeccion.addElement("codigo").addText(codigo);
            elemProyeccion.addElement("mensaje").addText(mensaje);
            xml = document.asXML();
            return xml;
        }
        List<CondicionadoVO> cursorCondicionado = outputCondicionadoVO.getCursor();
        CondicionadoVO condicionado = cursorCondicionado.get(0);
        String scondsvs = condicionado.getScondsvs();
        if (scondsvs == null) {
            scondsvs = "";
        }
        elemUsoInterno.addElement("codigoSvsPol").addText(scondsvs);

        //Construye entrada para el servicio de proyeccion
        TransaccionVidAhorro100 inputProyeccionVa100;
        try {
            inputProyeccionVa100 = ProyeccionBeanFactory.buildVa100(outputWSProyeccionVidAhorro100);
        } catch (Exception e) {
            codigo = Propiedades.getFuncProperty("error.beanfactory.proyeccionva100.codigo");
            mensaje = Propiedades.getFuncProperty("error.beanfactory.proyeccionva100.mensaje");
            LOGGER.error(mensaje + ": " + e.getMessage(), e);
            elemProyeccion.addElement("codigo").addText(codigo);
            elemProyeccion.addElement("mensaje").addText(mensaje);
            xml = document.asXML();
            return xml;
        }

        //Consulta al servicio de proyeccion
        ClienteServiciosProyeccion clienteProyeccion;
        try {
            clienteProyeccion = new ClienteServiciosProyeccion();
        } catch (Exception e) {
            codigo = Propiedades.getFuncProperty("ws.proyeccion.error.login.codigo");
            mensaje = Propiedades.getFuncProperty("ws.proyeccion.error.login.mensaje");
            LOGGER.error(mensaje + ": " + e.getMessage(), e);
            elemProyeccion.addElement("codigo").addText(codigo);
            elemProyeccion.addElement("mensaje").addText(mensaje);
            xml = document.asXML();
            return xml;
        }
        String xmlInputProyeccionVa100 = xStream.toXML(inputProyeccionVa100);
        LOGGER.info("Llamado a getProyeccionVidAhorro100 - proyeccion: \n" + xmlInputProyeccionVa100);
        RespuestaVidAhorro100 outputProyeccionVidAhorro100;
        try {
            outputProyeccionVidAhorro100 = clienteProyeccion.getProyeccionVidAhorro100(inputProyeccionVa100);
            String xmlOutputProyeccionVidAhorro100 = xStream.toXML(outputProyeccionVidAhorro100);
            LOGGER.info("Respuesta de getProyeccionVidAhorro100 - proyeccion: \n"
                    + xmlOutputProyeccionVidAhorro100);
            String codigoProyeccionVidAhorro100 = outputProyeccionVidAhorro100.getCodigo();
            if (!Propiedades.getFuncProperty("ws.proyeccion.codigo.ok").equals(codigoProyeccionVidAhorro100)) {
                codigo = Propiedades.getFuncProperty("ws.proyeccion.error.proyeccionva100.codigo");
                mensaje = Propiedades.getFuncProperty("ws.proyeccion.error.proyeccionva100.mensaje");
                LOGGER.info(mensaje + ": " + outputProyeccionVidAhorro100.getMensaje());
                elemProyeccion.addElement("codigo").addText(codigo);
                elemProyeccion.addElement("mensaje").addText(mensaje);
                xml = document.asXML();
                return xml;
            }
        } catch (Exception e) {
            codigo = Propiedades.getFuncProperty("ws.proyeccion.error.proyeccionva100.codigo");
            mensaje = Propiedades.getFuncProperty("ws.proyeccion.error.proyeccionva100.mensaje");
            LOGGER.error(mensaje + ": " + e.getMessage(), e);
            elemProyeccion.addElement("codigo").addText(codigo);
            elemProyeccion.addElement("mensaje").addText(mensaje);
            xml = document.asXML();
            return xml;
        }

        //Nodo edadAhorro
        elemEdadAhorro = elemProyeccion.addElement("edadahorro");

        //Ciclo con datos de proyeccion
        List<ResultadoProyeccionVidAhorro100> resultadosProyeccion = outputProyeccionVidAhorro100
                .getResultadosProyeccion();
        for (ResultadoProyeccionVidAhorro100 resultadoProyeccionVidAhorro100 : resultadosProyeccion) {
            elemEdad = elemEdadAhorro.addElement("edad");
            Integer finalAnnio = resultadoProyeccionVidAhorro100.getFinalAnnio();
            if (finalAnnio == null) {
                elemEdad.addElement("finalano").addText("");
            } else {
                elemEdad.addElement("finalano").addText(Integer.toString(finalAnnio));
            }
            Integer edadActuarial = resultadoProyeccionVidAhorro100.getEdadActuarial();
            if (edadActuarial == null) {
                elemEdad.addElement("edadactuarial").addText("");
            } else {
                elemEdad.addElement("edadactuarial").addText(Integer.toString(edadActuarial));
            }
            Double primaAcumulada = resultadoProyeccionVidAhorro100.getPrimaAcumulada();
            if (primaAcumulada == null) {
                elemEdad.addElement("primaacumulada").addText("");
            } else {
                elemEdad.addElement("primaacumulada").addText(Double.toString(primaAcumulada));
            }
            Double valorPoliza = resultadoProyeccionVidAhorro100.getValorPoliza();
            if (valorPoliza == null) {
                elemEdad.addElement("valorpoliza").addText("");
            } else {
                elemEdad.addElement("valorpoliza").addText(Double.toString(valorPoliza));
            }
            Double indemnizacionFallecimiento = resultadoProyeccionVidAhorro100.getIndemnizacionFallecimiento();
            if (indemnizacionFallecimiento == null) {
                elemEdad.addElement("indemnizacionfallecimiento").addText("");
            } else {
                elemEdad.addElement("indemnizacionfallecimiento")
                        .addText(Double.toString(indemnizacionFallecimiento));
            }
            elemEdad.addElement("relleno").addText("I");
            elemEdad.addElement("valorpoliza57bis").addText("");
        }
    } //end codigo.va100
    else if (Integer.valueOf(nproduct).equals(Integer.valueOf(Propiedades.getFuncProperty("codigo.57bis")))) {
        OutputWSProyeccionVidAhorro57Bis outputProyeccionesVidAhorro57BisVO;
        try {
            LOGGER.info("Llamado a getProyeccionesVidAhorro57BisVO - cotizadorVida: \n" + xmlInputProyecciones);
            outputProyeccionesVidAhorro57BisVO = clienteCotizadorVida
                    .getProyeccionesVidAhorro57BisVO(inputProyecciones);
            String xmlOutputProyeccionesVidAhorro57BisVO = xStream.toXML(outputProyeccionesVidAhorro57BisVO);
            LOGGER.info("Respuesta de getProyeccionesVidAhorro57BisVO - cotizadorVida: \n"
                    + xmlOutputProyeccionesVidAhorro57BisVO);
            Integer codigoOutputProyeccionesVidAhorro57BisVO = outputProyeccionesVidAhorro57BisVO.getCodigo();
            if (!Integer.valueOf(Propiedades.getFuncProperty("ws.cotizadorvida.codigo.ok"))
                    .equals(codigoOutputProyeccionesVidAhorro57BisVO)) {
                codigo = Propiedades.getFuncProperty("ws.cotizadorvida.error.proyeccion57bis.codigo");
                mensaje = Propiedades.getFuncProperty("ws.cotizadorvida.error.proyeccion57bis.mensaje");
                LOGGER.info(mensaje + ": " + outputProyeccionesVidAhorro57BisVO.getMensaje());
                elemProyeccion.addElement("codigo").addText(codigo);
                elemProyeccion.addElement("mensaje").addText(mensaje);
                xml = document.asXML();
                return xml;
            }
        } catch (Exception e) {
            codigo = Propiedades.getFuncProperty("ws.cotizadorvida.error.proyeccion57bis.codigo");
            mensaje = Propiedades.getFuncProperty("ws.cotizadorvida.error.proyeccion57bis.mensaje");
            LOGGER.error(mensaje + ": " + e.getMessage(), e);
            elemProyeccion.addElement("codigo").addText(codigo);
            elemProyeccion.addElement("mensaje").addText(mensaje);
            xml = document.asXML();
            return xml;
        }

        //Nodo xml usoInterno
        DatosSimulacionVidAhorro57BisVO datosSimulacionVidAhorro57BisVO = outputProyeccionesVidAhorro57BisVO
                .getDatosSimulacionVidAhorro57BisVO();
        Double supuestoRentabilidad = datosSimulacionVidAhorro57BisVO.getSupuestoRentabilidad();
        if (supuestoRentabilidad == null) {
            elemUsoInterno.addElement("supuestorentabilidad").addText("");
        } else {
            elemUsoInterno.addElement("supuestorentabilidad").addText(Double.toString(supuestoRentabilidad));
        }
        elemUsoInterno.addElement("rentaImponible").addText("");

        //Nodo xml primaTotal
        Double primaProyectadaSFP = datosSimulacionVidAhorro57BisVO.getPrimaProyectadaSFP();
        if (primaProyectadaSFP == null) {
            elemPrimaTotal.addElement("primaProyectada").addText("");
        } else {
            elemPrimaTotal.addElement("primaProyectada").addText(Double.toString(primaProyectadaSFP));
        }

        //Nodo xml parametros
        elemParametros = elemProyeccion.addElement("parametros");
        elemParametros.addElement("recargosimulador").addText("");

        //Obtener el condicionado particular (POL-CAD)
        InputCondicionadoVO inputCondicionadoVO = new InputCondicionadoVO();
        inputCondicionadoVO.setBranch(Propiedades.getFuncProperty("codigo.ramo"));
        inputCondicionadoVO.setCover(Propiedades.getFuncProperty("codigo.57bis.cobertura.fallecimiento"));
        inputCondicionadoVO.setModulec(Propiedades.getFuncProperty("codigo.modulo"));
        inputCondicionadoVO.setProduct(Propiedades.getFuncProperty("codigo.57bis"));
        String xmlInputCondicionado = xStream.toXML(inputCondicionadoVO);
        LOGGER.info("Llamado a getNombreCondicionado - cotizadorVida: \n" + xmlInputCondicionado);
        OutputCondicionadoVO outputCondicionadoVO;
        try {
            outputCondicionadoVO = clienteCotizadorVida.getNombreCondicionado(inputCondicionadoVO);
            String xmlOutputCondicionadoVO = xStream.toXML(outputCondicionadoVO);
            LOGGER.info("Respuesta getNombreCondicionado - cotizadorVida: \n" + xmlOutputCondicionadoVO);
            Integer codigoOutputCondicionado = outputCondicionadoVO.getCodigo();
            if (!Integer.valueOf(Propiedades.getFuncProperty("ws.cotizadorvida.codigo.ok"))
                    .equals(codigoOutputCondicionado)) {
                codigo = Propiedades.getFuncProperty("ws.cotizadorvida.error.condicionado.codigo");
                mensaje = Propiedades.getFuncProperty("ws.cotizadorvida.error.condicionado.mensaje");
                LOGGER.info(mensaje + ": " + outputCondicionadoVO.getMensaje());
                elemProyeccion.addElement("codigo").addText(codigo);
                elemProyeccion.addElement("mensaje").addText(mensaje);
                xml = document.asXML();
                return xml;
            }
        } catch (Exception e) {
            codigo = Propiedades.getFuncProperty("ws.cotizadorvida.error.condicionado.codigo");
            mensaje = Propiedades.getFuncProperty("ws.cotizadorvida.error.condicionado.mensaje");
            LOGGER.error(mensaje + ": " + e.getMessage(), e);
            elemProyeccion.addElement("codigo").addText(codigo);
            elemProyeccion.addElement("mensaje").addText(mensaje);
            xml = document.asXML();
            return xml;
        }
        List<CondicionadoVO> cursorCondicionado = outputCondicionadoVO.getCursor();
        CondicionadoVO condicionado = cursorCondicionado.get(0);
        String scondsvs = condicionado.getScondsvs();
        if (scondsvs == null) {
            scondsvs = "";
        }
        elemUsoInterno.addElement("codigoSvsPol").addText(scondsvs);

        //Construye entrada para el servicio de proyeccion
        TransaccionVidAhorro57Bis inputProyeccion87Bis;
        try {
            inputProyeccion87Bis = ProyeccionBeanFactory.build57Bis(outputProyeccionesVidAhorro57BisVO);
        } catch (Exception e) {
            codigo = Propiedades.getFuncProperty("error.beanfactory.proyeccionva57bis.codigo");
            mensaje = Propiedades.getFuncProperty("error.beanfactory.proyeccionv57bis.mensaje");
            LOGGER.error(mensaje + ": " + e.getMessage(), e);
            elemProyeccion.addElement("codigo").addText(codigo);
            elemProyeccion.addElement("mensaje").addText(mensaje);
            xml = document.asXML();
            return xml;
        }

        //Consulta al servicio de proyeccion
        ClienteServiciosProyeccion clienteProyeccion;
        try {
            clienteProyeccion = new ClienteServiciosProyeccion();
        } catch (Exception e) {
            codigo = Propiedades.getFuncProperty("ws.proyeccion.error.login.codigo");
            mensaje = Propiedades.getFuncProperty("ws.proyeccion.error.login.mensaje");
            LOGGER.error(mensaje + ": " + e.getMessage(), e);
            elemProyeccion.addElement("codigo").addText(codigo);
            elemProyeccion.addElement("mensaje").addText(mensaje);
            xml = document.asXML();
            return xml;
        }
        String xmlInputProyeccion57Bis = xStream.toXML(inputProyeccion87Bis);
        LOGGER.info("Llamado a getProyeccionVidAhorro57Bis - proyeccion: \n" + xmlInputProyeccion57Bis);
        RespuestaVidAhorro57Bis outputProyeccion57Bis;
        try {
            outputProyeccion57Bis = clienteProyeccion.getProyeccionVidAhorro57Bis(inputProyeccion87Bis);
            String xmlOutputProyeccion57Bis = xStream.toXML(outputProyeccion57Bis);
            LOGGER.info("Respuesta de getProyeccionVidAhorro57Bis - proyeccion: \n" + xmlOutputProyeccion57Bis);
            String codigoOutputProyeccion57Bis = outputProyeccion57Bis.getCodigo();
            if (!Propiedades.getFuncProperty("ws.proyeccion.codigo.ok").equals(codigoOutputProyeccion57Bis)) {
                codigo = Propiedades.getFuncProperty("ws.proyeccion.error.proyeccion57bis.codigo");
                mensaje = Propiedades.getFuncProperty("ws.proyeccion.error.proyeccion57bis.mensaje");
                LOGGER.info(mensaje + ": " + outputProyeccion57Bis.getMensaje());
                elemProyeccion.addElement("codigo").addText(codigo);
                elemProyeccion.addElement("mensaje").addText(mensaje);
                xml = document.asXML();
                return xml;
            }
        } catch (Exception e) {
            codigo = Propiedades.getFuncProperty("ws.proyeccion.error.proyeccion57bis.codigo");
            mensaje = Propiedades.getFuncProperty("ws.proyeccion.error.proyeccion57bis.mensaje");
            LOGGER.error(mensaje + ": " + e.getMessage(), e);
            elemProyeccion.addElement("codigo").addText(codigo);
            elemProyeccion.addElement("mensaje").addText(mensaje);
            xml = document.asXML();
            return xml;
        }

        //Nodo edadAhorro
        elemEdadAhorro = elemProyeccion.addElement("edadahorro");

        //Ciclo con datos de proyeccion
        List<ResultadoProyeccionVidAhorro57Bis> resultadosProyeccion = outputProyeccion57Bis
                .getResultadosProyeccion();
        for (ResultadoProyeccionVidAhorro57Bis resultadoProyeccion57Bis : resultadosProyeccion) {
            elemEdad = elemEdadAhorro.addElement("edad");
            Integer finalAnnio = resultadoProyeccion57Bis.getFinalAnnio();
            if (finalAnnio == null) {
                elemEdad.addElement("finalano").addText("");
            } else {
                elemEdad.addElement("finalano").addText(Integer.toString(finalAnnio));
            }
            Integer edadActuarial = resultadoProyeccion57Bis.getEdadActuarial();
            if (edadActuarial == null) {
                elemEdad.addElement("edadactuarial").addText("");
            } else {
                elemEdad.addElement("edadactuarial").addText(Integer.toString(edadActuarial));
            }
            Double primaAcumulada = resultadoProyeccion57Bis.getPrimaPagadaAcumulada();
            if (primaAcumulada == null) {
                elemEdad.addElement("primaacumulada").addText("");
            } else {
                elemEdad.addElement("primaacumulada").addText(Double.toString(primaAcumulada));
            }
            Double valorPoliza = resultadoProyeccion57Bis.getValorPoliza();
            if (valorPoliza == null) {
                elemEdad.addElement("valorpoliza").addText("");
                elemEdad.addElement("valorpoliza57bis").addText("");
            } else {
                elemEdad.addElement("valorpoliza").addText(Double.toString(valorPoliza));
                elemEdad.addElement("valorpoliza57bis").addText(Double.toString(valorPoliza));
            }
            Double indemnizacionFallecimiento = resultadoProyeccion57Bis.getIndemnizacionFallecimiento();
            if (indemnizacionFallecimiento == null) {
                elemEdad.addElement("indemnizacionfallecimiento").addText("");
            } else {
                elemEdad.addElement("indemnizacionfallecimiento")
                        .addText(Double.toString(indemnizacionFallecimiento));
            }
            elemEdad.addElement("relleno").addText("I");
        }

    } //end codigo.57bis
    else if (Integer.valueOf(nproduct).equals(Integer.valueOf(Propiedades.getFuncProperty("codigo.flex")))) {
        OutputWSProyeccionVidAhorroFlex outputProyeccionesVidAhorroFlexVO;
        try {
            LOGGER.info("Llamado a getProyeccionesVidAhorroFlexVO - cotizadorVida: \n" + xmlInputProyecciones);
            outputProyeccionesVidAhorroFlexVO = clienteCotizadorVida
                    .getProyeccionesVidAhorroFlexVO(inputProyecciones);
            String xmlOutputProyeccionesVidAhorroFlexVO = xStream.toXML(outputProyeccionesVidAhorroFlexVO);
            LOGGER.info("Respuesta de getProyeccionesVidAhorroFlexVO - cotizadorVida: \n"
                    + xmlOutputProyeccionesVidAhorroFlexVO);
            Integer codigoOutputProyeccionesVidAhorroFlexVO = outputProyeccionesVidAhorroFlexVO.getCodigo();
            if (!Integer.valueOf(Propiedades.getFuncProperty("ws.cotizadorvida.codigo.ok"))
                    .equals(codigoOutputProyeccionesVidAhorroFlexVO)) {
                codigo = Propiedades.getFuncProperty("ws.cotizadorvida.error.proyeccionflex.codigo");
                mensaje = Propiedades.getFuncProperty("ws.cotizadorvida.error.proyeccionflex.mensaje");
                LOGGER.info(mensaje + ": " + outputProyeccionesVidAhorroFlexVO.getMensaje());
                elemProyeccion.addElement("codigo").addText(codigo);
                elemProyeccion.addElement("mensaje").addText(mensaje);
                xml = document.asXML();
                return xml;
            }
        } catch (Exception e) {
            codigo = Propiedades.getFuncProperty("ws.cotizadorvida.error.proyeccionflex.codigo");
            mensaje = Propiedades.getFuncProperty("ws.cotizadorvida.error.proyeccionflex.mensaje");
            LOGGER.error(mensaje + ": " + e.getMessage(), e);
            elemProyeccion.addElement("codigo").addText(codigo);
            elemProyeccion.addElement("mensaje").addText(mensaje);
            xml = document.asXML();
            return xml;
        }

        //Nodo xml usoInterno
        DatosSimulacionVidAhorroFlexVO datosSimulacionVidAhorroFlexVO = outputProyeccionesVidAhorroFlexVO
                .getDatosSimulacionVidAhorroFlexVO();
        Double supuestoRentabilidad = datosSimulacionVidAhorroFlexVO.getSupuestoRentabilidad();
        if (supuestoRentabilidad == null) {
            elemUsoInterno.addElement("supuestorentabilidad").addText("");
        } else {
            elemUsoInterno.addElement("supuestorentabilidad").addText(Double.toString(supuestoRentabilidad));
        }
        elemUsoInterno.addElement("rentaImponible").addText("");

        //Nodo xml primaTotal
        Double primaProyectadaSFP = datosSimulacionVidAhorroFlexVO.getPrimaProyectadaSFP();
        if (primaProyectadaSFP == null) {
            elemPrimaTotal.addElement("primaProyectada").addText("");
        } else {
            elemPrimaTotal.addElement("primaProyectada").addText(Double.toString(primaProyectadaSFP));
        }

        //Nodo xml parametros
        elemParametros = elemProyeccion.addElement("parametros");
        elemParametros.addElement("recargosimulador").addText("");

        //Obtener el condicionado particular (POL-CAD)
        InputCondicionadoVO inputCondicionadoVO = new InputCondicionadoVO();
        inputCondicionadoVO.setBranch(Propiedades.getFuncProperty("codigo.ramo"));
        inputCondicionadoVO.setCover(Propiedades.getFuncProperty("codigo.flex.cobertura.fallecimiento"));
        inputCondicionadoVO.setModulec(Propiedades.getFuncProperty("codigo.modulo"));
        inputCondicionadoVO.setProduct(Propiedades.getFuncProperty("codigo.flex"));
        String xmlInputCondicionado = xStream.toXML(inputCondicionadoVO);
        LOGGER.info("Llamado a getNombreCondicionado - cotizadorVida: \n" + xmlInputCondicionado);
        OutputCondicionadoVO outputCondicionadoVO;
        try {
            outputCondicionadoVO = clienteCotizadorVida.getNombreCondicionado(inputCondicionadoVO);
            String xmlOutputCondicionadoVO = xStream.toXML(outputCondicionadoVO);
            LOGGER.info("Respuesta getNombreCondicionado - cotizadorVida: \n" + xmlOutputCondicionadoVO);
            Integer codigoOutputCondicionado = outputCondicionadoVO.getCodigo();
            if (!Integer.valueOf(Propiedades.getFuncProperty("ws.cotizadorvida.codigo.ok"))
                    .equals(codigoOutputCondicionado)) {
                codigo = Propiedades.getFuncProperty("ws.cotizadorvida.error.condicionado.codigo");
                mensaje = Propiedades.getFuncProperty("ws.cotizadorvida.error.condicionado.mensaje");
                LOGGER.info(mensaje + ": " + outputCondicionadoVO.getMensaje());
                elemProyeccion.addElement("codigo").addText(codigo);
                elemProyeccion.addElement("mensaje").addText(mensaje);
                xml = document.asXML();
                return xml;
            }
        } catch (Exception e) {
            codigo = Propiedades.getFuncProperty("ws.cotizadorvida.error.condicionado.codigo");
            mensaje = Propiedades.getFuncProperty("ws.cotizadorvida.error.condicionado.mensaje");
            LOGGER.error(mensaje + ": " + e.getMessage(), e);
            elemProyeccion.addElement("codigo").addText(codigo);
            elemProyeccion.addElement("mensaje").addText(mensaje);
            xml = document.asXML();
            return xml;
        }
        List<CondicionadoVO> cursorCondicionado = outputCondicionadoVO.getCursor();
        CondicionadoVO condicionado = cursorCondicionado.get(0);
        String scondsvs = condicionado.getScondsvs();
        if (scondsvs == null) {
            scondsvs = "";
        }
        elemUsoInterno.addElement("codigoSvsPol").addText(scondsvs);

        //Construye entrada para el servicio de proyeccion
        TransaccionVidAhorroFlex inputProyeccionVaFlex;
        try {
            inputProyeccionVaFlex = ProyeccionBeanFactory.buildFlex(outputProyeccionesVidAhorroFlexVO);
        } catch (Exception e) {
            codigo = Propiedades.getFuncProperty("error.beanfactory.proyeccionflex.codigo");
            mensaje = Propiedades.getFuncProperty("error.beanfactory.proyeccionflex.mensaje");
            LOGGER.error(mensaje + ": " + e.getMessage(), e);
            elemProyeccion.addElement("codigo").addText(codigo);
            elemProyeccion.addElement("mensaje").addText(mensaje);
            xml = document.asXML();
            return xml;
        }

        //Consulta al servicio de proyeccion
        ClienteServiciosProyeccion clienteProyeccion;
        try {
            clienteProyeccion = new ClienteServiciosProyeccion();
        } catch (Exception e) {
            codigo = Propiedades.getFuncProperty("ws.proyeccion.error.login.codigo");
            mensaje = Propiedades.getFuncProperty("ws.proyeccion.error.login.mensaje");
            LOGGER.error(mensaje + ": " + e.getMessage(), e);
            elemProyeccion.addElement("codigo").addText(codigo);
            elemProyeccion.addElement("mensaje").addText(mensaje);
            xml = document.asXML();
            return xml;
        }
        String xmlInputProyeccionVa100 = xStream.toXML(inputProyeccionVaFlex);
        LOGGER.info("Llamado a getProyeccionVidAhorroFlex - proyeccion: \n" + xmlInputProyeccionVa100);
        RespuestaVidAhorroFlex outputProyeccionVidAhorroFlex;
        try {
            outputProyeccionVidAhorroFlex = clienteProyeccion.getProyeccionVidAhorroFlex(inputProyeccionVaFlex);
            String xmlOutputProyeccionVidAhorroFlex = xStream.toXML(outputProyeccionVidAhorroFlex);
            LOGGER.info("Respuesta de getProyeccionVidAhorroFlex - proyeccion: \n"
                    + xmlOutputProyeccionVidAhorroFlex);
            String codigoOutputProyeccionVidAhorroFlex = outputProyeccionVidAhorroFlex.getCodigo();
            if (!Propiedades.getFuncProperty("ws.proyeccion.codigo.ok")
                    .equals(codigoOutputProyeccionVidAhorroFlex)) {
                codigo = Propiedades.getFuncProperty("ws.proyeccion.error.proyeccionflex.codigo");
                mensaje = Propiedades.getFuncProperty("ws.proyeccion.error.proyeccionflex.mensaje");
                LOGGER.info(mensaje + ": " + outputProyeccionVidAhorroFlex.getMensaje());
                elemProyeccion.addElement("codigo").addText(codigo);
                elemProyeccion.addElement("mensaje").addText(mensaje);
                xml = document.asXML();
                return xml;
            }
        } catch (Exception e) {
            codigo = Propiedades.getFuncProperty("ws.proyeccion.error.proyeccionflex.codigo");
            mensaje = Propiedades.getFuncProperty("ws.proyeccion.error.proyeccionflex.mensaje");
            LOGGER.error(mensaje + ": " + e.getMessage(), e);
            elemProyeccion.addElement("codigo").addText(codigo);
            elemProyeccion.addElement("mensaje").addText(mensaje);
            xml = document.asXML();
            return xml;
        }

        //Nodo edadAhorro
        elemEdadAhorro = elemProyeccion.addElement("edadahorro");

        //Ciclo con datos de proyeccion
        List<ResultadoProyeccionVidAhorroFlex> resultadosProyeccion = outputProyeccionVidAhorroFlex
                .getResultadosProyeccion();
        for (ResultadoProyeccionVidAhorroFlex resultadoProyeccion : resultadosProyeccion) {
            elemEdad = elemEdadAhorro.addElement("edad");
            Integer finalAnnio = resultadoProyeccion.getFinalAnnio();
            if (finalAnnio == null) {
                elemEdad.addElement("finalano").addText("");
            } else {
                elemEdad.addElement("finalano").addText(Integer.toString(finalAnnio));
            }
            Integer edadActuarial = resultadoProyeccion.getEdadActuarial();
            if (edadActuarial == null) {
                elemEdad.addElement("edadactuarial").addText("");
            } else {
                elemEdad.addElement("edadactuarial").addText(Integer.toString(edadActuarial));
            }
            Double primaAcumulada = resultadoProyeccion.getPrimaAcumulada();
            if (primaAcumulada == null) {
                elemEdad.addElement("primaacumulada").addText("");
            } else {
                elemEdad.addElement("primaacumulada").addText(Double.toString(primaAcumulada));
            }
            Double valorPoliza = resultadoProyeccion.getValorPoliza();
            if (valorPoliza == null) {
                elemEdad.addElement("valorpoliza").addText("");
            } else {
                elemEdad.addElement("valorpoliza").addText(Double.toString(valorPoliza));
            }
            Double indemnizacionFallecimiento = resultadoProyeccion.getIndemnizacionFallecimiento();
            if (indemnizacionFallecimiento == null) {
                elemEdad.addElement("indemnizacionfallecimiento").addText("");
            } else {
                elemEdad.addElement("indemnizacionfallecimiento")
                        .addText(Double.toString(indemnizacionFallecimiento));
            }
            elemEdad.addElement("relleno").addText("I");
            elemEdad.addElement("valorpoliza57bis").addText("");
        }
    } //end codigo.flex
    else if (Integer.valueOf(nproduct).equals(Integer.valueOf(Propiedades.getFuncProperty("codigo.figold")))) {
        OutputWSProyeccionFlexInvGlodVO outputGetProyeccionesFlexInvGold;
        try {
            LOGGER.info("Llamado a getProyeccionesFlexInvGlodVO - cotizadorVida: \n" + xmlInputProyecciones);
            outputGetProyeccionesFlexInvGold = clienteCotizadorVida
                    .getProyeccionesFlexInvGlodVO(inputProyecciones);
            String xmlOutputGetProyeccionesFlexInvGlodVO = xStream.toXML(outputGetProyeccionesFlexInvGold);
            LOGGER.info("Respuesta de getProyeccionesFlexInvGlodVO - cotizadorVida: \n"
                    + xmlOutputGetProyeccionesFlexInvGlodVO);
            Integer codigoOutputGetProyeccionesFlexInvGold = outputGetProyeccionesFlexInvGold.getCodigo();
            if (!Integer.valueOf(Propiedades.getFuncProperty("ws.cotizadorvida.codigo.ok"))
                    .equals(codigoOutputGetProyeccionesFlexInvGold)) {
                codigo = Propiedades.getFuncProperty("ws.cotizadorvida.error.proyeccionfigold.codigo");
                mensaje = Propiedades.getFuncProperty("ws.cotizadorvida.error.proyeccionfigold.mensaje");
                LOGGER.info(mensaje + ": " + outputGetProyeccionesFlexInvGold.getMensaje());
                elemProyeccion.addElement("codigo").addText(codigo);
                elemProyeccion.addElement("mensaje").addText(mensaje);
                xml = document.asXML();
                return xml;
            }
        } catch (Exception e) {
            codigo = Propiedades.getFuncProperty("ws.cotizadorvida.error.proyeccionfigold.codigo");
            mensaje = Propiedades.getFuncProperty("ws.cotizadorvida.error.proyeccionfigold.mensaje");
            LOGGER.error(mensaje + ": " + e.getMessage(), e);
            elemProyeccion.addElement("codigo").addText(codigo);
            elemProyeccion.addElement("mensaje").addText(mensaje);
            xml = document.asXML();
            return xml;
        }

        //Nodo xml usoInterno
        DatosSimulacionFlexInvGoldVO datosSimulacionFlexInvGoldVO = outputGetProyeccionesFlexInvGold
                .getDatosSimulacionFlexInvGoldVO();
        Double rentabilidadAnual = datosSimulacionFlexInvGoldVO.getRentabilidadAnual();
        if (rentabilidadAnual == null) {
            elemUsoInterno.addElement("rentabilidadAnual").addText("");
        } else {
            elemUsoInterno.addElement("rentabilidadAnual").addText(Double.toString(rentabilidadAnual));
        }
        elemUsoInterno.addElement("rentaImponible").addText("");

        //Nodo xml primaTotal
        elemPrimaTotal = elemProyeccion.addElement("primaTotal");
        //TODO completar valorMoneda (UF) en campo primaTotal
        elemPrimaTotal.addElement("valorMoneda").addText("");

        //Nodo xml parametros
        elemParametros = elemProyeccion.addElement("parametros");
        elemParametros.addElement("recargosimulador").addText("");

        //Obtener el condicionado particular (POL-CAD)
        InputCondicionadoVO inputCondicionadoVO = new InputCondicionadoVO();
        inputCondicionadoVO.setBranch(Propiedades.getFuncProperty("codigo.ramo"));
        inputCondicionadoVO.setCover(Propiedades.getFuncProperty("codigo.figold.cobertura.fallecimiento"));
        inputCondicionadoVO.setModulec(Propiedades.getFuncProperty("codigo.modulo"));
        inputCondicionadoVO.setProduct(Propiedades.getFuncProperty("codigo.figold"));
        String xmlInputCondicionado = xStream.toXML(inputCondicionadoVO);
        LOGGER.info("Llamado a getNombreCondicionado - cotizadorVida: \n" + xmlInputCondicionado);
        OutputCondicionadoVO outputCondicionadoVO;
        try {
            outputCondicionadoVO = clienteCotizadorVida.getNombreCondicionado(inputCondicionadoVO);
            String xmlOutputCondicionadoVO = xStream.toXML(outputCondicionadoVO);
            LOGGER.info("Respuesta getNombreCondicionado - cotizadorVida: \n" + xmlOutputCondicionadoVO);
            Integer codigoOutputCondicionado = outputCondicionadoVO.getCodigo();
            if (!Integer.valueOf(Propiedades.getFuncProperty("ws.cotizadorvida.codigo.ok"))
                    .equals(codigoOutputCondicionado)) {
                codigo = Propiedades.getFuncProperty("ws.cotizadorvida.error.condicionado.codigo");
                mensaje = Propiedades.getFuncProperty("ws.cotizadorvida.error.condicionado.mensaje");
                LOGGER.info(mensaje + ": " + outputGetProyeccionesFlexInvGold.getMensaje());
                elemProyeccion.addElement("codigo").addText(codigo);
                elemProyeccion.addElement("mensaje").addText(mensaje);
                xml = document.asXML();
                return xml;
            }
        } catch (Exception e) {
            codigo = Propiedades.getFuncProperty("ws.cotizadorvida.error.condicionado.codigo");
            mensaje = Propiedades.getFuncProperty("ws.cotizadorvida.error.condicionado.mensaje");
            LOGGER.error(mensaje + ": " + e.getMessage(), e);
            elemProyeccion.addElement("codigo").addText(codigo);
            elemProyeccion.addElement("mensaje").addText(mensaje);
            xml = document.asXML();
            return xml;
        }
        List<CondicionadoVO> cursorCondicionado = outputCondicionadoVO.getCursor();
        CondicionadoVO condicionado = cursorCondicionado.get(0);
        String scondsvs = condicionado.getScondsvs();
        if (scondsvs == null) {
            scondsvs = "";
        }
        elemUsoInterno.addElement("codigoSvsPol").addText(scondsvs);

        //Construye entrada para el servicio de proyeccion
        TransaccionFlexInvGold inputProyeccionFlexInvGold;
        try {
            inputProyeccionFlexInvGold = ProyeccionBeanFactory.buildFIGold(outputGetProyeccionesFlexInvGold);
        } catch (Exception e) {
            codigo = Propiedades.getFuncProperty("error.beanfactory.proyeccionfigold.codigo");
            mensaje = Propiedades.getFuncProperty("error.beanfactory.proyeccionfigold.mensaje");
            LOGGER.error(mensaje + ": " + e.getMessage(), e);
            elemProyeccion.addElement("codigo").addText(codigo);
            elemProyeccion.addElement("mensaje").addText(mensaje);
            xml = document.asXML();
            return xml;
        }

        //Consulta al servicio de proyeccion
        ClienteServiciosProyeccion clienteProyeccion;
        try {
            clienteProyeccion = new ClienteServiciosProyeccion();
        } catch (Exception e) {
            codigo = Propiedades.getFuncProperty("ws.proyeccion.error.login.codigo");
            mensaje = Propiedades.getFuncProperty("ws.proyeccion.error.login.mensaje");
            LOGGER.error(mensaje + ": " + e.getMessage(), e);
            elemProyeccion.addElement("codigo").addText(codigo);
            elemProyeccion.addElement("mensaje").addText(mensaje);
            xml = document.asXML();
            return xml;
        }
        String xmlInputProyeccionFlexInvGold = xStream.toXML(inputProyeccionFlexInvGold);
        LOGGER.info("Llamado a getProyeccionFlexInvGold - proyeccion: \n" + xmlInputProyeccionFlexInvGold);
        RespuestaFlexInvGold outputProyeccionFlexInvGold;
        try {
            outputProyeccionFlexInvGold = clienteProyeccion
                    .getProyeccionFlexInvGold(inputProyeccionFlexInvGold);
            String xmlOutputProyeccionFlexInvGold = xStream.toXML(outputProyeccionFlexInvGold);
            LOGGER.info(
                    "Respuesta de getProyeccionFlexInvGold - proyeccion: \n" + xmlOutputProyeccionFlexInvGold);
            String codigoOutputProyeccionFlexInvGold = outputProyeccionFlexInvGold.getCodigo();
            if (!Propiedades.getFuncProperty("ws.proyeccion.codigo.ok")
                    .equals(codigoOutputProyeccionFlexInvGold)) {
                codigo = Propiedades.getFuncProperty("ws.proyeccion.error.proyeccionfigold.codigo");
                mensaje = Propiedades.getFuncProperty("ws.proyeccion.error.proyeccionfigold.mensaje");
                LOGGER.info(mensaje + ": " + outputProyeccionFlexInvGold.getMensaje());
                elemProyeccion.addElement("codigo").addText(codigo);
                elemProyeccion.addElement("mensaje").addText(mensaje);
                xml = document.asXML();
                return xml;
            }
        } catch (Exception e) {
            codigo = Propiedades.getFuncProperty("ws.proyeccion.error.proyeccionfigold.codigo");
            mensaje = Propiedades.getFuncProperty("ws.proyeccion.error.proyeccionfigold.mensaje");
            LOGGER.error(mensaje + ": " + e.getMessage(), e);
            elemProyeccion.addElement("codigo").addText(codigo);
            elemProyeccion.addElement("mensaje").addText(mensaje);
            xml = document.asXML();
            return xml;
        }

        //Nodo edadAhorro
        elemEdadAhorro = elemProyeccion.addElement("edadahorro");

        //Ciclo con datos de proyeccion
        List<ResultadoProyeccionFlexInvGold> resultadosProyeccion = outputProyeccionFlexInvGold
                .getResultadosProyeccion();
        for (ResultadoProyeccionFlexInvGold resultadoProyeccionFlexInvGold : resultadosProyeccion) {
            elemEdad = elemEdadAhorro.addElement("edad");
            Integer finalAnnio = resultadoProyeccionFlexInvGold.getFinalAnnio();
            if (finalAnnio == null) {
                elemEdad.addElement("finalano").addText("");
            } else {
                elemEdad.addElement("finalano").addText(Integer.toString(finalAnnio));
            }
            Integer edadActuarial = resultadoProyeccionFlexInvGold.getEdadActuarial();
            if (edadActuarial == null) {
                elemEdad.addElement("edadactuarial").addText("");
            } else {
                elemEdad.addElement("edadactuarial").addText(Integer.toString(edadActuarial));
            }
            Double primaAcumulada = resultadoProyeccionFlexInvGold.getPrimaAcumulada();
            if (primaAcumulada == null) {
                elemEdad.addElement("primaacumulada").addText("");
            } else {
                elemEdad.addElement("primaacumulada").addText(Double.toString(primaAcumulada));
            }
            Double valorPoliza = resultadoProyeccionFlexInvGold.getValorPoliza();
            if (valorPoliza == null) {
                elemEdad.addElement("valorpoliza").addText("");
            } else {
                elemEdad.addElement("valorpoliza").addText(Double.toString(valorPoliza));
            }
            Double indemnizacionFallecimiento = resultadoProyeccionFlexInvGold.getIndemnizacionFallecimiento();
            if (indemnizacionFallecimiento == null) {
                elemEdad.addElement("indemnizacionfallecimiento").addText("");
            } else {
                elemEdad.addElement("indemnizacionfallecimiento")
                        .addText(Double.toString(indemnizacionFallecimiento));
            }
            elemEdad.addElement("relleno").addText("I");
            elemEdad.addElement("valorpoliza57bis").addText("");
        }
    } //end codigo.figold
      //</editor-fold>

    //<editor-fold defaultstate="collapsed" desc="Termino">
    codigo = Propiedades.getFuncProperty("codigo.ok");
    mensaje = Propiedades.getFuncProperty("mensaje.ok");
    LOGGER.info(mensaje);
    elemProyeccion.addElement("codigo").addText(codigo);
    elemProyeccion.addElement("mensaje").addText(mensaje);
    xml = document.asXML();
    return xml;
    //</editor-fold>

}