1683012de2a3a28358e848f8b145d462eb8b322baFederico Tomassetti/*
2683012de2a3a28358e848f8b145d462eb8b322baFederico Tomassetti * Copyright 2016 Federico Tomassetti
3683012de2a3a28358e848f8b145d462eb8b322baFederico Tomassetti *
4683012de2a3a28358e848f8b145d462eb8b322baFederico Tomassetti * Licensed under the Apache License, Version 2.0 (the "License");
5683012de2a3a28358e848f8b145d462eb8b322baFederico Tomassetti * you may not use this file except in compliance with the License.
6683012de2a3a28358e848f8b145d462eb8b322baFederico Tomassetti * You may obtain a copy of the License at
7683012de2a3a28358e848f8b145d462eb8b322baFederico Tomassetti *
8683012de2a3a28358e848f8b145d462eb8b322baFederico Tomassetti * http://www.apache.org/licenses/LICENSE-2.0
9683012de2a3a28358e848f8b145d462eb8b322baFederico Tomassetti *
10683012de2a3a28358e848f8b145d462eb8b322baFederico Tomassetti * Unless required by applicable law or agreed to in writing, software
11683012de2a3a28358e848f8b145d462eb8b322baFederico Tomassetti * distributed under the License is distributed on an "AS IS" BASIS,
12683012de2a3a28358e848f8b145d462eb8b322baFederico Tomassetti * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13683012de2a3a28358e848f8b145d462eb8b322baFederico Tomassetti * See the License for the specific language governing permissions and
14683012de2a3a28358e848f8b145d462eb8b322baFederico Tomassetti * limitations under the License.
15683012de2a3a28358e848f8b145d462eb8b322baFederico Tomassetti */
16683012de2a3a28358e848f8b145d462eb8b322baFederico Tomassetti
179c53c2cbc607ea694438ade8630be0c155a33162Federico Tomassettipackage com.github.javaparser.symbolsolver.model.resolution;
182568d9ebe91ceb0a13c98b16f99593cd22084efaFederico Tomassetti
19223fc7650a7a3b89b43d81160f40326aaeaa98f1Federico Tomassettiimport com.github.javaparser.resolution.declarations.ResolvedValueDeclaration;
20223fc7650a7a3b89b43d81160f40326aaeaa98f1Federico Tomassettiimport com.github.javaparser.resolution.types.ResolvedType;
212568d9ebe91ceb0a13c98b16f99593cd22084efaFederico Tomassetti
220a3e93449a018cb1652b44c302c8425f0582a09eFederico Tomassetti/**
23ecc1af475857cf3c62b3a07eb35ad080ed435deaFederico Tomassetti * Any type of value.
24ecc1af475857cf3c62b3a07eb35ad080ed435deaFederico Tomassetti *
250a3e93449a018cb1652b44c302c8425f0582a09eFederico Tomassetti * @author Federico Tomassetti
260a3e93449a018cb1652b44c302c8425f0582a09eFederico Tomassetti */
272568d9ebe91ceb0a13c98b16f99593cd22084efaFederico Tomassettipublic class Value {
28223fc7650a7a3b89b43d81160f40326aaeaa98f1Federico Tomassetti    private ResolvedType type;
292568d9ebe91ceb0a13c98b16f99593cd22084efaFederico Tomassetti    private String name;
302568d9ebe91ceb0a13c98b16f99593cd22084efaFederico Tomassetti
31223fc7650a7a3b89b43d81160f40326aaeaa98f1Federico Tomassetti    public Value(ResolvedType type, String name) {
3282eb44707b620803d424188a1eb8708fcaf093cbFederico Tomassetti        this.type = type;
332568d9ebe91ceb0a13c98b16f99593cd22084efaFederico Tomassetti        this.name = name;
342568d9ebe91ceb0a13c98b16f99593cd22084efaFederico Tomassetti    }
352568d9ebe91ceb0a13c98b16f99593cd22084efaFederico Tomassetti
3615ac26bcc19e8bed431a35edd3e3c176d7d56355Federico Tomassetti    /**
3715ac26bcc19e8bed431a35edd3e3c176d7d56355Federico Tomassetti     * Create a Value from a ValueDeclaration.
3815ac26bcc19e8bed431a35edd3e3c176d7d56355Federico Tomassetti     */
39223fc7650a7a3b89b43d81160f40326aaeaa98f1Federico Tomassetti    public static Value from(ResolvedValueDeclaration decl) {
40223fc7650a7a3b89b43d81160f40326aaeaa98f1Federico Tomassetti        ResolvedType type = decl.getType();
41ecc1af475857cf3c62b3a07eb35ad080ed435deaFederico Tomassetti        return new Value(type, decl.getName());
4249719b4acbe10e3714ceb4f7040acac34709f558Federico Tomassetti    }
4349719b4acbe10e3714ceb4f7040acac34709f558Federico Tomassetti
441ff41bb586ec86c0887c3267f323542cbc629402Federico Tomassetti    @Override
451ff41bb586ec86c0887c3267f323542cbc629402Federico Tomassetti    public String toString() {
461ff41bb586ec86c0887c3267f323542cbc629402Federico Tomassetti        return "Value{" +
471ff41bb586ec86c0887c3267f323542cbc629402Federico Tomassetti                "typeUsage=" + type +
481ff41bb586ec86c0887c3267f323542cbc629402Federico Tomassetti                ", name='" + name + '\'' +
491ff41bb586ec86c0887c3267f323542cbc629402Federico Tomassetti                '}';
501ff41bb586ec86c0887c3267f323542cbc629402Federico Tomassetti    }
511ff41bb586ec86c0887c3267f323542cbc629402Federico Tomassetti
522568d9ebe91ceb0a13c98b16f99593cd22084efaFederico Tomassetti    public String getName() {
532568d9ebe91ceb0a13c98b16f99593cd22084efaFederico Tomassetti        return name;
542568d9ebe91ceb0a13c98b16f99593cd22084efaFederico Tomassetti    }
552568d9ebe91ceb0a13c98b16f99593cd22084efaFederico Tomassetti
56223fc7650a7a3b89b43d81160f40326aaeaa98f1Federico Tomassetti    public ResolvedType getType() {
5782eb44707b620803d424188a1eb8708fcaf093cbFederico Tomassetti        return type;
582568d9ebe91ceb0a13c98b16f99593cd22084efaFederico Tomassetti    }
592568d9ebe91ceb0a13c98b16f99593cd22084efaFederico Tomassetti
602568d9ebe91ceb0a13c98b16f99593cd22084efaFederico Tomassetti}
61