ua.gradsoft.javachecker.models
Class JavaResolver

java.lang.Object
  extended by ua.gradsoft.javachecker.models.JavaResolver

public class JavaResolver
extends java.lang.Object

Static class

Author:
Ruslan Shevchenko

Constructor Summary
JavaResolver()
           
 
Method Summary
static boolean match(JavaTypeModel pattern, JavaTypeModel x, MethodMatchingConversions conversions, boolean debug)
           
static boolean match(java.util.List<JavaFormalParameterModel> patterns, java.util.List<JavaTypeModel> xs, MethodMatchingConversions conversions, boolean forseVarArgs, boolean debug)
          match over list and feel substitution if needed.
static boolean match1(JavaTypeModel pattern, JavaTypeModel x, MethodMatchingConversions conversions, boolean topDebug)
          match patern type with x and fill substitution if needed after aplying boxing/unboxing conventions.
static JavaTypeModel resolveExpressionType(Term t, JavaPlaceContext ctx)
          resolve type of Java expression.
static JavaFormalParameterModel resolveFormalParameterByName(java.lang.String name, JavaTopLevelBlockOwnerModel ownerModel)
           
static JavaTypeModel resolveJavaIoSerializable()
           
static JavaTypeModel resolveJavaLangAnnotationAnnotation()
           
static JavaTypeModel resolveJavaLangCloneable()
           
static JavaTypeModel resolveJavaLangObject()
           
static JavaMemberVariableModel resolveMemberVariableByName(java.lang.String name, JavaTypeModel where)
          resolve member variable by name in scope of class definition (outside block)
static JavaMethodModel resolveMethod(java.lang.String methodName, java.util.List<JavaTypeModel> argumentTypes, JavaTypeArgumentsSubstitution substitution, JavaTypeModel where)
          resolve method call to where (in where and all superclasses) and build substitutuion of method type arguments if needed.
static JavaPackageModel resolvePackage(java.lang.String packageName)
           
static JavaTypeModel resolveTypeModelByFullClassName(java.lang.String name)
           
static JavaTypeModel resolveTypeModelByName(java.lang.String name, JavaPlaceContext ctx)
          resolve type of Java expression and return one if found, otherwise throw EntityNotFoundException
static JavaTypeModel resolveTypeModelByName(java.lang.String name, JavaTypeModel where, java.util.List<JavaTypeVariableAbstractModel> typeVariables, java.lang.Iterable<JavaTypeModel> localTypes)
           
static JavaTypeModel resolveTypeModelByName(java.lang.String name, JavaUnitModel um, JavaPackageModel pm, java.util.List<JavaTypeVariableAbstractModel> typeVariables)
          resolve type outside parent type context or throw EntityNotFoundExceptionis if type is not avaible
static JavaTypeModel resolveTypeModelFromPackage(java.lang.String classShortName, java.lang.String packageName)
           
static JavaTypeModel resolveTypeModelWithFullPackage(Term t, JavaTypeModel where, java.util.List<JavaTypeVariableAbstractModel> typeVariables)
           
static JavaTypeModel resolveTypeTerm(Term t, JavaPlaceContext ctx)
           
static JavaTypeModel resolveTypeToModel(Term t, JavaStatementModel where)
           
static JavaTypeModel resolveTypeToModel(Term t, JavaTypeModel where)
           
static JavaTypeModel resolveTypeToModel(Term t, JavaTypeModel where, java.util.List<JavaTypeVariableAbstractModel> typeVariables)
           
static JavaTypeModel resolveTypeToModel(Term t, JavaUnitModel unitModel, JavaPackageModel packageModel, JavaTypeModel where, java.util.List<JavaTypeVariableAbstractModel> typeVariables, java.lang.Iterable<JavaTypeModel> localTypes)
           
static JavaVariableModel resolveVariableByName(java.lang.String name, JavaPlaceContext ctx)
          resolve variavle name in given context or throw EntityNotFoundException is not found
static JavaVariableModel resolveVariableByName(java.lang.String name, JavaStatementModel statement)
           
static JavaVariableModel resolveVariableByName(java.lang.String name, JavaTypeModel where)
          resolve any variable outside scope definition.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JavaResolver

