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

COVERAGE SUMMARY FOR SOURCE FILE [CreateTrigger.java]

nameclass, %method, %block, %line, %
CreateTrigger.java100% (1/1)100% (16/16)91%  (159/175)93%  (50/54)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class CreateTrigger100% (1/1)100% (16/16)91%  (159/175)93%  (50/54)
update (): int 100% (1/1)86%  (97/113)83%  (20/24)
CreateTrigger (Session, Schema): void 100% (1/1)100% (8/8)100% (3/3)
getType (): int 100% (1/1)100% (2/2)100% (1/1)
setBefore (boolean): void 100% (1/1)100% (4/4)100% (2/2)
setForce (boolean): void 100% (1/1)100% (4/4)100% (2/2)
setIfNotExists (boolean): void 100% (1/1)100% (4/4)100% (2/2)
setInsteadOf (boolean): void 100% (1/1)100% (4/4)100% (2/2)
setNoWait (boolean): void 100% (1/1)100% (4/4)100% (2/2)
setOnRollback (boolean): void 100% (1/1)100% (4/4)100% (2/2)
setQueueSize (int): void 100% (1/1)100% (4/4)100% (2/2)
setRowBased (boolean): void 100% (1/1)100% (4/4)100% (2/2)
setTableName (String): void 100% (1/1)100% (4/4)100% (2/2)
setTriggerClassName (String): void 100% (1/1)100% (4/4)100% (2/2)
setTriggerName (String): void 100% (1/1)100% (4/4)100% (2/2)
setTriggerSource (String): void 100% (1/1)100% (4/4)100% (2/2)
setTypeMask (int): 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.ddl;
7 
8import org.h2.api.ErrorCode;
9import org.h2.api.Trigger;
10import org.h2.command.CommandInterface;
11import org.h2.engine.Database;
12import org.h2.engine.Session;
13import org.h2.message.DbException;
14import org.h2.schema.Schema;
15import org.h2.schema.TriggerObject;
16import org.h2.table.Table;
17 
18/**
19 * This class represents the statement
20 * CREATE TRIGGER
21 */
22public class CreateTrigger extends SchemaCommand {
23 
24    private String triggerName;
25    private boolean ifNotExists;
26 
27    private boolean insteadOf;
28    private boolean before;
29    private int typeMask;
30    private boolean rowBased;
31    private int queueSize = TriggerObject.DEFAULT_QUEUE_SIZE;
32    private boolean noWait;
33    private String tableName;
34    private String triggerClassName;
35    private String triggerSource;
36    private boolean force;
37    private boolean onRollback;
38 
39    public CreateTrigger(Session session, Schema schema) {
40        super(session, schema);
41    }
42 
43    public void setInsteadOf(boolean insteadOf) {
44        this.insteadOf = insteadOf;
45    }
46 
47    public void setBefore(boolean before) {
48        this.before = before;
49    }
50 
51    public void setTriggerClassName(String triggerClassName) {
52        this.triggerClassName = triggerClassName;
53    }
54 
55    public void setTriggerSource(String triggerSource) {
56        this.triggerSource = triggerSource;
57    }
58 
59    public void setTypeMask(int typeMask) {
60        this.typeMask = typeMask;
61    }
62 
63    public void setRowBased(boolean rowBased) {
64        this.rowBased = rowBased;
65    }
66 
67    public void setQueueSize(int size) {
68        this.queueSize = size;
69    }
70 
71    public void setNoWait(boolean noWait) {
72        this.noWait = noWait;
73    }
74 
75    public void setTableName(String tableName) {
76        this.tableName = tableName;
77    }
78 
79    public void setTriggerName(String name) {
80        this.triggerName = name;
81    }
82 
83    public void setIfNotExists(boolean ifNotExists) {
84        this.ifNotExists = ifNotExists;
85    }
86 
87    @Override
88    public int update() {
89        session.commit(true);
90        Database db = session.getDatabase();
91        if (getSchema().findTrigger(triggerName) != null) {
92            if (ifNotExists) {
93                return 0;
94            }
95            throw DbException.get(
96                    ErrorCode.TRIGGER_ALREADY_EXISTS_1,
97                    triggerName);
98        }
99        if ((typeMask & Trigger.SELECT) == Trigger.SELECT && rowBased) {
100            throw DbException.get(
101                    ErrorCode.TRIGGER_SELECT_AND_ROW_BASED_NOT_SUPPORTED,
102                    triggerName);
103        }
104        int id = getObjectId();
105        Table table = getSchema().getTableOrView(session, tableName);
106        TriggerObject trigger = new TriggerObject(getSchema(), id, triggerName, table);
107        trigger.setInsteadOf(insteadOf);
108        trigger.setBefore(before);
109        trigger.setNoWait(noWait);
110        trigger.setQueueSize(queueSize);
111        trigger.setRowBased(rowBased);
112        trigger.setTypeMask(typeMask);
113        trigger.setOnRollback(onRollback);
114        if (this.triggerClassName != null) {
115            trigger.setTriggerClassName(triggerClassName, force);
116        } else {
117            trigger.setTriggerSource(triggerSource, force);
118        }
119        db.addSchemaObject(session, trigger);
120        table.addTrigger(trigger);
121        return 0;
122    }
123 
124    public void setForce(boolean force) {
125        this.force = force;
126    }
127 
128    public void setOnRollback(boolean onRollback) {
129        this.onRollback = onRollback;
130    }
131 
132    @Override
133    public int getType() {
134        return CommandInterface.CREATE_TRIGGER;
135    }
136 
137}

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