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.Table; |
11 | |
12 | /** |
13 | * A persistent database setting. |
14 | */ |
15 | public class Setting extends DbObjectBase { |
16 | |
17 | private int intValue; |
18 | private String stringValue; |
19 | |
20 | public Setting(Database database, int id, String settingName) { |
21 | initDbObjectBase(database, id, settingName, Trace.SETTING); |
22 | } |
23 | |
24 | public void setIntValue(int value) { |
25 | intValue = value; |
26 | } |
27 | |
28 | public int getIntValue() { |
29 | return intValue; |
30 | } |
31 | |
32 | public void setStringValue(String value) { |
33 | stringValue = value; |
34 | } |
35 | |
36 | public String getStringValue() { |
37 | return stringValue; |
38 | } |
39 | |
40 | @Override |
41 | public String getCreateSQLForCopy(Table table, String quotedName) { |
42 | throw DbException.throwInternalError(); |
43 | } |
44 | |
45 | @Override |
46 | public String getDropSQL() { |
47 | return null; |
48 | } |
49 | |
50 | @Override |
51 | public String getCreateSQL() { |
52 | StringBuilder buff = new StringBuilder("SET "); |
53 | buff.append(getSQL()).append(' '); |
54 | if (stringValue != null) { |
55 | buff.append(stringValue); |
56 | } else { |
57 | buff.append(intValue); |
58 | } |
59 | return buff.toString(); |
60 | } |
61 | |
62 | @Override |
63 | public int getType() { |
64 | return DbObject.SETTING; |
65 | } |
66 | |
67 | @Override |
68 | public void removeChildrenAndResources(Session session) { |
69 | database.removeMeta(session, getId()); |
70 | invalidate(); |
71 | } |
72 | |
73 | @Override |
74 | public void checkRename() { |
75 | throw DbException.getUnsupportedException("RENAME"); |
76 | } |
77 | |
78 | } |