Value.java revision 82eb44707b620803d424188a1eb8708fcaf093cb
14a18b1ee8ed716d6e32e190f728f1eee57148872Federico Tomassettipackage me.tomassetti.symbolsolver.model.resolution;
22568d9ebe91ceb0a13c98b16f99593cd22084efaFederico Tomassetti
32568d9ebe91ceb0a13c98b16f99593cd22084efaFederico Tomassettiimport me.tomassetti.symbolsolver.model.declarations.ValueDeclaration;
482eb44707b620803d424188a1eb8708fcaf093cbFederico Tomassettiimport me.tomassetti.symbolsolver.model.typesystem.Type;
52568d9ebe91ceb0a13c98b16f99593cd22084efaFederico Tomassetti
60a3e93449a018cb1652b44c302c8425f0582a09eFederico Tomassetti/**
70a3e93449a018cb1652b44c302c8425f0582a09eFederico Tomassetti * @author Federico Tomassetti
80a3e93449a018cb1652b44c302c8425f0582a09eFederico Tomassetti */
92568d9ebe91ceb0a13c98b16f99593cd22084efaFederico Tomassettipublic class Value {
109558e8fe683e293d2187ae07e2dd128cfe292daeFederico Tomassetti    @Override
119558e8fe683e293d2187ae07e2dd128cfe292daeFederico Tomassetti    public String toString() {
129558e8fe683e293d2187ae07e2dd128cfe292daeFederico Tomassetti        return "Value{" +
1382eb44707b620803d424188a1eb8708fcaf093cbFederico Tomassetti                "typeUsage=" + type +
149558e8fe683e293d2187ae07e2dd128cfe292daeFederico Tomassetti                ", name='" + name + '\'' +
159558e8fe683e293d2187ae07e2dd128cfe292daeFederico Tomassetti                ", field=" + field +
169558e8fe683e293d2187ae07e2dd128cfe292daeFederico Tomassetti                '}';
179558e8fe683e293d2187ae07e2dd128cfe292daeFederico Tomassetti    }
182568d9ebe91ceb0a13c98b16f99593cd22084efaFederico Tomassetti
1982eb44707b620803d424188a1eb8708fcaf093cbFederico Tomassetti    private Type type;
202568d9ebe91ceb0a13c98b16f99593cd22084efaFederico Tomassetti    private String name;
212568d9ebe91ceb0a13c98b16f99593cd22084efaFederico Tomassetti    private boolean field;
222568d9ebe91ceb0a13c98b16f99593cd22084efaFederico Tomassetti
2382eb44707b620803d424188a1eb8708fcaf093cbFederico Tomassetti    public Value(Type type, String name, boolean field) {
2482eb44707b620803d424188a1eb8708fcaf093cbFederico Tomassetti        this.type = type;
252568d9ebe91ceb0a13c98b16f99593cd22084efaFederico Tomassetti        this.name = name;
262568d9ebe91ceb0a13c98b16f99593cd22084efaFederico Tomassetti        this.field = field;
272568d9ebe91ceb0a13c98b16f99593cd22084efaFederico Tomassetti    }
282568d9ebe91ceb0a13c98b16f99593cd22084efaFederico Tomassetti
2949719b4acbe10e3714ceb4f7040acac34709f558Federico Tomassetti    public static Value from(ValueDeclaration decl, TypeSolver typeSolver) {
3082eb44707b620803d424188a1eb8708fcaf093cbFederico Tomassetti        Type type = decl.getType();
3182eb44707b620803d424188a1eb8708fcaf093cbFederico Tomassetti        return new Value(type, decl.getName(), decl.isField());
3249719b4acbe10e3714ceb4f7040acac34709f558Federico Tomassetti    }
3349719b4acbe10e3714ceb4f7040acac34709f558Federico Tomassetti
342568d9ebe91ceb0a13c98b16f99593cd22084efaFederico Tomassetti    public String getName() {
352568d9ebe91ceb0a13c98b16f99593cd22084efaFederico Tomassetti        return name;
362568d9ebe91ceb0a13c98b16f99593cd22084efaFederico Tomassetti    }
372568d9ebe91ceb0a13c98b16f99593cd22084efaFederico Tomassetti
382568d9ebe91ceb0a13c98b16f99593cd22084efaFederico Tomassetti    public boolean isField() {
392568d9ebe91ceb0a13c98b16f99593cd22084efaFederico Tomassetti        return field;
402568d9ebe91ceb0a13c98b16f99593cd22084efaFederico Tomassetti    }
412568d9ebe91ceb0a13c98b16f99593cd22084efaFederico Tomassetti
4282eb44707b620803d424188a1eb8708fcaf093cbFederico Tomassetti    public Type getUsage() {
4382eb44707b620803d424188a1eb8708fcaf093cbFederico Tomassetti        return type;
442568d9ebe91ceb0a13c98b16f99593cd22084efaFederico Tomassetti    }
452568d9ebe91ceb0a13c98b16f99593cd22084efaFederico Tomassetti
462568d9ebe91ceb0a13c98b16f99593cd22084efaFederico Tomassetti}
47