package at.gv.egovernment.moa.spss.server.service; import java.io.ByteArrayInputStream; import org.w3c.dom.Document; import org.w3c.dom.Element; import at.gv.egovernment.moa.util.Constants; import at.gv.egovernment.moa.util.DOMUtils; import at.gv.egovernment.moa.spss.MOAApplicationException; /** * Helper methods for the Service classes. * * @author Patrick Peck * @version $Id$ */ public class ServiceUtils { /** * Schema-validate a request. * * @param request The request to validate. * @throws MOAApplicationException An error occurred validating the requst. */ public static void validateRequest(Element[] request) throws MOAApplicationException { // validate the request try { DOMUtils.validateElement( request[0], Constants.ALL_SCHEMA_LOCATIONS, null); } catch (Exception e) { throw new MOAApplicationException( "1100", new Object[] { e.getMessage()}, e); } } /** * Reparse the request with schema-validation turned on so that ID references * are resolved. * * @param request The request to reparse. * @return The reparsed request. * @throws MOAApplicationException An error occurred parsing the request. */ public static Element reparseRequest(Element request) throws MOAApplicationException { try { byte[] requestBytes = DOMUtils.serializeNode(request, "UTF-8"); Document validatedRequest = DOMUtils.parseDocument( new ByteArrayInputStream(requestBytes), true, Constants.ALL_SCHEMA_LOCATIONS, null); return validatedRequest.getDocumentElement(); } catch (Exception e) { throw new MOAApplicationException( "1100", new Object[] { e.getMessage()}, e); } } }