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

com.smartlogic.ses.client.Error Maven / Gradle / Ivy

There is a newer version: 5.6.1
Show newest version
//----------------------------------------------------------------------
// Product:     Semantic Enhancement Server Java API
//
// (c) 2009 Smartlogic Semaphore Ltd
//----------------------------------------------------------------------

package com.smartlogic.ses.client;

import java.io.Serializable;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.w3c.dom.Attr;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

@XmlRootElement(name = "error")
@XmlAccessorType(XmlAccessType.FIELD)
public class Error  implements Serializable
{
	protected final static Log logger = LogFactory.getLog(Error.class);
	private static final long serialVersionUID = -3657161439776444328L;

	// This is required by the XML Marshalling/Unmarshalling
	public Error() {}

	protected Error(Element element) {
		logger.debug("Constructor - entry");

		NodeList nodeList = element.getChildNodes();
		for (int n = 0; n < nodeList.getLength(); n++) {
			Node node = nodeList.item(n);
			if (node.getNodeType() == Node.ELEMENT_NODE) {
				Element childElement = (Element) node;
				if ("TYPE".equals(childElement.getNodeName())) {
					setType(new Type(childElement));
				} else if ("MESSAGE".equals(childElement.getNodeName())) {
					setMessage(new Message(childElement));
				} else if ("H3".equals(childElement.getNodeName())) {
					// This is part of the HTML rendering of errors in SES v2 and so should be ignored here
				} else if ("BR".equals(childElement.getNodeName())) {
					// This is part of the HTML rendering of errors in SES v2 and so should be ignored here
				} else {
					logger.trace("Unrecognized child node: '" + childElement.getNodeName() + "'");
				}
			} else if ((node.getNodeType() == Node.TEXT_NODE) && (node.getNodeValue() != null) && (node.getNodeValue().trim().length() > 0)) {
				setMessage(new Message(node.getNodeValue()));
			}
		}

		NamedNodeMap namedNodeMap = element.getAttributes();
		if (namedNodeMap != null) {
			for (int a = 0; a < namedNodeMap.getLength(); a++) {
				Attr attributeNode = (Attr) namedNodeMap.item(a);
				logger.trace("Unrecognized attribute: '" + attributeNode.getName() + "'");
			}
		}


		logger.debug("Constructor - exit");
	}

	private Type type;
	public Type getType() {
		return type;
	}
	public void setType(Type type) {
		this.type = type;
	}

	private Message message;
	public Message getMessage() {
		return message;
	}
	public void setMessage(Message message) {
		this.message = message;
	}

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy