01: // This file is part of KeY - Integrated Deductive Software Design
02: // Copyright (C) 2001-2007 Universitaet Karlsruhe, Germany
03: // Universitaet Koblenz-Landau, Germany
04: // Chalmers University of Technology, Sweden
05: //
06: // The KeY system is protected by the GNU General Public License.
07: // See LICENSE.TXT for details.
08: //
09: //
10:
11: package de.uka.ilkd.key.java.reference;
12:
13: import de.uka.ilkd.key.java.NonTerminalProgramElement;
14: import de.uka.ilkd.key.java.SourceElement;
15: import de.uka.ilkd.key.java.abstraction.KeYJavaType;
16: import de.uka.ilkd.key.logic.ProgramElementName;
17:
18: /**
19: * TypeReferences reference {@link recoder.abstraction.Type}s by name.
20: * A TypeReference can refer to an outer or inner type and hence can also
21: * be a {@link MemberReference}, but does not have to.
22: * A TypeReference can also occur as part of a reference path and
23: * as a prefix for types, too. As a possible suffix for types, it can
24: * have other TypeReferences as a prefix, playing the role of a
25: * {@link TypeReferenceContainer}.
26: */
27:
28: public interface TypeReference extends TypeReferenceInfix,
29: TypeReferenceContainer, PackageReferenceContainer,
30: MemberReference, NonTerminalProgramElement, SourceElement {
31:
32: String getName();
33:
34: ProgramElementName getProgramElementName();
35:
36: ReferencePrefix getReferencePrefix();
37:
38: int getDimensions();
39:
40: KeYJavaType getKeYJavaType();
41:
42: }
|