1bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount/*
2bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount * Copyright (C) 2016 The Android Open Source Project
3bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount *
4bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount * Licensed under the Apache License, Version 2.0 (the "License");
5bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount * you may not use this file except in compliance with the License.
6bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount * You may obtain a copy of the License at
7bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount *
8bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount *      http://www.apache.org/licenses/LICENSE-2.0
9bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount *
10bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount * Unless required by applicable law or agreed to in writing, software
11bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount * distributed under the License is distributed on an "AS IS" BASIS,
12bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount * See the License for the specific language governing permissions and
14bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount * limitations under the License.
15bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount */
16bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount
17bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mountpackage android.databinding.tool.reflection;
18bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount
19bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mountimport java.util.Map;
20bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount
21bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount/**
22bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount * A class that can be used by ModelAnalyzer without any backing model. This is used
23bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount * for fields on ViewDataBinding subclasses that haven't been generated yet.
24bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount *
25bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount * @see ModelAnalyzer#injectViewDataBinding(String, Map, Map)
26bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount */
2711df39c91611b9ff2d7c87a9a9829251a015bccfGeorge Mountpublic class InjectedField extends ModelField {
28bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount    private final String mType;
29bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount    private final String mName;
30bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount
3111df39c91611b9ff2d7c87a9a9829251a015bccfGeorge Mount    public InjectedField(String name, String type) {
32bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount        mName = name;
33bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount        mType = type;
34bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount    }
35bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount
36bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount    @Override
37bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount    public boolean isBindable() {
38bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount        return false;
39bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount    }
40bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount
41bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount    @Override
42bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount    public String getName() {
43bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount        return mName;
44bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount    }
45bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount
46bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount    @Override
47bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount    public boolean isPublic() {
48bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount        return true;
49bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount    }
50bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount
51bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount    @Override
52bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount    public boolean isStatic() {
53bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount        return false;
54bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount    }
55bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount
56bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount    @Override
57bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount    public boolean isFinal() {
58bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount        return true;
59bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount    }
60bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount
61bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount    @Override
62bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount    public ModelClass getFieldType() {
63bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount        return ModelAnalyzer.getInstance().findClass(mType, null);
64bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount    }
65bb4a033fcd5cd20e5be46ef8ead442dc7db2454dGeorge Mount}
66