package com.telefonica.claudia.smi; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import org.w3c.dom.Document; import org.w3c.dom.Element; import com.telefonica.claudia.smi.TCloudConstants.ErrorType; public class TCloudException extends Exception { private String uri; private String elementType; private ErrorType errorType; public ErrorType getErrorType() { return errorType; } public void setErrorType(ErrorType errorType) { this.errorType = errorType; } /** * */ private static final long serialVersionUID = 5858849420125201599L; public TCloudException(String uri ,String elementType, ErrorType errorType){ this.uri = uri; this.elementType = elementType; this.errorType = errorType; } public Document createErrorMessage() { try { DocumentBuilderFactory dbfac = DocumentBuilderFactory.newInstance(); DocumentBuilder docBuilder; docBuilder = dbfac.newDocumentBuilder(); Document doc = docBuilder.newDocument(); Element r = doc.createElement("ErrorSet"); doc.appendChild(r); if (errorType==ErrorType.UNKNOWN_ELEMENTS) { Element unknown= doc.createElement("UnknownElements"); r.appendChild(unknown); Element element= doc.createElement("element"); unknown.appendChild(element); element.setAttribute("type", elementType); element.setAttribute("ref", uri); } else if (errorType==ErrorType.ELEMENT_NOT_FOUND) { Element elementNotFound= doc.createElement("ElementNotFound"); r.appendChild(elementNotFound); Element element= doc.createElement("element"); elementNotFound.appendChild(element); element.setAttribute("type", elementType); element.setAttribute("ref", uri); } return doc; } catch (IllegalArgumentException iae) { return null; } catch (ParserConfigurationException pe) { return null; } } }