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.result; |
7 | |
8 | import org.h2.engine.Constants; |
9 | import org.h2.value.Value; |
10 | |
11 | /** |
12 | * A simple row that contains data for only one column. |
13 | */ |
14 | public class SimpleRowValue implements SearchRow { |
15 | |
16 | private long key; |
17 | private int version; |
18 | private int index; |
19 | private final int virtualColumnCount; |
20 | private Value data; |
21 | |
22 | public SimpleRowValue(int columnCount) { |
23 | this.virtualColumnCount = columnCount; |
24 | } |
25 | |
26 | @Override |
27 | public void setKeyAndVersion(SearchRow row) { |
28 | key = row.getKey(); |
29 | version = row.getVersion(); |
30 | } |
31 | |
32 | @Override |
33 | public int getVersion() { |
34 | return version; |
35 | } |
36 | |
37 | @Override |
38 | public int getColumnCount() { |
39 | return virtualColumnCount; |
40 | } |
41 | |
42 | @Override |
43 | public long getKey() { |
44 | return key; |
45 | } |
46 | |
47 | @Override |
48 | public void setKey(long key) { |
49 | this.key = key; |
50 | } |
51 | |
52 | @Override |
53 | public Value getValue(int idx) { |
54 | return idx == index ? data : null; |
55 | } |
56 | |
57 | @Override |
58 | public void setValue(int idx, Value v) { |
59 | index = idx; |
60 | data = v; |
61 | } |
62 | |
63 | @Override |
64 | public String toString() { |
65 | return "( /* " + key + " */ " + (data == null ? |
66 | "null" : data.getTraceSQL()) + " )"; |
67 | } |
68 | |
69 | @Override |
70 | public int getMemory() { |
71 | return Constants.MEMORY_OBJECT + (data == null ? 0 : data.getMemory()); |
72 | } |
73 | |
74 | } |