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

COVERAGE SUMMARY FOR SOURCE FILE [TableBase.java]

nameclass, %method, %block, %line, %
TableBase.java100% (1/1)100% (4/4)84%  (213/254)84%  (47/56)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class TableBase100% (1/1)100% (4/4)84%  (213/254)84%  (47/56)
getCreateSQL (): String 100% (1/1)80%  (152/189)81%  (35/43)
TableBase (CreateTableData): void 100% (1/1)92%  (46/50)91%  (10/11)
getDropSQL (): String 100% (1/1)100% (12/12)100% (1/1)
isGlobalTemporary (): boolean 100% (1/1)100% (3/3)100% (1/1)

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.table;
7 
8import java.util.ArrayList;
9import java.util.List;
10import org.h2.command.ddl.CreateTableData;
11import org.h2.engine.Database;
12import org.h2.engine.DbSettings;
13import org.h2.mvstore.db.MVTableEngine;
14import org.h2.util.StatementBuilder;
15import org.h2.util.StringUtils;
16 
17/**
18 * The base class of a regular table, or a user defined table.
19 *
20 * @author Thomas Mueller
21 * @author Sergi Vladykin
22 */
23public abstract class TableBase extends Table {
24 
25    /**
26     * The table engine used (null for regular tables).
27     */
28    private final String tableEngine;
29    /** Provided table parameters */
30    private List<String> tableEngineParams = new ArrayList<String>();
31 
32    private final boolean globalTemporary;
33 
34    public TableBase(CreateTableData data) {
35        super(data.schema, data.id, data.tableName,
36                data.persistIndexes, data.persistData);
37        this.tableEngine = data.tableEngine;
38        this.globalTemporary = data.globalTemporary;
39        if (data.tableEngineParams != null) {
40            this.tableEngineParams = data.tableEngineParams;
41        }
42        setTemporary(data.temporary);
43        Column[] cols = new Column[data.columns.size()];
44        data.columns.toArray(cols);
45        setColumns(cols);
46    }
47 
48    @Override
49    public String getDropSQL() {
50        return "DROP TABLE IF EXISTS " + getSQL() + " CASCADE";
51    }
52 
53    @Override
54    public String getCreateSQL() {
55        Database db = getDatabase();
56        if (db == null) {
57            // closed
58            return null;
59        }
60        StatementBuilder buff = new StatementBuilder("CREATE ");
61        if (isTemporary()) {
62            if (isGlobalTemporary()) {
63                buff.append("GLOBAL ");
64            } else {
65                buff.append("LOCAL ");
66            }
67            buff.append("TEMPORARY ");
68        } else if (isPersistIndexes()) {
69            buff.append("CACHED ");
70        } else {
71            buff.append("MEMORY ");
72        }
73        buff.append("TABLE ");
74        if (isHidden) {
75            buff.append("IF NOT EXISTS ");
76        }
77        buff.append(getSQL());
78        if (comment != null) {
79            buff.append(" COMMENT ").append(StringUtils.quoteStringSQL(comment));
80        }
81        buff.append("(\n    ");
82        for (Column column : columns) {
83            buff.appendExceptFirst(",\n    ");
84            buff.append(column.getCreateSQL());
85        }
86        buff.append("\n)");
87        if (tableEngine != null) {
88            DbSettings s = db.getSettings();
89            String d = s.defaultTableEngine;
90            if (d == null && s.mvStore) {
91                d = MVTableEngine.class.getName();
92            }
93            if (d == null || !tableEngine.endsWith(d)) {
94                buff.append("\nENGINE ");
95                buff.append(StringUtils.quoteIdentifier(tableEngine));
96            }
97        }
98        if (!tableEngineParams.isEmpty()) {
99            buff.append("\nWITH ");
100            buff.resetCount();
101            for (String parameter : tableEngineParams) {
102                buff.appendExceptFirst(", ");
103                buff.append(StringUtils.quoteIdentifier(parameter));
104            }
105        }
106        if (!isPersistIndexes() && !isPersistData()) {
107            buff.append("\nNOT PERSISTENT");
108        }
109        if (isHidden) {
110            buff.append("\nHIDDEN");
111        }
112        return buff.toString();
113    }
114 
115    @Override
116    public boolean isGlobalTemporary() {
117        return globalTemporary;
118    }
119 
120}

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