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.table; |
7 | |
8 | import org.h2.command.dml.Select; |
9 | import org.h2.expression.Expression; |
10 | import org.h2.expression.ExpressionColumn; |
11 | import org.h2.value.Value; |
12 | |
13 | /** |
14 | * The single column resolver is like a table with exactly one row. |
15 | * It is used to parse a simple one-column check constraint. |
16 | */ |
17 | public class SingleColumnResolver implements ColumnResolver { |
18 | |
19 | private final Column column; |
20 | private Value value; |
21 | |
22 | SingleColumnResolver(Column column) { |
23 | this.column = column; |
24 | } |
25 | |
26 | @Override |
27 | public String getTableAlias() { |
28 | return null; |
29 | } |
30 | |
31 | void setValue(Value value) { |
32 | this.value = value; |
33 | } |
34 | |
35 | @Override |
36 | public Value getValue(Column col) { |
37 | return value; |
38 | } |
39 | |
40 | @Override |
41 | public Column[] getColumns() { |
42 | return new Column[] { column }; |
43 | } |
44 | |
45 | @Override |
46 | public String getSchemaName() { |
47 | return null; |
48 | } |
49 | |
50 | @Override |
51 | public TableFilter getTableFilter() { |
52 | return null; |
53 | } |
54 | |
55 | @Override |
56 | public Select getSelect() { |
57 | return null; |
58 | } |
59 | |
60 | @Override |
61 | public Column[] getSystemColumns() { |
62 | return null; |
63 | } |
64 | |
65 | @Override |
66 | public Column getRowIdColumn() { |
67 | return null; |
68 | } |
69 | |
70 | @Override |
71 | public Expression optimize(ExpressionColumn expressionColumn, Column col) { |
72 | return expressionColumn; |
73 | } |
74 | |
75 | } |