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

COVERAGE SUMMARY FOR SOURCE FILE [JavaScriptProcessStatusTranslator.java]

nameclass, %method, %block, %line, %
JavaScriptProcessStatusTranslator.java100% (1/1)100% (3/3)100% (148/148)100% (30/30)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class JavaScriptProcessStatusTranslator100% (1/1)100% (3/3)100% (148/148)100% (30/30)
JavaScriptProcessStatusTranslator (): void 100% (1/1)100% (6/6)100% (3/3)
getClassDef (): String 100% (1/1)100% (79/79)100% (18/18)
translate (ProcessStatus): String 100% (1/1)100% (63/63)100% (9/9)

1/*
2 * @(#) $Id: JavaScriptProcessStatusTranslator.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.javascript;
33 
34import com.webhydra.slug.process.AbstractProcessStatusTranslator;
35import com.webhydra.slug.process.ProcessProgress;
36import com.webhydra.slug.process.ProcessStatus;
37import com.webhydra.slug.process.IProcessStatusTranslator;
38import com.webhydra.slug.process.Status;
39import java.util.Map;
40 
41/**
42 * Translates ProcessStatus to JavaScript object
43 * @author rossen
44 */
45public class JavaScriptProcessStatusTranslator extends AbstractProcessStatusTranslator implements IProcessStatusTranslator
46{
47 
48    /** Name of the generated JavaScript Object Class */
49    public static final String JAVASCRIPT_OBJECT_NAME = "ProcessStaus";
50 
51    /** Private constructor */
52    public JavaScriptProcessStatusTranslator()
53    {
54        setContentType("application/x-javascript");
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    {
64        if (ps == null)
65            return "undefined";
66        StringBuffer result = new StringBuffer();
67        result.append("new ").append(JAVASCRIPT_OBJECT_NAME);
68        result.append("('").append(ps.getStatus()).append("','");
69        result.append((ps.hasMessage()) ? ps.getMessage().replaceAll("(')","\\\\'") : "").append("',");
70        result.append((ps instanceof ProcessProgress) ? "" + ((ProcessProgress) ps).getProgress() : "''");
71        result.append(");\n");
72        return result.toString();
73    }
74 
75    /**
76     * Generate class definition.
77     *
78     * @return implementation dependent String representation of provided parameter class.
79     */
80    public String getClassDef()
81    {
82        StringBuffer result = new StringBuffer();
83        result.append("function ").append(JAVASCRIPT_OBJECT_NAME);
84        result.append("(status,message,progress){\n");
85        result.append("this.status=status;\n");
86        result.append("this.message=message;\n");
87        result.append("this.progress=progress;\n");
88        result.append("this.getProgress=function(){return this.progress;};\n");
89        result.append("this.hasProgress=function(){return ((this.progress != undefined) && (this.progress != ''));};\n");
90        result.append("this.getStatus=function(){return this.status;};\n");
91        result.append("this.getMessage=function(){return this.message;};\n");
92        result.append("this.hasMessage=function(){return ((this.message != undefined) && this.message != '');};\n");
93        result.append("this.isCompleted = function(){ return ((status != '").append(Status.RUNNING);
94        result.append("') && (status != '").append(Status.WAITING).append("'));};\n");
95        result.append("this.toString = function(){ var txt = 'Status: ' + status; ");
96        result.append("if (this.hasMessage()){ txt = txt + ', Message: ' + message;} ");
97        result.append("if (this.hasProgress()){ txt = txt + ', Progress: ' + progress;} ");
98        result.append("return txt;};\n}\n");
99        return result.toString();
100    }
101 
102}

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