android.databinding.tool.reflection
Class ModelAnalyzer

java.lang.Object
  extended by android.databinding.tool.reflection.ModelAnalyzer
Direct Known Subclasses:
AnnotationAnalyzer

public abstract class ModelAnalyzer
extends java.lang.Object

This is the base class for several implementations of something that acts like a ClassLoader. Different implementations work with the Annotation Processor, ClassLoader, and an Android Studio plugin.


Field Summary
static java.lang.String[] LIST_CLASS_NAMES
           
static java.lang.String MAP_CLASS_NAME
           
static java.lang.String OBJECT_CLASS_NAME
           
static java.lang.String OBSERVABLE_CLASS_NAME
           
static java.lang.String[] OBSERVABLE_FIELDS
           
static java.lang.String OBSERVABLE_LIST_CLASS_NAME
           
static java.lang.String OBSERVABLE_MAP_CLASS_NAME
           
static java.lang.String STRING_CLASS_NAME
           
static java.lang.String VIEW_DATA_BINDING
           
static java.lang.String VIEW_STUB_CLASS_NAME
           
 
Constructor Summary
ModelAnalyzer()
           
 
Method Summary
 java.lang.String applyImports(java.lang.String className, java.util.Map<java.lang.String,java.lang.String> imports)
          Takes a raw className (potentially w/ generics and arrays) and expands definitions using the import statements.
abstract  TypeUtil createTypeUtil()
           
abstract  ModelClass findClass(java.lang.Class classType)
           
abstract  ModelClass findClass(java.lang.String className, java.util.Map<java.lang.String,java.lang.String> imports)
           
 ModelClass findCommonParentOf(ModelClass modelClass1, ModelClass modelClass2)
           
 java.lang.String getDefaultValue(java.lang.String className)
           
static ModelAnalyzer getInstance()
           
 ModelClass getMapType()
           
protected  ModelClass[] getObservableFieldTypes()
           
abstract  ModelClass loadPrimitive(java.lang.String className)
           
protected  void setInstance(ModelAnalyzer analyzer)
           
static void setProcessingEnvironment(javax.annotation.processing.ProcessingEnvironment processingEnvironment)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

LIST_CLASS_NAMES

public static final java.lang.String[] LIST_CLASS_NAMES

MAP_CLASS_NAME

public static final java.lang.String MAP_CLASS_NAME
See Also:
Constant Field Values

STRING_CLASS_NAME

public static final java.lang.String STRING_CLASS_NAME
See Also:
Constant Field Values

OBJECT_CLASS_NAME

public static final java.lang.String OBJECT_CLASS_NAME
See Also:
Constant Field Values

OBSERVABLE_CLASS_NAME

public static final java.lang.String OBSERVABLE_CLASS_NAME
See Also:
Constant Field Values

OBSERVABLE_LIST_CLASS_NAME

public static final java.lang.String OBSERVABLE_LIST_CLASS_NAME
See Also:
Constant Field Values

OBSERVABLE_MAP_CLASS_NAME

public static final java.lang.String OBSERVABLE_MAP_CLASS_NAME
See Also:
Constant Field Values

OBSERVABLE_FIELDS

public static final java.lang.String[] OBSERVABLE_FIELDS

VIEW_DATA_BINDING

public static final java.lang.String VIEW_DATA_BINDING
See Also:
Constant Field Values

VIEW_STUB_CLASS_NAME

public static final java.lang.String VIEW_STUB_CLASS_NAME
See Also:
Constant Field Values
Constructor Detail

ModelAnalyzer

public ModelAnalyzer()
Method Detail

setInstance

protected void setInstance(ModelAnalyzer analyzer)

findCommonParentOf

public ModelClass findCommonParentOf(ModelClass modelClass1,
                                     ModelClass modelClass2)

loadPrimitive

public abstract ModelClass loadPrimitive(java.lang.String className)

getInstance

public static ModelAnalyzer getInstance()

setProcessingEnvironment

public static void setProcessingEnvironment(javax.annotation.processing.ProcessingEnvironment processingEnvironment)

applyImports

public java.lang.String applyImports(java.lang.String className,
                                     java.util.Map<java.lang.String,java.lang.String> imports)
Takes a raw className (potentially w/ generics and arrays) and expands definitions using the import statements.

For instance, this allows user to define variables if they previously imported User.


getDefaultValue

public java.lang.String getDefaultValue(java.lang.String className)

findClass

public abstract ModelClass findClass(java.lang.String className,
                                     java.util.Map<java.lang.String,java.lang.String> imports)

findClass

public abstract ModelClass findClass(java.lang.Class classType)

createTypeUtil

public abstract TypeUtil createTypeUtil()

getMapType

public ModelClass getMapType()

getObservableFieldTypes

protected ModelClass[] getObservableFieldTypes()