public JavaResolver()
Method Detail

resolveTypeToModel

public static JavaTypeModel resolveTypeToModel(Term t,
                                               JavaTypeModel where)
                                        throws EntityNotFoundException,
                                               TermWareException
Throws:
EntityNotFoundException
TermWareException

resolveTypeToModel

public static JavaTypeModel resolveTypeToModel(Term t,
                                               JavaTypeModel where,
                                               java.util.List<JavaTypeVariableAbstractModel> typeVariables)
                                        throws EntityNotFoundException,
                                               TermWareException
Throws:
EntityNotFoundException
TermWareException

resolveTypeToModel

public static JavaTypeModel resolveTypeToModel(Term t,
                                               JavaStatementModel where)
                                        throws EntityNotFoundException,
                                               TermWareException
Throws:
EntityNotFoundException
TermWareException

resolveTypeToModel

public static JavaTypeModel resolveTypeToModel(Term t,
                                               JavaUnitModel unitModel,
                                               JavaPackageModel packageModel,
                                               JavaTypeModel where,
                                               java.util.List<JavaTypeVariableAbstractModel> typeVariables,
                                               java.lang.Iterable<JavaTypeModel> localTypes)
                                        throws EntityNotFoundException,
                                               TermWareException
Throws:
EntityNotFoundException
TermWareException

resolveTypeModelByName

public static JavaTypeModel resolveTypeModelByName(java.lang.String name,
                                                   JavaTypeModel where,
                                                   java.util.List<JavaTypeVariableAbstractModel> typeVariables,
                                                   java.lang.Iterable<JavaTypeModel> localTypes)
                                            throws EntityNotFoundException,
                                                   TermWareException
Throws:
EntityNotFoundException
TermWareException

resolveTypeModelByName

public static JavaTypeModel resolveTypeModelByName(java.lang.String name,
                                                   JavaUnitModel um,
                                                   JavaPackageModel pm,
                                                   java.util.List<JavaTypeVariableAbstractModel> typeVariables)
                                            throws TermWareException,
                                                   EntityNotFoundException
resolve type outside parent type context or throw EntityNotFoundExceptionis if type is not avaible

Parameters:
name - - name of type to resolve
um - - unit model where we situated. (i.e. we use import statements from this module)
pm - - package model. where we situated.
typeVariables - - type variables, aviable in this context
Returns:
resolved type
Throws:
TermWareException
EntityNotFoundException

resolveTypeModelWithFullPackage

public static JavaTypeModel resolveTypeModelWithFullPackage(Term t,
                                                            JavaTypeModel where,
                                                            java.util.List<JavaTypeVariableAbstractModel> typeVariables)
                                                     throws EntityNotFoundException,
                                                            TermWareException
Throws:
EntityNotFoundException
TermWareException

resolveTypeModelFromPackage

public static JavaTypeModel resolveTypeModelFromPackage(java.lang.String classShortName,
                                                        java.lang.String packageName)
                                                 throws EntityNotFoundException,
                                                        TermWareException
Throws:
EntityNotFoundException
TermWareException

resolveTypeModelByFullClassName

public static JavaTypeModel resolveTypeModelByFullClassName(java.lang.String name)
                                                     throws EntityNotFoundException,
                                                            TermWareException
Throws:
EntityNotFoundException
TermWareException

resolvePackage

public static JavaPackageModel resolvePackage(java.lang.String packageName)

resolveMemberVariableByName

public static JavaMemberVariableModel resolveMemberVariableByName(java.lang.String name,
                                                                  JavaTypeModel where)
                                                           throws TermWareException,
                                                                  EntityNotFoundException
resolve member variable by name in scope of class definition (outside block)

Throws:
TermWareException
EntityNotFoundException

resolveVariableByName

public static JavaVariableModel resolveVariableByName(java.lang.String name,
                                                      JavaTypeModel where)
                                               throws TermWareException,
                                                      EntityNotFoundException
resolve any variable outside scope definition. (this can be member variable, constant from static import, variable of enclosed statement for local and anonimous classes)

Throws:
TermWareException
EntityNotFoundException

