EMMA Coverage Report (generated Mon Mar 20 21:27:43 EST 2006)
[all classes][com.webhydra.slug.process.xml]

COVERAGE SUMMARY FOR SOURCE FILE [XmlXsdProcessStatusTranslator.java]

nameclass, %method, %block, %line, %
XmlXsdProcessStatusTranslator.java100% (1/1)100% (3/3)100% (94/94)100% (21/21)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class XmlXsdProcessStatusTranslator100% (1/1)100% (3/3)100% (94/94)100% (21/21)
XmlXsdProcessStatusTranslator (): void 100% (1/1)100% (3/3)100% (2/2)
getDocType (): String 100% (1/1)100% (2/2)100% (1/1)
translate (ProcessStatus): String 100% (1/1)100% (89/89)100% (18/18)

1/*
2 * @(#) $Id: XmlXsdProcessStatusTranslator.java,v 1.1.1.1 2006/03/19 06:09:42 rossen Exp $
3 *
4 * Copyright (c) 2006, WebHydra.com
5 * All rights reserved.
6 * 
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions are met:
9 * 
10 *     * Redistributions of source code must retain the above copyright notice,
11 *       this list of conditions and the following disclaimer.
12 *     * Redistributions in binary form must reproduce the above copyright
13 *       notice, this list of conditions and the following disclaimer in the
14 *       documentation and/or other materials provided with the distribution.
15 *     * Neither the name of the WebHydra.com nor the names of its contributors
16 *       may be used to endorse or promote products derived from this software
17 *       without specific prior written permission.
18 * 
19 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
23 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29 * POSSIBILITY OF SUCH DAMAGE.
30 */
31 
32package com.webhydra.slug.process.xml;
33 
34import com.webhydra.slug.process.IProcessStatusTranslator;
35import com.webhydra.slug.process.ProcessProgress;
36import com.webhydra.slug.process.ProcessStatus;
37 
38/**
39 * XML XSD based <code>ProcessStatus</code> Translator.
40 * @author rossen
41 */
42public class XmlXsdProcessStatusTranslator extends AbstractXmlProcessStatusTranslator implements IProcessStatusTranslator {
43 
44    /** Creates a new instance of XmlDtdProcessStatusTranslator */
45    public XmlXsdProcessStatusTranslator() {
46    }
47 
48    /**
49     * Retruns document's type.
50     *
51     * @return AbstractXmlProcessStatusTranslator.XML_TYPE_XSD.
52     */
53    protected String getDocType() {
54        return AbstractXmlProcessStatusTranslator.XML_TYPE_XSD;
55    }
56 
57    /**
58     * Generate process status instance.
59     * @param ps Process Status to be translated
60     * @return implementation dependent String representation of provided parameter instance.
61     */
62    public String translate(ProcessStatus ps) {
63        if (ps == null)
64            return ""; // TODO decide on is thisreally the right thing to do?
65        StringBuffer result = new StringBuffer();
66        result.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
67        result.append("<slug-process-status");
68        if (shouldUseDocType())
69        {
70            result.append("xmlns=\"http://xml.webhydra.com/slug\" ");
71            result.append("xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" ");
72            result.append("xsi:schemaLocation=\"http://xml.webhydra.com/");
73            result.append(XML_TYPE_FILE_NAME).append(".").append(getDocType()).append('"');
74        }
75        result.append(">");
76        result.append("<status>").append(ps.getStatus()).append("</status>");
77        if (ps.hasMessage())
78        {
79            result.append("<message>").append(xmlEscape(ps.getMessage())).append("</message>");
80        }
81        if (ps instanceof ProcessProgress)
82        {
83            result.append("<progress>").append(((ProcessProgress) ps).getProgress()).append("</progress>");
84        }
85        result.append("</slug-process-status>\n");
86        return result.toString();
87    }
88 
89}

[all classes][com.webhydra.slug.process.xml]
EMMA 2.0.5312 (C) Vladimir Roubtsov