/*
 * Fichero:     CodigosStatusServicioCXML.java
 * Fecha:       25/11/2006
 * Autor:       Alvaro Sarmiento Losada
 * Asignatura:  Proyecto Fin de Carrera
 * Descripción: Contiene la interfaz CodigosStatusServicioCXML, que define
 *              varias constantes que representan códigos de operación de
 *              un servidor de cXML.
 *
 * 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.comercio.cxml;

/**
 * Esta interfaz define un conjunto de constantes que expresan los valores
 * de los atributos "code" y "text" del elemento "Status" que cuelga del
 * elemento "Response" de cualquier respuesta cXML. <br>
 * Esta interfaz define un subconjunto de todos los valores posibles, 
 * apropiado para el servidor de comercio cXML implementado en la clase
 * {@link ServicioCXML}. Cada constante es un array de 3 <code>String</code>
 * cuya estructura es la siguiente: <br>
 * - array[0]: el codigo. <br>
 * - array[1]: el texto en español y adaptado a la implementación de servidor
 * cXML de {@link ServicioCXML}. <br>
 * - array[2]: el texto descrito en el manual de cXML. <br>
 *
 * @author  Alvaro Sarmiento Losada
 * @see ServicioCXML
 */
public interface CodigosStatusServicioCXML {
    
    /**
     * Constante que define el código, texto de esta implementación de un 
     * servidor cXML y texto recomendado por www.cXML.org para el elemento
     * "Status" de una respuesta cXML en la que se indica que no ha habido
     * error.
     */
    public static final String[] CORRECTO_OK = {
        "200", 
        "Peticion aceptada y procesada", 
        "OK" };

    /**
     * Constante que define el código, texto de esta implementación de un 
     * servidor cXML y texto recomendado por www.cXML.org para el elemento
     * "Status" de una respuesta cXML en la que se indica que ha ocurrido
     * un error de petición inválida.
     */
    public static final String[] ERROR_PETICION_INCORRECTA = {
        "400", 
        "Peticion inaceptable para el servidor cXML", 
        "Bad Request" };
    
    public static final String[] ERROR_PRODUCTO = {
        "406", 
        "El producto no pertenecia a este equipo", 
        "Bad Request" };

    /**
     * Constante que define el código, texto de esta implementación de un 
     * servidor cXML y texto recomendado por www.cXML.org para el elemento
     * "Status" de una respuesta cXML en la que se indica que ha ocurrido
     * un error de cliente no autorizado a ejecutar la petición.
     */
    public static final String[] ERROR_CREDENCIALES = {
        "401", 
        "Peticion inaceptable, el cliente no esta autorizado a ejecutar esta operacion", 
        "Unathorized" };

    /**
     * Constante que define el código, texto de esta implementación de un 
     * servidor cXML y texto recomendado por www.cXML.org para el elemento
     * "Status" de una respuesta cXML en la que se indica que ha ocurrido
     * un error de petición inválida por falta de información de pago.
     */
    public static final String[] ERROR_PAGO = { 
        "402", 
        "Peticion inaceptable, no se ha incluido informacion de pago", 
        "Payment Required" };

    /**
     * Constante que define el código, texto de esta implementación de un 
     * servidor cXML y texto recomendado por www.cXML.org para el elemento
     * "Status" de una respuesta cXML en la que se indica que ha ocurrido
     * un error de validación de la petición cXML.
     */
    public static final String[] ERROR_NO_VALIDO = {
        "406", 
        "Peticion inaceptable, el mensaje recibido esta corrupto o no es valido",
        "Not Acceptable" };
    
    /**
     * Constante que define el código, texto de esta implementación de un 
     * servidor cXML y texto recomendado por www.cXML.org para el elemento
     * "Status" de una respuesta cXML en la que se indica que ha ocurrido
     * un error al no disponer el servidor de los datos pedidos por el cliente.
     */
    public static final String[] ERROR_DATOS = {
        "417", 
        "Peticion inaceptable, no se dispone de datos suficientes", 
        "Expectation Failed" };

    /**
     * Constante que define el código, texto de esta implementación de un 
     * servidor cXML y texto recomendado por www.cXML.org para el elemento
     * "Status" de una respuesta cXML en la que se indica que ha ocurrido
     * un error al solicitar una petición no implementada en el servidor.
     */
    public static final String[] ERROR_OPERACION = { 
        "450", 
        "Peticion inaceptable, la operacion solicitada no esta implementada en este servidor cXML", 
        "Not Implemented" };

    /**
     * Constante que define el código, texto de esta implementación de un 
     * servidor cXML y texto recomendado por www.cXML.org para el elemento
     * "Status" de una respuesta cXML en la que se indica que ha ocurrido
     * un error interno del servidor cXML.
     */
    public static final String[] ERROR_SERVIDOR = { 
        "500", 
        "Error interno del servidor", 
        "Internal Server Error" };
        
}