resolveVariableByName

public static JavaVariableModel resolveVariableByName(java.lang.String name,
                                                      JavaStatementModel statement)
                                               throws TermWareException,
                                                      EntityNotFoundException
Throws:
TermWareException
EntityNotFoundException

resolveFormalParameterByName

public static JavaFormalParameterModel resolveFormalParameterByName(java.lang.String name,
                                                                    JavaTopLevelBlockOwnerModel ownerModel)
                                                             throws EntityNotFoundException,
                                                                    TermWareException
Throws:
EntityNotFoundException
TermWareException

resolveMethod

public static JavaMethodModel resolveMethod(java.lang.String methodName,
                                            java.util.List<JavaTypeModel> argumentTypes,
                                            JavaTypeArgumentsSubstitution substitution,
                                            JavaTypeModel where)
                                     throws EntityNotFoundException,
                                            TermWareException
resolve method call to where (in where and all superclasses) and build substitutuion of method type arguments if needed.

Throws:
EntityNotFoundException
TermWareException

resolveTypeTerm

public static JavaTypeModel resolveTypeTerm(Term t,
                                            JavaPlaceContext ctx)
                                     throws EntityNotFoundException,
                                            TermWareException
Throws:
EntityNotFoundException
TermWareException

resolveExpressionType

public static JavaTypeModel resolveExpressionType(Term t,
                                                  JavaPlaceContext ctx)
                                           throws EntityNotFoundException,
                                                  TermWareException
resolve type of Java expression.

Parameters:
t - - term, which must be java expression.
ctx - - place context for resolving names.
Throws:
EntityNotFoundException
TermWareException

resolveTypeModelByName

public static JavaTypeModel resolveTypeModelByName(java.lang.String name,
                                                   JavaPlaceContext ctx)
                                            throws EntityNotFoundException,
                                                   TermWareException
resolve type of Java expression and return one if found, otherwise throw EntityNotFoundException

Parameters:
name - name to resolve
ctx - context, in which we try to resolve
Returns:
resolved typeModel if found.
Throws:
EntityNotFoundException
TermWareException

resolveVariableByName

public static JavaVariableModel resolveVariableByName(java.lang.String name,
                                                      JavaPlaceContext ctx)
                                               throws EntityNotFoundException,
                                                      TermWareException
resolve variavle name in given context or throw EntityNotFoundException is not found

Parameters:
name - - name of varibale to resolve
ctx - - context
Returns:
model of variable if found
Throws:
EntityNotFoundException
TermWareException

match

public static boolean match(JavaTypeModel pattern,
                            JavaTypeModel x,
                            MethodMatchingConversions conversions,
                            boolean debug)
                     throws TermWareException,
                            EntityNotFoundException
Throws:
TermWareException
EntityNotFoundException

match1

public static boolean match1(JavaTypeModel pattern,
                             JavaTypeModel x,
                             MethodMatchingConversions conversions,
                             boolean topDebug)
                      throws TermWareException,
                             EntityNotFoundException
match patern type with x and fill substitution if needed after aplying boxing/unboxing conventions.

Throws:
TermWareException
EntityNotFoundException

match

public static boolean match(java.util.List<JavaFormalParameterModel> patterns,
                            java.util.List<JavaTypeModel> xs,
                            MethodMatchingConversions conversions,
                            boolean forseVarArgs,
                            boolean debug)
                     throws TermWareException,
                            EntityNotFoundException
match over list and feel substitution if needed.

Throws:
TermWareException
EntityNotFoundException

resolveJavaLangObject

public static JavaTypeModel resolveJavaLangObject()
                                           throws TermWareException
Throws:
TermWareException

resolveJavaLangCloneable

public static JavaTypeModel resolveJavaLangCloneable()
                                              throws TermWareException
Throws:
TermWareException

resolveJavaIoSerializable

public static JavaTypeModel resolveJavaIoSerializable()
                                               throws TermWareException
Throws:
TermWareException

resolveJavaLangAnnotationAnnotation

public static JavaTypeModel resolveJavaLangAnnotationAnnotation()
                                                         throws TermWareException
Throws:
TermWareException