1937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar/*
2937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar * Copyright (C) 2016 The Android Open Source Project
3937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar *
4937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar * Licensed under the Apache License, Version 2.0 (the "License");
5937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar * you may not use this file except in compliance with the License.
6937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar * You may obtain a copy of the License at
7937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar *
8937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar *      http://www.apache.org/licenses/LICENSE-2.0
9937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar *
10937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar * Unless required by applicable law or agreed to in writing, software
11937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar * distributed under the License is distributed on an "AS IS" BASIS,
12937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar * See the License for the specific language governing permissions and
14937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar * limitations under the License.
15937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar */
16937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar
1764db0cc15b78b62a1d44a70fc8b4552e660d952cYigit Boyarpackage android.arch.persistence.db.framework;
18937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar
1964db0cc15b78b62a1d44a70fc8b4552e660d952cYigit Boyarimport android.arch.persistence.db.SupportSQLiteStatement;
20937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyarimport android.database.sqlite.SQLiteStatement;
21937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar
22937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar/**
23937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar * Delegates all calls to a {@link SQLiteStatement}.
24937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar */
25e185ed6ba937bdc218104c18d2615e1ce524adb7Yigit Boyarclass FrameworkSQLiteStatement implements SupportSQLiteStatement {
26937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar    private final SQLiteStatement mDelegate;
27937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar
28937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar    /**
29937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar     * Creates a wrapper around a framework {@link SQLiteStatement}.
3064db0cc15b78b62a1d44a70fc8b4552e660d952cYigit Boyar     *
31937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar     * @param delegate The SQLiteStatement to delegate calls to.
32937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar     */
338fe7624039b42a6ae9477334ac86a12267113a3bYigit Boyar    FrameworkSQLiteStatement(SQLiteStatement delegate) {
34937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar        mDelegate = delegate;
35937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar    }
36937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar
37937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar    @Override
38937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar    public void bindNull(int index) {
39937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar        mDelegate.bindNull(index);
40937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar    }
41937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar
42937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar    @Override
43937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar    public void bindLong(int index, long value) {
44937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar        mDelegate.bindLong(index, value);
45937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar    }
46937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar
47937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar    @Override
48937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar    public void bindDouble(int index, double value) {
49937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar        mDelegate.bindDouble(index, value);
50937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar    }
51937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar
52937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar    @Override
53937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar    public void bindString(int index, String value) {
54937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar        mDelegate.bindString(index, value);
55937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar    }
56937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar
57937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar    @Override
58937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar    public void bindBlob(int index, byte[] value) {
59937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar        mDelegate.bindBlob(index, value);
60937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar    }
61937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar
62937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar    @Override
63937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar    public void clearBindings() {
64937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar        mDelegate.clearBindings();
65937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar    }
66937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar
67937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar    @Override
68937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar    public void execute() {
69937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar        mDelegate.execute();
70937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar    }
71937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar
72937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar    @Override
73937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar    public int executeUpdateDelete() {
74937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar        return mDelegate.executeUpdateDelete();
75937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar    }
76937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar
77937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar    @Override
78937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar    public long executeInsert() {
79937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar        return mDelegate.executeInsert();
80937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar    }
81937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar
82937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar    @Override
83937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar    public long simpleQueryForLong() {
84937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar        return mDelegate.simpleQueryForLong();
85937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar    }
86937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar
87937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar    @Override
88937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar    public String simpleQueryForString() {
89937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar        return mDelegate.simpleQueryForString();
90937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar    }
910d1b036f6868844705cd3b57e96d373edd09b3d5Yigit Boyar
920d1b036f6868844705cd3b57e96d373edd09b3d5Yigit Boyar    @Override
930d1b036f6868844705cd3b57e96d373edd09b3d5Yigit Boyar    public void close() throws Exception {
940d1b036f6868844705cd3b57e96d373edd09b3d5Yigit Boyar        mDelegate.close();
950d1b036f6868844705cd3b57e96d373edd09b3d5Yigit Boyar    }
96937a77cef9380b6e03e9e3177a563ddcc4fd1fb5Yigit Boyar}
97