EMMA Coverage Report (generated Sun Mar 01 22:06:14 CET 2015)
[all classes][org.h2.command.dml]

COVERAGE SUMMARY FOR SOURCE FILE [ExecuteProcedure.java]

nameclass, %method, %block, %line, %
ExecuteProcedure.java100% (1/1)90%  (9/10)90%  (85/94)89%  (24/27)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class ExecuteProcedure100% (1/1)90%  (9/10)90%  (85/94)89%  (24/27)
update (): int 0%   (0/1)0%   (0/9)0%   (0/3)
ExecuteProcedure (Session): void 100% (1/1)100% (7/7)100% (3/3)
getType (): int 100% (1/1)100% (2/2)100% (1/1)
isQuery (): boolean 100% (1/1)100% (7/7)100% (2/2)
isTransactional (): boolean 100% (1/1)100% (2/2)100% (1/1)
query (int): ResultInterface 100% (1/1)100% (10/10)100% (3/3)
queryMeta (): ResultInterface 100% (1/1)100% (7/7)100% (2/2)
setExpression (int, Expression): void 100% (1/1)100% (6/6)100% (2/2)
setParameters (): void 100% (1/1)100% (40/40)100% (8/8)
setProcedure (Procedure): void 100% (1/1)100% (4/4)100% (2/2)

1/*
2 * Copyright 2004-2014 H2 Group. Multiple-Licensed under the MPL 2.0,
3 * and the EPL 1.0 (http://h2database.com/html/license.html).
4 * Initial Developer: H2 Group
5 */
6package org.h2.command.dml;
7 
8import java.util.ArrayList;
9import org.h2.command.CommandInterface;
10import org.h2.command.Prepared;
11import org.h2.engine.Procedure;
12import org.h2.engine.Session;
13import org.h2.expression.Expression;
14import org.h2.expression.Parameter;
15import org.h2.result.ResultInterface;
16import org.h2.util.New;
17 
18/**
19 * This class represents the statement
20 * EXECUTE
21 */
22public class ExecuteProcedure extends Prepared {
23 
24    private final ArrayList<Expression> expressions = New.arrayList();
25    private Procedure procedure;
26 
27    public ExecuteProcedure(Session session) {
28        super(session);
29    }
30 
31    public void setProcedure(Procedure procedure) {
32        this.procedure = procedure;
33    }
34 
35    /**
36     * Set the expression at the given index.
37     *
38     * @param index the index (0 based)
39     * @param expr the expression
40     */
41    public void setExpression(int index, Expression expr) {
42        expressions.add(index, expr);
43    }
44 
45    private void setParameters() {
46        Prepared prepared = procedure.getPrepared();
47        ArrayList<Parameter> params = prepared.getParameters();
48        for (int i = 0; params != null && i < params.size() &&
49                i < expressions.size(); i++) {
50            Expression expr = expressions.get(i);
51            Parameter p = params.get(i);
52            p.setValue(expr.getValue(session));
53        }
54    }
55 
56    @Override
57    public boolean isQuery() {
58        Prepared prepared = procedure.getPrepared();
59        return prepared.isQuery();
60    }
61 
62    @Override
63    public int update() {
64        setParameters();
65        Prepared prepared = procedure.getPrepared();
66        return prepared.update();
67    }
68 
69    @Override
70    public ResultInterface query(int limit) {
71        setParameters();
72        Prepared prepared = procedure.getPrepared();
73        return prepared.query(limit);
74    }
75 
76    @Override
77    public boolean isTransactional() {
78        return true;
79    }
80 
81    @Override
82    public ResultInterface queryMeta() {
83        Prepared prepared = procedure.getPrepared();
84        return prepared.queryMeta();
85    }
86 
87    @Override
88    public int getType() {
89        return CommandInterface.EXECUTE;
90    }
91 
92}

[all classes][org.h2.command.dml]
EMMA 2.0.5312 (C) Vladimir Roubtsov