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 | */ |
6 | package org.h2.engine; |
7 | |
8 | import org.h2.message.DbException; |
9 | import org.h2.message.Trace; |
10 | import org.h2.table.Column; |
11 | import org.h2.table.Table; |
12 | |
13 | /** |
14 | * Represents a domain (user-defined data type). |
15 | */ |
16 | public class UserDataType extends DbObjectBase { |
17 | |
18 | private Column column; |
19 | |
20 | public UserDataType(Database database, int id, String name) { |
21 | initDbObjectBase(database, id, name, Trace.DATABASE); |
22 | } |
23 | |
24 | @Override |
25 | public String getCreateSQLForCopy(Table table, String quotedName) { |
26 | throw DbException.throwInternalError(); |
27 | } |
28 | |
29 | @Override |
30 | public String getDropSQL() { |
31 | return "DROP DOMAIN IF EXISTS " + getSQL(); |
32 | } |
33 | |
34 | @Override |
35 | public String getCreateSQL() { |
36 | return "CREATE DOMAIN " + getSQL() + " AS " + column.getCreateSQL(); |
37 | } |
38 | |
39 | public Column getColumn() { |
40 | return column; |
41 | } |
42 | |
43 | @Override |
44 | public int getType() { |
45 | return DbObject.USER_DATATYPE; |
46 | } |
47 | |
48 | @Override |
49 | public void removeChildrenAndResources(Session session) { |
50 | database.removeMeta(session, getId()); |
51 | } |
52 | |
53 | @Override |
54 | public void checkRename() { |
55 | // ok |
56 | } |
57 | |
58 | public void setColumn(Column column) { |
59 | this.column = column; |
60 | } |
61 | |
62 | } |