All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.xins.server.InvalidMessageResult Maven / Gradle / Ivy

There is a newer version: 3.0
Show newest version
/*
 * $Id: InvalidMessageResult.java,v 1.9 2011/04/16 15:48:02 agoubard Exp $
 *
 * See the COPYRIGHT file for redistribution and use restrictions.
 */
package org.xins.server;

import java.util.Iterator;
import java.util.List;
import org.w3c.dom.Element;

/**
 * Result code that indicates that a request or a response parameter is either
 * missing or invalid.
 *
 * @version $Revision: 1.9 $ $Date: 2011/04/16 15:48:02 $
 * @author Anthony Goubard
 *
 * @since XINS 2.0
 */
class InvalidMessageResult extends FunctionResult {

   /**
    * Constructs a new InvalidMessageResult object.
    *
    * @param errorCode
    *    the error code to return to the client, never null.
    */
   InvalidMessageResult(String errorCode) {
      super(errorCode);
   }

   /**
    * Adds to the response that a paramater that is missing.
    *
    * @param parameter
    *    the missing parameter.
    */
   public void addMissingParameter(String parameter) {
      Element missingParam = getDataElementBuilder().addToDataElement("missing-param");
      missingParam.setAttribute("param", parameter);
   }

   /**
    * Adds to the response a parameter that is missing in an element.
    *
    * @param parameter
    *    the missing parameter.
    *
    * @param element
    *    the element in which the parameter is missing.
    */
   public void addMissingParameter(String parameter, String element) {
      Element missingParam = getDataElementBuilder().addToDataElement("missing-param");
      missingParam.setAttribute("param", parameter);
      missingParam.setAttribute("element", element);
   }

   /**
    * Adds an invalid value for a specified type.
    *
    * @param parameter
    *    the parameter passed by the user.
    *
    * @param type
    *    the type which this parameter should be compliant with.
    *
    * @deprecated since XINS 2.0, use {@link #addInvalidValueForType(String, String, String)}.
    */
   public void addInvalidValueForType(String parameter, String type) {
      Element invalidValue = getDataElementBuilder().addToDataElement("invalid-value-for-type");
      invalidValue.setAttribute("param", parameter);
      invalidValue.setAttribute("type", type);
   }

   /**
    * Adds an invalid value for a specified type.
    *
    * @param parameter
    *    the parameter passed by the user.
    *
    * @param value
    *    the value of the parameter passed by the user.
    *
    * @param type
    *    the type which this parameter should be compliant with.
    */
   public void addInvalidValueForType(String parameter, String value, String type) {
      Element invalidValue = getDataElementBuilder().addToDataElement("invalid-value-for-type");
      invalidValue.setAttribute("param", parameter);
      invalidValue.setAttribute("value", value);
      invalidValue.setAttribute("type", type);
   }

   /**
    * Adds an invalid value for a specified type.
    *
    * @param parameter
    *    the parameter passed by the user.
    *
    * @param value
    *    the value of the parameter passed by the user.
    *
    * @param type
    *    the type which this parameter should be compliant with.
    *
    * @param element
    *    the element in which the parameter is missing.
    */
   public void addInvalidValueForType(String parameter, String value, String type, String element) {
      Element invalidValue = getDataElementBuilder().addToDataElement("invalid-value-for-type");
      invalidValue.setAttribute("param", parameter);
      invalidValue.setAttribute("value", value);
      invalidValue.setAttribute("type", type);
      invalidValue.setAttribute("element", element);
   }

   /**
    * Adds an invalid combination of parameters.
    *
    * @param type
    *    the type of the combination.
    *
    * @param parameters
    *    list of the parameters in the combination passed as a list of
    *    {@link String} objects.
    */
   public void addParamCombo(String type, List parameters) {

      Element paramCombo = getDataElementBuilder().addToDataElement("param-combo");
      paramCombo.setAttribute("type", type);

      // Iterate over all parameters
      for (String parameter : parameters) {
         Element param = getDataElementBuilder().createElement("param");
         param.setAttribute("name", parameter);
         paramCombo.appendChild(param);
      }
   }

   /**
    * Adds an invalid combination of attributes.
    *
    * @param type
    *    the type of the combination.
    *
    * @param attributes
    *    list of the attributes in the combination passed as a list of
    *    {@link String} objects.
    *
    * @param elementName
    *    the name of the element to which these attributes belong.
    *
    * @since XINS 1.4.0
    */
   public void addAttributeCombo(String type, List attributes, String elementName) {

      Element attributeCombo = getDataElementBuilder().addToDataElement("attribute-combo");
      attributeCombo.setAttribute("type", type);

      for (String attr : attributes) {
         Element attribute = getDataElementBuilder().createElement("attribute");
         attribute.setAttribute("name", attr);
         attributeCombo.appendChild(attribute);
      }
   }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy