Callable.java revision fead9ca09b117136b35bc5bf137340a754f9eddd
1e6c6d3bf4fac3fa11c5780cfd3bc14cdb0caaea1George Mount/*
2e6c6d3bf4fac3fa11c5780cfd3bc14cdb0caaea1George Mount * Copyright (C) 2015 The Android Open Source Project
3e6c6d3bf4fac3fa11c5780cfd3bc14cdb0caaea1George Mount *
4e6c6d3bf4fac3fa11c5780cfd3bc14cdb0caaea1George Mount * Licensed under the Apache License, Version 2.0 (the "License");
5e6c6d3bf4fac3fa11c5780cfd3bc14cdb0caaea1George Mount * you may not use this file except in compliance with the License.
6e6c6d3bf4fac3fa11c5780cfd3bc14cdb0caaea1George Mount * You may obtain a copy of the License at
7e6c6d3bf4fac3fa11c5780cfd3bc14cdb0caaea1George Mount *
8e6c6d3bf4fac3fa11c5780cfd3bc14cdb0caaea1George Mount *      http://www.apache.org/licenses/LICENSE-2.0
9e6c6d3bf4fac3fa11c5780cfd3bc14cdb0caaea1George Mount *
10e6c6d3bf4fac3fa11c5780cfd3bc14cdb0caaea1George Mount * Unless required by applicable law or agreed to in writing, software
11e6c6d3bf4fac3fa11c5780cfd3bc14cdb0caaea1George Mount * distributed under the License is distributed on an "AS IS" BASIS,
12e6c6d3bf4fac3fa11c5780cfd3bc14cdb0caaea1George Mount * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13e6c6d3bf4fac3fa11c5780cfd3bc14cdb0caaea1George Mount * See the License for the specific language governing permissions and
14e6c6d3bf4fac3fa11c5780cfd3bc14cdb0caaea1George Mount * limitations under the License.
15e6c6d3bf4fac3fa11c5780cfd3bc14cdb0caaea1George Mount */
16fead9ca09b117136b35bc5bf137340a754f9edddGeorge Mountpackage android.databinding.tool.reflection;
17e6c6d3bf4fac3fa11c5780cfd3bc14cdb0caaea1George Mount
18e6c6d3bf4fac3fa11c5780cfd3bc14cdb0caaea1George Mountpublic class Callable {
19e6c6d3bf4fac3fa11c5780cfd3bc14cdb0caaea1George Mount
20e6c6d3bf4fac3fa11c5780cfd3bc14cdb0caaea1George Mount    public static enum Type {
21e6c6d3bf4fac3fa11c5780cfd3bc14cdb0caaea1George Mount        METHOD,
22e6c6d3bf4fac3fa11c5780cfd3bc14cdb0caaea1George Mount        FIELD
23e6c6d3bf4fac3fa11c5780cfd3bc14cdb0caaea1George Mount    }
24e6c6d3bf4fac3fa11c5780cfd3bc14cdb0caaea1George Mount
25e6c6d3bf4fac3fa11c5780cfd3bc14cdb0caaea1George Mount    public final Type type;
26e6c6d3bf4fac3fa11c5780cfd3bc14cdb0caaea1George Mount
27e6c6d3bf4fac3fa11c5780cfd3bc14cdb0caaea1George Mount    public final String name;
28e6c6d3bf4fac3fa11c5780cfd3bc14cdb0caaea1George Mount
2979fc7f3727815ab35bb1bb2e060bfb7db3176eedGeorge Mount    public final ModelClass resolvedType;
30e6c6d3bf4fac3fa11c5780cfd3bc14cdb0caaea1George Mount
31e6c6d3bf4fac3fa11c5780cfd3bc14cdb0caaea1George Mount    public final boolean isDynamic;
32e6c6d3bf4fac3fa11c5780cfd3bc14cdb0caaea1George Mount
33e6c6d3bf4fac3fa11c5780cfd3bc14cdb0caaea1George Mount    public final boolean canBeInvalidated;
34e6c6d3bf4fac3fa11c5780cfd3bc14cdb0caaea1George Mount
3579fc7f3727815ab35bb1bb2e060bfb7db3176eedGeorge Mount    public Callable(Type type, String name, ModelClass resolvedType, boolean isDynamic,
36e6c6d3bf4fac3fa11c5780cfd3bc14cdb0caaea1George Mount            boolean canBeInvalidated) {
37e6c6d3bf4fac3fa11c5780cfd3bc14cdb0caaea1George Mount        this.type = type;
38e6c6d3bf4fac3fa11c5780cfd3bc14cdb0caaea1George Mount        this.name = name;
39e6c6d3bf4fac3fa11c5780cfd3bc14cdb0caaea1George Mount        this.resolvedType = resolvedType;
40e6c6d3bf4fac3fa11c5780cfd3bc14cdb0caaea1George Mount        this.isDynamic = isDynamic;
41e6c6d3bf4fac3fa11c5780cfd3bc14cdb0caaea1George Mount        this.canBeInvalidated = canBeInvalidated;
42e6c6d3bf4fac3fa11c5780cfd3bc14cdb0caaea1George Mount    }
43e6c6d3bf4fac3fa11c5780cfd3bc14cdb0caaea1George Mount
44e6c6d3bf4fac3fa11c5780cfd3bc14cdb0caaea1George Mount    public String getTypeCodeName() {
45e6c6d3bf4fac3fa11c5780cfd3bc14cdb0caaea1George Mount        return resolvedType.toJavaCode();
46e6c6d3bf4fac3fa11c5780cfd3bc14cdb0caaea1George Mount    }
47e6c6d3bf4fac3fa11c5780cfd3bc14cdb0caaea1George Mount
48e6c6d3bf4fac3fa11c5780cfd3bc14cdb0caaea1George Mount    @Override
49e6c6d3bf4fac3fa11c5780cfd3bc14cdb0caaea1George Mount    public String toString() {
50e6c6d3bf4fac3fa11c5780cfd3bc14cdb0caaea1George Mount        return "Callable{" +
51e6c6d3bf4fac3fa11c5780cfd3bc14cdb0caaea1George Mount                "type=" + type +
52e6c6d3bf4fac3fa11c5780cfd3bc14cdb0caaea1George Mount                ", name='" + name + '\'' +
53e6c6d3bf4fac3fa11c5780cfd3bc14cdb0caaea1George Mount                ", resolvedType=" + resolvedType +
54e6c6d3bf4fac3fa11c5780cfd3bc14cdb0caaea1George Mount                ", isDynamic=" + isDynamic +
55e6c6d3bf4fac3fa11c5780cfd3bc14cdb0caaea1George Mount                ", canBeInvalidated=" + canBeInvalidated +
56e6c6d3bf4fac3fa11c5780cfd3bc14cdb0caaea1George Mount                '}';
57e6c6d3bf4fac3fa11c5780cfd3bc14cdb0caaea1George Mount    }
58e6c6d3bf4fac3fa11c5780cfd3bc14cdb0caaea1George Mount}
59