Package org.sonar.java.resolve
Class ClassJavaType
- java.lang.Object
-
- org.sonar.java.resolve.JavaType
-
- org.sonar.java.resolve.ClassJavaType
-
- All Implemented Interfaces:
Type
- Direct Known Subclasses:
IntersectionType,ParametrizedTypeJavaType,UnknownType
public class ClassJavaType extends JavaType
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.sonar.plugins.java.api.semantic.Type
Type.ArrayType, Type.Primitives
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedClassJavaType(int tag, JavaSymbol.TypeJavaSymbol symbol)ClassJavaType(JavaSymbol.TypeJavaSymbol symbol)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Set<ClassJavaType>directSuperTypes()ClassJavaTypegetSuperType()booleanis(String fullyQualifiedName)Check whether a type is the one designed by the fully qualified name.booleanisSubtypeOf(String fullyQualifiedName)Check whether a type is a subtype of the one designed by the fully qualified name.booleanisSubtypeOf(Type superType)Check whether a type is a subtype of another.protected ClassJavaTypesubstitutedType(ClassJavaType type)Set<ClassJavaType>superTypes()-
Methods inherited from class org.sonar.java.resolve.JavaType
erasure, fullyQualifiedName, getSymbol, isArray, isClass, isNumerical, isParameterized, isPrimitive, isPrimitive, isPrimitiveWrapper, isTagged, isUnknown, isVoid, name, primitiveType, primitiveWrapperType, symbol, toString
-
-
-
-
Constructor Detail
-
ClassJavaType
public ClassJavaType(JavaSymbol.TypeJavaSymbol symbol)
-
ClassJavaType
protected ClassJavaType(int tag, JavaSymbol.TypeJavaSymbol symbol)
-
-
Method Detail
-
is
public boolean is(String fullyQualifiedName)
Description copied from interface:TypeCheck whether a type is the one designed by the fully qualified name.Type type; type.is("int"); type.is("int[]"); type.is("java.lang.String[]"); type.is("java.lang.Object");
-
isSubtypeOf
public boolean isSubtypeOf(String fullyQualifiedName)
Description copied from interface:TypeCheck whether a type is a subtype of the one designed by the fully qualified name.This method will consider implemented interfaces as well as superclasses.
Type type; type.isSubtypeOf("Object[]"); type.isSubtypeOf("org.mypackage.MyClass"); type.isSubtypeOf("org.mypackage.MyInterface"); type.isSubtypeOf("java.lang.Object");- Specified by:
isSubtypeOfin interfaceType- Overrides:
isSubtypeOfin classJavaType- Parameters:
fullyQualifiedName- fully qualified name to check in the type hierarchy. Use "[]" for arrays.- Returns:
- true if the type is the one passed in parameter or have this type in its hierarchy. false otherwise.
-
isSubtypeOf
public boolean isSubtypeOf(Type superType)
Description copied from interface:TypeCheck whether a type is a subtype of another.This method will consider implemented interfaces as well as superclasses.
Type type, myOtherType; type.isSubtypeOf(myOtherType);
- Specified by:
isSubtypeOfin interfaceType- Overrides:
isSubtypeOfin classJavaType- Parameters:
superType- instance of a potential superType.- Returns:
- true if types are equivalent or if the one passed in parameter is in the hierarchy. false otherwise.
-
directSuperTypes
public Set<ClassJavaType> directSuperTypes()
- Overrides:
directSuperTypesin classJavaType
-
getSuperType
@CheckForNull public ClassJavaType getSuperType()
- Overrides:
getSuperTypein classJavaType
-
substitutedType
protected ClassJavaType substitutedType(ClassJavaType type)
-
superTypes
public Set<ClassJavaType> superTypes()
-
-