This CL removes java 1.7 code so that we can easily integrate
w/ Idea.
It also partially removes dependency on ModelAnalyzer for
interface generation so that we can call it from the Idea
plugin.
Change-Id: Id7616987f5660911e951ddf20dacd4f407dacbd9
In data binding, setting an attribute actually means calling a method, which might be
an issue if the method is added after a certain API.
This CL introduces a change which will check called methods per api and add necessary
API check code to avoid calling those methods in older platforms.
This CL also resurrects the Java Model Analyzer (in testing) and also fixes compiler tests.
Bug: 19593398
Change-Id: I0da4194625231cf43125e1b43338069e7d191eb9
findType did not support user-defined imports, so casting,
for example, of Foo<String> didn't recognize Foo or String.
This also will import java.lang.* by default.
Renamed Model* classes to Annotation*
Renamed Reflection* classes to Model*
Removed Class* classes -- they are no longer needed.
The names were confusing. I think this is better.
ClassAnalyzer uses normal reflection. We intend to move
to an Annotation Processor and possibly an Android Studio
plugin version of type interaction as well. This abstracts
the type interaction to prepare.
Change-Id: I2b95ea9074bca7e3053aeadcd3692dffe93b41d6
If a field is final, we know it cannot change thus cannot include it in dependency
logic. Unfortunately, observable final fields can invalidate themselves so
we should consider them dynamic.
Bug: 19299279
Change-Id: I643377f7faea6a7b0e858ee55d22318b3fc5898e
Multiple layout files with the same name now share a common interface.
They also share all variables no matter where it is defined.
If a variable is NOT used in one of the layout files, its implementation
does not create a field BUT STILL creates the setter (to implement
the base interface).
If the same view id is used for two different types of views, return
type in the interface is android.view.View. If it is an include,
the return value is IViewDataBinder.
Change-Id: Ie3cc2bb8ec5ea48b71337e314ec588a050d714df
Added renaming attribute-to-setter and automatic Conversions.
Moved intermediate store (SetterStore) to compiler project.
Moved annotations to their own project.